本文主要是介绍mysql聚簇索引和非聚簇索引,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
- InnoDB引擎
- MylSAM引擎
- 聚簇索引的优点和缺点
- 参考
聚簇索引和非聚簇索引的区别:叶节点是否存放一整行记录。
聚簇索引:将数据存储与索引放到了一块,索引结构的叶子节点保存了行数据。
非聚簇索引:将数据与索引分开存储,索引结构的叶子节点指向了数据对应的位置。
InnoDB主键使用的是聚簇索引,MylSAM不管是主键索引,还是二级索引(辅助键索引)都使用的都是非聚簇索引。
InnoDB引擎
在lnnoDB引擎中,主键索引采用的就是聚簇索引结构存储。
MylSAM引擎
在MyISAM引擎中,主键索引和辅助键索引采用的都是非聚簇索引结构存储。
聚簇索引的优点和缺点
聚簇索引的优点:
1.当需要取出一定范围的数据时,用聚簇索引也比用非聚簇索引好。
2当通过聚簇索引查找目标数据时理论上比非聚簇索引要快,因为非聚簇索引定位到对应主键时还要多一次目标记录寻址,即多一次I/O。
3.使用覆盖索引扫描的查询可以直接使用叶节点中的主键值。
聚簇索引的缺点:
当执行插入或修改操作时,聚簇索引的更新可能会涉及到多个数据页的修改。非聚簇索引只需要修改索引页而不需要修改实际数据行。可能导致对磁盘的频繁写入和更多的数据移动。
参考
聚簇索引与非聚簇索引的区别
这篇关于mysql聚簇索引和非聚簇索引的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!