首页 > 数据库 >MySQL联合索引创建规则

MySQL联合索引创建规则

时间:2023-03-27 10:55:13浏览次数:39  
标签:包含 创建 查询 索引 联合 MySQL

1、索引应该按照最常用于查询的列的顺序创建。这样可以最大程度地提高查询性能。

2、如果查询中包含的列与索引中的列顺序不一致,则无法使用索引。因此,如果您有多个查询,每个查询都包含不同的列,那么最好为每个查询创建一个单独的索引。

3、联合索引应该包含尽可能少的列。联合索引的列数越多,更新索引的成本就越高。如果需要同时查询多个列,但是其中某些列很少使用,那么最好为经常使用的列创建单独的索引。

4、对于包含 NULL 值的列,联合索引可能无法提供良好的性能。如果需要经常查询包含 NULL 值的列,那么最好为这些列创建单独的索引。

5、当创建联合索引时,请务必记住要优化查询,而不是优化索引。如果不确定该如何创建索引,请使用 EXPLAIN 命令来查看查询计划,以确定哪些列需要索引。

标签:包含,创建,查询,索引,联合,MySQL
From: https://www.cnblogs.com/bzp-cyhf/p/17260790.html

相关文章

  • lucene4.5源码分析系列:索引缓存以及刷新
    缓存和刷新是比较重要的问题,它涉及到lucene如何管理内存和磁盘。前面提到索引的结果是缓存在内存中的,等到一定时候才会将其刷新到硬盘上去。缓存在这里的目的无非是缓解高速......
  • Lucene 源代码剖析-9索引是如何存储的
    Lucene 源码剖析5           索引是如何存储的  5.1   数据存储类Directory      Directory及相关类负责文档索引的存储。           5......
  • Centos7 安装 mysql 8
    安装1.配置yum仓库#更新密钥rpm-importhttps:/repo.mysql.com/RPM-GPG-KEYmysql-202#安装Mysql8.x版本yum库rpm-Uvhhttps:/dev.mysql.com/get/mysql80-commu......
  • [pymysql]新增数据-手工新增-自动新增-批量执行
    1.手工新增importpymysql#获取连接conn=pymysql.connect(host='10.105.212.1',port=3306,user='root',password='DemoDemo',database='......
  • [pymysql]查询基础
    importpymysql#获取连接conn=pymysql.connect(host='10.105.212.1',port=3306,user='root',password='DemoDemo',database='db',cha......
  • 为啥安装Mysql, 启动不了服务 ?
    安装过程中,总是卡在这,然后我想手动启动,也是报错,有搞过的么?谢谢。   手动也打不开:  ......
  • Mysql索引底层数据结构与算法、Explain
    为什么建议InnoDB表必须建主键?并且推荐使用整型的自增主键?如果不由我们人工去创建主键,mysql也会帮我们去建立主键,没有必要把这么简单地工作交给Mysql。整型比较比UUID比......
  • 终端启动MYSQL时出现报错:“ERROR 2003 (HY000): Can't connect to MySQL server on 'l
    1.问题说明一直使用:mysql-uroot-p启动mysql数据库,使用是正常的,突然一天启动时候报错:“ERROR2003(HY000):Can’tconnecttoMySQLserveron‘localhost’(1006......
  • mysql中DATADIFF()函数使用
    用过mssql的朋友应该了解datediff函数了,在mssql中,该函数的第一个参数是开始日期,第二个是结束日期,开始日期应该在结束日期之前,这样算出来的结果是大于或等于0的一个数,反之......
  • Python实例讲解 -- 操作数据库 附mysqldb win32 py2.7下载
    mysql是一个优秀的开源数据库,它现在的应用非常的广泛,因此很有必要简单的介绍一下用python操作mysql数据库的方法。python操作数据库需要安装一个第三方的模块,在http://mysq......