聚簇索引

聚簇索引不是一种索引类型,而是一种数据存储方式
innoDB的聚簇索引是在一个文件中保存了B+树的索引和数据行
当表有聚簇索引的时候,它的行数据是存放在索引的叶子中
innodb中,在聚簇索引之上创建的索引称之为辅助索引,辅助索引访问数据总是需要二次查找,非聚簇索引都是辅助索引,像复合索引、前缀索引、唯一索引,辅助索引叶子节点存储的不再是行的物理位置,而是主键值

  • 一个表只能有一个聚簇索引(因为数据只能存在一个地方)
优点
  1. 可以把数据保存在一起,查询更快
  2. 覆盖索引扫描可以直接使用叶子节点中的主键
缺点
  1. 更新聚簇索引代价高,每个被更新的行会移动到新位置
  2. 插入新行或者主键导致行移动,可能会导致页分裂,表占用更多磁盘空间
  3. 行稀疏或者页分裂导致数据存储不连续,全表扫描可能很慢
  4. 对io密集型应用很友好,但是如果数据都在内存中就没优势了
posted @ 2022-03-11 16:33  张三丰学Java  阅读(566)  评论(0编辑  收藏  举报