自学内容网 自学内容网

MySQL 中联合索引相比单索引性能提升在哪?

  1. 首先我们要清楚所以也是要占用磁盘空间的,随着表中数据量越来越多,索引的空间也是随之提升的,因而单表不建议定义过多的索引,所以使用联合索引可以在一定程度上可以减少索引的空间占用
  2. 其次,使用联合索引的情况下,如果索引中字段包含全部查询所需的字段(即发生索引覆盖),就可以不用进行回表操作,进一步提高效率
  3. 联合索引在使用等值范围查询的时候特别有效,因为它可以直接定位到具有特定键值组合的记录。对于范围查询,联合索引同样有用,但是一旦遇到范围条件,索引中该条件之后的列就不会被用于优化查询

 
 
另外提一嘴,我们在设置主键索引时,一般情况下我们都会设置为自增的,那么我们为什么这么做呢?这么做有什么好处呢?

首先如果我们使用自增主键,那么每次插入数据的时候新数据就会顺序添加到当前索引节点的位置,不需要移动已经有的数据,当页面写满的时候,就会自动开辟一个新页面。因为不需要重新移动数据,因此这种插入的方式十分高效

其次,如果我们使用非自增主键,由于每次插入索引的值都是随机的,因此每次插入新的数据时,都有可能会放入现有数据页的中间,这将不得不移动其他数据来满足新数据的插入操作,甚至有的时候需要复制一个界面的数据到另一个界面,这种情况我们称之为页分裂。页分裂还有可能会造成大量的内存碎片,导致索引结构不紧凑,从而影响查询效率。


原文地址:https://blog.csdn.net/qq_74212030/article/details/145083951

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!