SQL中的联合索引和普通索引问题

 更新时间:2023年09月05日 14:37:35   作者:Annie_Mint  
这篇文章主要介绍了SQL中的联合索引和普通索引问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

SQL中联合索引和普通索引

解释

1、索引:是数据库管理系统中一个排序的数据结构,并用以协助快速查询、更新数据库表中数据。

2、联合索引:就是创建一个索引,索引中包含多个列。

3、普通索引:即单个索引,一个索引包含一个列。

区别

联合索引中列的顺序非常重要,从左原则。a,ab,ba,abc。

单个索引:一个一个起作用,也就是说有三个单个索引,哪个条件查询在前哪个起作用,其他不起作用。

结论

一般来说,列表搜索需要多个列查询,此时就可以使用联合索引,都是and的关系。

什么时候需要创建索引:

1、where条件会经常出现的,并且当前表的数量比较大。

2、where条件中是用and而非or的时候。

3、联合索引比单个索引更适合,因为索引占用一定磁盘空间,也就说明有一定的开销,如果多个单个索引比较多,那么多资源的浪费也比较多,联合索引相当于对多个列建索引,并且只建一次,and条件下非常适合。

普通索引跟联合索引哪个更好

索引描述

普通索引是在单个列上创建的索引,它可以加速针对该列的查询,例如使用 WHERE 子句、ORDER BY 子句和 GROUP BY 子句进行过滤、排序和分组。普通索引的优点是简单、易于维护,适用于单个列的查询场景。

联合索引是在多个列上创建的索引,它可以加速多个列的组合查询,例如使用多个 WHERE 子句和 ORDER BY 子句进行过滤和排序。联合索引的优点是可以通过一个索引满足多个列的查询需求,从而减少磁盘 I/O 和索引维护的开销,适用于多列组合查询的场景。

使用建议

如果查询只涉及单个列,并且该列的基数(不同值的数量)很大,则使用普通索引效果更好。

如果查询涉及多个列,并且这些列经常一起查询,或者查询条件在这些列之间频繁变化,则使用联合索引效果更好。

如果查询涉及多个列,但是这些列的基数很小,例如只有两个取值,那么使用联合索引的效果可能不如单独为每个列创建索引的效果。

心得

普通索引和联合索引各有优缺点,具体使用哪种索引取决于查询的场景。

需要注意的是,使用索引并不总是能提高查询性能,有时候索引反而会降低查询性能。

因此,在创建索引时,需要根据具体的查询场景和数据分布情况进行综合考虑,权衡索引的优缺点,选择最适合的索引类型和索引列。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • mysql Non-Transactional Database Only(只支持MyISAM)

    mysql Non-Transactional Database Only(只支持MyISAM)

    按照discuz官方的建议,选的都是Non-Transactional Database Only 只支持MyISAM,其实默认都安装也挺好
    2016-04-04
  • 实例验证MySQL|update字段为相同的值是否会记录binlog

    实例验证MySQL|update字段为相同的值是否会记录binlog

    这篇文章主要介绍了实例验证MySQL|update字段为相同的值是否会记录binlog,帮助大家更好的理解和学习MySQL数据库,感兴趣的朋友可以了解下
    2020-10-10
  • MySQL中无过滤条件的count详解

    MySQL中无过滤条件的count详解

    这篇文章主要给大家介绍了关于MySQL中无过滤条件count的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧
    2019-02-02
  • MySQL获取行号的示例代码

    MySQL获取行号的示例代码

    MySQL变量是一种用于存储和操纵数据的数据类型,通过在SQL查询中使用变量,我们可以创建一个MySQL查询,用于获取每行数据的行号,这篇文章主要介绍了MySQL 如何获取行号,需要的朋友可以参考下
    2023-08-08
  • mysql数据库备份设置延时备份方法(mysql主从配置)

    mysql数据库备份设置延时备份方法(mysql主从配置)

    这篇文章主要介绍了mysql数据库延时备份的方法,也就是mysql主从服务器备份,可以同步到多个服务器,最后我们提供了一个备份脚本,大家参考使用吧
    2013-12-12
  • mysql installer community 8.0.16.0安装配置图文教程

    mysql installer community 8.0.16.0安装配置图文教程

    这篇文章主要为大家详细介绍了mysql installer community 8.0.16.0安装配置图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • mysql中sum float类型使用小数点的方法

    mysql中sum float类型使用小数点的方法

    使用sum示和时如果是float类型的数据就会出现小数点了,那么要如何解决这个问题,下面介绍二种方法
    2013-11-11
  • MySQL里面的子查询的基本使用

    MySQL里面的子查询的基本使用

    本文主要介绍了MySQL里面的子查询的基本使用,从定义到分类使用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • MySQL数据库多表联合查询代码示例

    MySQL数据库多表联合查询代码示例

    所谓联合就是把多个表的记录往一起合并,一起进行查询,也叫多表查询,这篇文章主要给大家介绍了关于MySQL数据库多表联合查询的相关资料,需要的朋友可以参考下
    2024-01-01
  • MySQL查询语句简单操作示例

    MySQL查询语句简单操作示例

    这篇文章主要介绍了MySQL查询语句简单操作,结合实例形式分析了MySQL数据库、数据表创建、数据插入、数据查询等相关操作技巧,需要的朋友可以参考下
    2019-11-11

最新评论