Mysql

MySQL BETWEEN 命令 - 性能(順序)

  • April 3, 2016

我想創建一個表,其中包含大約 20,000 條記錄,每個記錄有三個欄位。其中兩個欄位將包含數值。

我希望能夠發出 SELECT BETWEEN 命令。將返回一條記錄。

我預計某些記錄將比其他記錄更頻繁地返回。通過將這些記錄放在表的開頭附近,我會獲得任何性能提升嗎?(我假設 MySQL 按順序讀取表)。

答案是“不”,但更多的是“您的問題沒有答案,因為它基於不正確的假設”。

  1. 表並沒有真正按特定順序儲存。

2)即使他們是,數據庫如何知道問題已被回答,直到它完成閱讀整個表格。把事情“放在前面”沒有幫助。

3)你問的(值的範圍)是在索引的範圍內。索引具有更多的結構和大致的“開始和結束”的概念,因此將是要走的路。在您要查詢的值上建立索引。

  1. 索引的結構化方式意味著只需少量 I/O 讀取就可以從數十億行中選擇單獨的行。但是,您需要索引正確的值以匹配查詢。查看計劃,看看它是否適合您。

引用自:https://dba.stackexchange.com/questions/134207