聊一下你对MySQL索引的理解?
warning:
这篇文章距离上次修改已过1738天,其中的内容可能已经有所变动。
1.mysql使用B+Tree数据索引
2.B+tree在新增数据时会根据索引指定列对旧B+tree做调整
3.从物理存储结构来说,B+Tree和B-Tree都是以页的大小来划分节点大小,但是由于B+tree中中间节点不存储数据,所以在相同节点时B+tree可以存放更多key,提高查找效率
4.影响mysql查找效率的主要还是磁盘的IO次数, 大部分还是磁头到磁道花费的时间
5、myisam下存储引擎下索引和数据存储是分离的,innodb下索引和数据存储是一起的
6、innodb特性如果id不是自增序列的话,那么每次新增数据,B+tre会对索引进行重新调整浪费性能,所以尽量id使用自动序列作为索引