約有1千萬條記錄。 分頁系統需要查詢。如何加快分頁所需的MySQL查詢 - 表中的百萬條記錄
查詢看起來是這樣的:
SELECT field1, field2, field3 FROM table
WHERE field4 = '$value'
ORDER BY field5 ASC limit $offset, 30;
有關於字段4和字段5索引。
所有字段都是varchar類型。 Field5被測試爲int,但沒有真正的改進通知。
現在用limit 0, 30
查詢需要大約1秒,但用limit 119970, 30
查詢需要大約20秒。
這對於在分頁頁面上獲得小於0.1秒的結果是否現實?網站需要這樣的加載時間才能提供良好的用戶體驗。
詳解(與limit 0,30
選擇)
id: 1
select_type: SIMPLE
table: table
type: index
possible_keys: NULL
key: field5
key_len: 768
ref: NULL
rows: 223636
Extra: Using where
'$ value'多久改變一次?你能緩存查詢的結果嗎?你真的希望用戶獲得第12萬個結果嗎? – 2011-04-20 01:19:46
顯示錶模式並解釋查詢。 – zerkms 2011-04-20 01:19:50
@Mark艾略特值多次改變有大約2000個不同的值。有很多類似的查詢,所以MySQL緩存是有限的,並且希望第一次加載也很快。是的,我希望用戶可以分頁,因爲甚至有鏈接到最後的分頁頁面,機器人將掃描所有網站。現在甚至第一頁加載5秒。 – Newbie1 2011-04-20 01:27:57