有沒有一種方法來設置一個索引,不使用任何類型的文件在mysql中進行以下查詢?優化子查詢和排序
SELECT * FROM bigtable WHERE id IN ([a indexed subquery]) ORDER BY title;
這種情況下的ID是主鍵。使用Innodb。 對這種查詢做一個EXPLAIN總是會說它使用的是filesort。
編輯1:
,因爲它在我的情況是自動生成的子查詢並不重要。 但對於參數的緣故讓讓這樣的查詢,而不是
SELECT * FROM bigtable WHERE id IN (4,6,8,7,10,40,21,54...) ORDER BY title;
有什麼辦法來索引此查詢不使用文件排序爲「ORDER BY」?
獎金問題:有沒有其他數據庫可以做到這一點?
實在不夠充分估計,但看着你的子查詢可能與左加入更好,基於(ID在你的BigTable的索引,其他可能的子查詢列,標題)作爲覆蓋索引。 – DRapp