索引是帮助MySql高效获取数据的排好序的数据结构
索引是存储在文件里的
- 平衡二叉树
当插入数据的数据是有序时,二叉树会形成单链表结构,因此因与了平衡二叉树 - **多路平衡查找树(balanced tree B tree)即B树** 由于每一次磁盘I/O默认读取的数据大小为16K,而二叉树每一次分叉查找就是一次磁盘I/O.如果一个节点存储的数据比较小,会造成磁盘空间的浪费.因此引入了多路平衡查找树1.hash只支持等值检索,不支持大于/小于等检索
2.存在重复值的列,使用hash算法会产生hash碰撞
B+树(加强版多路平衡查找树) - B Tree能解决的问题,B+Tree都能解决 - 扫库,扫表能力更强 - 磁盘读写能力更强 - 排序能力更强 - 效率更加稳定在INNODB搜索引擎中,数据是存放在主键索引的叶子节点中.
MYISAM中,数据与索引式分开的,表锁,不支持事务