簡體   English   中英

MySQL / PHP-性能-緩存或實時查詢

[英]MySQL / PHP - performance - cache or live queries

我正在為我的畫廊做清單(使用下一個/上一個)。 問題是,如果每次更改foto時都選擇next / prev,則查詢最多需要0.1 s。 考慮到以下兩點,這很糟糕:a)訪客將幾乎瀏覽畫廊b)我剩下的查詢時間為0.005s

但是,如果我在一個查詢中選擇了所有照片的ID,則可以得出1000個結果(查詢時間約為0.15秒)。 我可以從中構建樹,並在其中輕松找到下一個/上一個。 但這需要記憶。 在我的服務器上,我遇到了性能問題(CPU,而不是內存),因此它可能是更好的解決方案。 我對嗎 ?

如果是這樣,我如何或在哪里存儲該樹? 我可以有很多不同的圖像,因為所有圖像都在一個表中,並且瀏覽是針對每個用戶的(例如,他們上傳的照片),並且具有不同的排序(時間,類型,得分...)。 因此,我無法預先緩存所有樹木,因為它會很大(而且它會改變,而不同的用戶幾乎立即上傳了照片)。 但是,當他打開特定的庫時,我會為每個用戶建立新的樹。 在SESSION中存儲它似乎是“愚蠢的”,因為那並不是針對這種事情進行優化的。

通常,MySQL查詢緩存是使SELECT查詢更快的一種快速方法。 查詢緩存將保存最近查詢的結果,並在重復相同查詢時返回它們。 這意味着,在您第一次運行查詢后,隨后的相同查詢將更快。 查詢緩存不返回陳舊的數據。 修改表后,將刷新查詢緩存中的所有相關條目。

資料來源: http : //dev.mysql.com/doc/refman/5.1/en/query-cache.html

要檢查是否正在使用查詢緩存,請執行以下查詢:

SHOW VARIABLES LIKE 'query_cache_type';

如果值為OFF0 ,則將這兩行添加到您的MySQL配置中:

query_cache_type = 1
query_cache_size = 64M

然后,重新啟動MySQL服務器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM