MySQL在Innodb和MyISAM中的二级索引
2017-07-05 09:40
253 查看
本文主要讲解InnoDB和MyISAM两种存储引擎的二级索引区别。
1.二级索引与聚簇索引
聚簇索引的认识请参考百科点击打开链接
二级索引,又被成为辅助索引,在不同存储引擎中的内容不同。
两者的区别在于:聚簇索引的叶子节点存放的是主键值和数据行,支持覆盖索引;二级索引的叶子节点存放的是主键值或指向数据行的指针。
2.两种引擎中的区别
InnoDB中的二级索引存放的是主键值,如果需要查询对应的数据行,需要回表查询,即在聚簇索引中进一步查找对应的数据行。这样可以避免在行移动或者插入新数据时出现的页分裂问题。
MyISAM中无论是主键索引还是二级索引,索引的叶子节点存放的都是指向数据行的指针,保证可以通过索引进而查找到对应的数据行,只需要对索引进行一遍查找。这样会存在页分裂问题。
参考文献
高性能MySQL,宁海元等,电子工业出版社,2013版
1.二级索引与聚簇索引
聚簇索引的认识请参考百科点击打开链接
二级索引,又被成为辅助索引,在不同存储引擎中的内容不同。
两者的区别在于:聚簇索引的叶子节点存放的是主键值和数据行,支持覆盖索引;二级索引的叶子节点存放的是主键值或指向数据行的指针。
2.两种引擎中的区别
InnoDB中的二级索引存放的是主键值,如果需要查询对应的数据行,需要回表查询,即在聚簇索引中进一步查找对应的数据行。这样可以避免在行移动或者插入新数据时出现的页分裂问题。
MyISAM中无论是主键索引还是二级索引,索引的叶子节点存放的都是指向数据行的指针,保证可以通过索引进而查找到对应的数据行,只需要对索引进行一遍查找。这样会存在页分裂问题。
参考文献
高性能MySQL,宁海元等,电子工业出版社,2013版
相关文章推荐
- MySQL的MyISAM与InnoDB的索引方式
- MySQL中myisam和innodb的主键索引有什么区别?
- MySQL中myisam和innodb的主键索引有什么区别?
- MySQL的MyISAM与InnoDB的索引方式
- MySQL中myisam和innodb的主键索引有什么区别?
- MySQL8.0的InnoDB和MyISAM是否支持hash索引
- MySQL原理研究:myisam和innodb索引实现的不同
- 面试常考 MySQL优化 事务处理 MyISAM和InnoDB索引实现
- 面试知识点6:MySQL中InnoDB的一级索引、二级索引
- 关于MySQL InnoDB表的二级索引是否加入主键列的问题解释
- MySQL中myisam和innodb的主键索引有什么区别?
- mysql的存储引擎innodb、myisam对插入影响和索引对插入的影响
- MySQL中myisam和innodb的主键索引有什么区别?
- Mysql innodb引擎和myisam引擎使用索引区别
- MySQL之索引1 --- MyISAM和InnoDB索引实现的不同
- MySQL中MyISAM和InnoDB对B-Tree索引不同的实现方式
- MySQL中myisam和innodb的主键索引有什么区别?
- Mysql innodb引擎和myisam引擎 使用索引区别
- mysql:InnoDB的主键采用聚簇索引,二级索引不采用聚簇索引
- 聚集索引、非聚集索引、聚集索引组织表、堆组织表、Mysql/PostgreSQL对比、联合主键/自增长、InnoDB/MyISAM(引擎方面另开一篇)