Mysql5

Mysql - 使用索引的“ORDER BY”的性能改進

  • January 15, 2018

我可以通過在 fld_date 上添加索引來改進“ORDER BY”嗎?

SELECT * FROM t1 WHERE fld1='XXX' fld2='XXX' ORDER BY fld_date;

該查詢在 where 子句中使用 (fld1,fld2 - 組合索引) 的索引。由於 ORDER BY 與索引不完全匹配,如果我使用 fld_date 添加索引將有助於提高 ORDER BY fld_date 的性能。?

您應該在 (fld1, fld2, fld_date) 上添加一個索引。請注意,僅當 fld1 和 fld2 在WHERE子句中設置為完全匹配時才有效,非精確表達式如<or>將關閉索引以進行排序。

查看聚集索引,在某些情況下,它們可用於提高大型數據集的性能,顯然這是 SQL 風格的數據庫在計算能力非常有限時使用的。

資料來源:我正在與一位高級開發人員合作,他提到他們將使用索引來避免由於吞吐量限製而不得不選擇數據庫中的實際值。

根據我檢查過的文件,它們只是“主鍵”,但它們與以前的不同,可能需要探勘才能從中獲得任何模糊的性能優勢。

更多資訊可以在這裡找到:https ://dev.mysql.com/doc/refman/5.7/en/order-by-optimization.html

請參閱參考文章中的標題“通過優化影響 ORDER”。

引用自:https://serverfault.com/questions/420366