什么是聚簇索引
聚簇索引不是一种索引类型,而是一种数据存储方式。innoDB的聚簇索引实际上在同一个结构中保存了B-Tree索引和数据行。当表有聚簇索引时,它的行数据实际上存放在索引的叶子页中,因为无法同时把数据行存放在两个不同的地方,所以一个表只能有一个聚簇索引。
优点:
- 可以把相关数据保存在一起,数据访问就更快。
- 聚簇索引将索引和数据保存在同一个B-Tree中,因此获取数据比非聚簇索引要更快。
- 使用聚簇索引扫描的查询可以直接使用页节点中的主键值。
缺点:
- 聚簇索引最大程度提高了IO密集型应用的性能,如果数据全部在内存中将失去优势。
- 更新聚簇索引列的代价很高,因为会强制每个被更新的行移动到新位置。
- 基于聚簇索引的表插入新行或主键被更新导致行移动时,可能导致页分裂,表会占用更多磁盘空间。
- 当行稀疏或由于页分裂导致数据存储不连续时,全表扫描可能很慢。
欢迎批评指正,提出问题,谢谢!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步