一、不同存储引擎索引区别
InnoDB
聚簇索引:主键值作为索引数据,叶子节点还包含了所有字段数据
其中7开头的数字是员工编号(主键),叶子节点处理编号,还有姓名工资,他把索引的数据和表中其他数据存储在一起了,也就是把索引和表合二为一。
二级索引:被索引的字段值作为索引数据,叶子节点还包含了主键值
这个是把员工的工资作为索引数据,叶子节点包含了主键值和工资,二级索引只是存储被索引的字段值加上主键数据
如果你想查找员工其他字段值,二级索引就不够了,他会根据主键信息,回到聚簇索引找
MyISAM
被索引字段值作为索引数据,叶子节点还包含了该记录数据页地址
二、存储引擎
InnoDB
索引分为聚簇索引与二级索引
聚簇索引:主键值作为索引数据,叶子节点还包含了所有字段数据
二级索引:被索引的字段值作为索引数据,叶子节点还包含了主键值
支持事务
通过 undo log 支持事务回滚、当前读(多版本查询)
通过 redo log 实现持久性
通过两阶段提交实现一致性
通过当前读、锁实现隔离性
支持行锁、间隙锁
支持外键
MyISAM
索引只有一种
被索引字段值作为索引数据,叶子节点还包含了该记录数据页地址
不支持事务,没有 undo log 和 redo log
仅支持表锁
不支持外键
会保存表的总行数