索引
链接
https://tech.meituan.com/2014/06/30/mysql-index.html
文章截图
简评
数据库索引使用了B+树,这种数据结构是很适合于存储在磁盘,且需要查询的数据的。MySQL使用B+树,一般维护的B+树高度是2-4,所以一次查询只需要2-4次就能将范围缩小到一个很小的范围内,大大提高了效率。同时,高度低对应着高扇出。
文中还提到了对联合索引的使用:联合索引是在多个字段上构建出一个索引,先按第一个字段排序,再按第二个字段排序,以此类推。所以查询时,如果查询条件内有索引的第一个字段,就会使用到这个联合索引,查询条件有索引第二个字段,就会更进一步继续使用这个索引,如果查询条件没有联合索引的第一个字段,就不会使用联合索引,这就是最左匹配原则。
并且为什么非叶子节点不存储数据?因为如果非叶子节点存储了数据,那非叶子节点存储的指针就会变少,那么,树的高度就需要增大。树的高度增大会造成IO次数的变多,所以说,B+树是为减少磁盘IO而生的!
原创文章,作者:geekgao,如若转载,请注明出处:https://www.geekgao.cn/archives/1519