MySQL索引的原理,B+树、聚集索引和二级索引的结构分析( 三 )

聚集索引的缺点:

  • 插入速度严重依赖插入顺序 。按照主键的顺序插入是加载数据到InnoDB表中速度最快的方式 。假如磁盘中的某一个已经存满了,但是新增的行要插入到这一页当中,存储引擎就会把该也分裂成两个页面来容纳该行,这就是一次页分裂操作 。页分裂会导致表占用更多的磁盘空间 。
  • 更新聚集索引列的代价很高,会强制InnoDB将每个被更新的行移动到新的位置 。
  • 用二级索引访问数据需要两个索引查找,不是一次 。因为要先从二级索引的叶子节点获得主键值,再根据这主键去聚集索引中查到对应的行,所以需要两次B树查找 。
顺序主键的策略:在InnoDB表中使用自增主键是既简单性能又高的策略,这样可以保证数据按顺序写入 。最好避免随机的聚集索引,从性能的角度考虑,使用UUID来作为聚集索引是很糟糕的,这样不仅插入行花费的时间长,而且索引占用的空间也更大 。
转自:https://www.cnblogs.com/yuanrw/p/10225659.html

【MySQL索引的原理,B+树、聚集索引和二级索引的结构分析】


推荐阅读