我有一張int
字段的表,我們稱之爲createTime
。該表由幾百萬條記錄組成。現在我想運行查詢:偏差限制(「LIMIT 500000,10」)即使在索引後也很慢?
select * from `table` order by `createTime` desc limit 500000, 10
我創建了一個指數爲createTime
,但在查詢運行慢得令人難以置信。什麼原因?我該如何改進它?
這裏是EXPLAIN說:
id 1
select_type simple
table table
type index
possible_keys null
key createTime
key_len 4
ref null
rows 500010
extra
至於補償,它的工作速度更快時,它的小。
您是否嘗試過使用EXPLAIN關鍵字查看MySql正在做什麼?實際上,EXPLAIN從'table'命令中選擇* by createTime' desc limit 500000,10.出於興趣,什麼數據類型是createTime? – dash
我在問題中解釋過這是一個int。 EXPLAIN表示沒有什麼有趣的地方,它使用創建的索引,它估計的行數爲500010. –
(索引創建之前*的性能是怎樣的?什麼是沒有偏移的限制?偏移量更小的限制?) – 2011-12-11 20:42:29