mysql-索引-最左前綴匹配原則


對於mysql 索引 最左前綴匹配原則 個人理解;

由於mysql 在構建多字段 聯合索引時, 其設計原則為

  1. 讀取創建索引時 指定的字段順序(從左到右)
  2. 在構建B+tree非葉子節點時,其會按照 字段從左到右的順序進行組合,並依次對字段存儲的數據按照從小到大的順序進行排序;最終保證整體索引數據的有序性

 

如果不使用 最左前綴匹配原則,在執行查找操作時 就無法利用 B+tree 有序數據的特點,從而會導致時間復雜度直接退化為 O(n)級別

而對於B+tree 本身的查詢時間復雜度為 O(logmn) m表示其為m叉樹, n表示為節點的總數量;

 

mysql 本身對 B+tree 的葉子節點做了優化,首先葉子節點存儲的是當前索引字段關聯的所有主鍵,且對於所有的葉子節點按照從左到右的順序進行連接構成單鏈表; 從而其支持 (索引)范圍查詢;

 

對於索引范圍查詢其特點為 只需要通過定位 起始條件索引葉子節點查詢位置 以及 定位 終止條件 索引葉子節點查詢位置, 通過直接定位起始葉子節點快速遍歷到終止葉子節點,從而提高查詢效率

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM