1. 程式人生 > >復合索引底層實現

復合索引底層實現

建立 bbs 排序 排序。 .net 為什麽 https 如果 and

比如mysql 單列索引是將該列數據當做關鍵字構建一顆b+tree,但是組合索引是如何實現的呢?比如兩個字段的組合索引,SELECT * FROM TABLE1 WHERE A=22 AND b=33 ; 是要建兩棵樹嗎?如果只建立一顆樹,那b列是如何存放的?

一棵樹

如果是單列,就按這列數據進行排序

如果是多列,就按多列數據排序,首先根據第一列排序,在第一列一樣的情況下,第二列再排序。例如有(1,1) (2,2) (2,1) (1,2)

那在索引中的葉子節點的數據順序就是(1,1)(1,2)(2,1)(2,2)

這也是為什麽查詢復合索引的前綴是可以用到索引的原因(最左前綴原則)

https://bbs.csdn.net/topics/390985501

復合索引底層實現