一、概述
数据库索引结构采用的是B+树,总的来说B+树具有的好处就是树的高度相对低查找高效、磁盘IO次数少、可以范围查找。
二、B+树的相对优点
- 二叉树:极端情况下可能形成链表
- 平衡二叉树:为了保持平衡需要进行旋转等操作,插入效率低。
- B树:索引和数据没有分离,每次读取需要更多的磁盘操作。
- hash表:无法范围查找。
三、聚集索引和非聚集索引
- 聚集索引:索引和数据在一块存储,物理上连续,表中只能由一个聚集索引,查询效率高;
- 非聚集索引:数据单独存储,逻辑上连续,可以有多个非聚集索引,可以避免二次查询;
四、InnoDB和MyISAM的区别
- innodb支持事务;
- Innodb支持MVCC;
- Innodb支持外键;
- Myisam不支持行级锁;
- Myisam有一个变量存储总行数,所以count(*)操作会很快;