索引的优缺点,何时用或不用索引

Posted luffyxin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了索引的优缺点,何时用或不用索引相关的知识,希望对你有一定的参考价值。

索引

  1. 什么是索引?

    索引是对数据库表中的一列或多列值进行排序的一种结构,使用索引可以快速访问数据库表中的特定信息。

  2. 索引的作用?

    索引相当于图书上的目录,可以根据目录上的页码快速找到所需的内容,提高性能(查询速度)

  3. 优点:

    通过创建唯一性索引,可以保证数据库表中的每一行数据的唯一性。

    可以加快数据的检索速度

    可以加速表与表之间的连接

    在使用分组和排序进行检索的时候,可以减少查询中分组和排序的时间

  4. 缺点

    创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。

    索引需要占用物理空间,数据量越大,占用空间越大

    会降低表的增删改的效率,因为每次增删改索引,都需要进行动态维护

  5. 什么时候需要创建索引

    • 主键自动建立唯一索引

    • 频繁作为查询条件的字段应该创建索引

    • 查询中排序的字段创建索引将大大提高排序的速度(索引就是排序加快速查找

    • 查询中统计或者分组的字段;

  6. 什么时候不需要创建索引

    • 频繁更新的字段不适合创建索引,因为每次更新不单单是更新记录,还会更新索引,保存索引文件

    • where条件里用不到的字段,不创建索引;

    • 表记录太少,不需要创建索引;

    • 经常增删改的表;

    • 数据重复且分布平均的字段,因此为经常查询的和经常排序的字段建立索引。注意某些数据包含大量重复数据,因此他建立索引就没有太大的效果,例如性别字段,只有男女,不适合建立索引。

以上是关于索引的优缺点,何时用或不用索引的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 索引

MySQL索引

MySQL索引

MySQL索引

MySQL索引

MySQL 高级特性(二):数据表分区策略及优缺点分析