表有兩列:爲什麼我在這個非常簡單的MySQL查詢上獲取filesort?
CREATE TABLE items (
k INT auto_increment PRIMARY KEY,
val INT UNSIGNED
) ENGINE=MyISAM;
我把四個項目中的表:
INSERT INTO items (val) VALUES (12),(23),(45),(56);
現在,如果我做的:
EXPLAIN SELECT * FROM items ORDER BY k;
我得到了可怕的 「使用文件排序」。這是怎麼回事?根據this page,它應該使用該索引進行排序。難道我做錯了什麼?
在ubuntu上的XP和5.0.67上測試MySQL 5.0.41。
UPDATE:我在表中添加了1,110,000行,我添加了一個VARCHAR列並填充了文本。表格大小現在是135MB,我仍然在使用「filesort」。
- 任何人有關於如何快速添加大量行的任何提示?
- 在什麼時候應該考慮一個「足夠大」的查詢優化測試表?
嘗試了100,000行,結果相同。致力於創建更多行。 – itsadok 2009-07-08 12:36:41
我同意Pax – 2009-07-08 12:54:51