索引的目的在于提高查询效率,其功能可类比字典,通过该索引可以查询到我们想要查询的信息,因此,选择建立好的索引十分重要,以下是为Mysql优化选择最佳索引的方法步骤:

1. 首先列出查询中所有使用的表,并为查询中的每个子查询创建一个独立的列表。如果有一个包含 2 个 SELECT 子查询的 SELECT 查询,应该建立 3 个列表,每个列表包含引用在其中的表。在此过程结束时,就会在每个查询列表中为每个表添加一个列的列表。

2. 在任何索引中最左边的列应与查询相等比较匹配,可以添加多个列,只要所有列与常量进行比较相等即可。

3.选择一个列,这将是范围列,MySQL 在每个索引中只支持一个范围列,需使用范围运算符(<>, >,

4. 如果查询中不存在范围列,可以添加 GROUP BY 子句中的列。

5. 如果查询中不存在范围列,并且没有 GROUP BY 子句,则可以添加 ORDER BY 子句中的列。

6. 在某些情况下,创建一个独立的索引来保存 ORDER BY 子句的列是有意义的,因为 MySQL 有时会选择使用它。请注意,尽管如此,索引应该包含 ORDER BY 子句中的所有列,它们应该全部在 ORDER BY 子句中用相同的顺序(ASC / DESC)指定。这并不能保证数据库的优化器会选择这个索引而不是 WHERE 复合索引,但是值得一试。

7. 最后,从 SELECT 子句中添加相关的列,这可能允许 MySQL 使用索引作为覆盖索引。覆盖索引是包含过滤和查询子句中的所有列的索引。这样的索引允许数据库仅通过使用索引运行查询,而不需要访问表。在许多情况下,这种方法显然更快。

以上是Mysql优化选择最佳索引的方法,对于有这方面需求的人员来说,可以尝试一下,相信会有所收获!

有疑问加站长微信联系(非本文作者)

mysql索引优化规则_Mysql优化选择最佳索引规则相关推荐

  1. sql 优化之:聚集索引的重要性和如何选择聚集索引(系列五)

    聚集索引的重要性和如何选择聚集索引 在上一节的标题中,笔者写的是:实现小数据量和海量数据的通用分页显示存储过程.这是因为在将本存储过程应用于"办公自动化"系统的实践中时,笔者发现这 ...

  2. mysql 走索引 很慢_MySQL优化:为什么SQL走索引还那么慢?

    背景 2019-01-11 9:00-10:00 一个 MySQL 数据库把 CPU 打满了. 硬件配置:256G 内存,48 core 分析过程 接手这个问题时现场已经不在了,信息有限,所以我们先从 ...

  3. mysql 走索引 很慢_MySQL 优化:为什么 SQL 走索引还那么慢?

    背景 2019-01-11 9:00-10:00 一个 MySQL 数据库把 CPU 打满了. 硬件配置:256G 内存,48 core 分析过程 接手这个问题时现场已经不在了,信息有限,所以我们先从 ...

  4. mysql 回表查询优化_MySQL优化:如何避免回表查询?什么是索引覆盖?

    转自:https://mp.weixin.qq.com/s?__biz=MjM5ODYxMDA5OQ==&mid=2651962609&idx=1&sn=46e59691257 ...

  5. mysql 优化版_MySQL优化(超完整版)(一)

    一. MySQL的优化 前言: MySQL数据库的优化模块: - 数据库的设计-三大范式 - 数据库的索引:唯一索引.主键索引.聚合索引.复合索引.默认索引 - SQL优化 - 分库分表 - 读写分离 ...

  6. mysql聚合索引创建_为 MySQL 查询优化选择最佳索引

    我们的许多用户.开发者和数据库管理员不断向我们的团队咨询有关 EverSQL 的索引推荐算法.所以,我们决定写一些这方面的内容. 本教程不会详细介绍该算法的所有内部特性,而是要简单地说明索引最重要的方 ...

  7. mysql执行计划重用_MySQL 优化之EXPLAN执行计划

    MySQL优化之EXPLAN执行计划 ** 备注 ** 本文改编自https://www.processon.com/view/5d4fe8f4e4b04399f5a0303e?fromnew=1#m ...

  8. mysql优化问题?_MYSQL优化问题

    执行计划与执行明细 1,Explain:可以让我们查看MYSQL执行一条SQL所选择的执行计划: 1,ID:执行查询的序列号: 2,select_type:使用的查询类型 1,DEPENDENT SU ...

  9. 对mysql优化关注_MySQL优化看这篇就对了

    我们在面试的时候经常被问到你如何对数据库优化?动不动就分库分表,但是实际上有几个有分库分表的经验呢?下面我们将介绍优化数据库的各个阶段. 一.SQL语句优化 sql语句的优化是我们优化数据库的第一个阶 ...

最新文章

  1. mxnet常规优化器用法
  2. pyhton3 rsa长加密/解密
  3. 64位WINDOWS 使用PL SQL DEVELOPER 连接ORACLE 出错问题解决
  4. powerdesigner生成表sql语句时,统一添加默认字段(生成时间、生成人等)
  5. 数据分析之 缺失值分析
  6. (Leetcode)买股票的最佳时机
  7. 离线缓存之RNCachingURLProtocol解析
  8. centos 6.8 mysql 5.6_Mysql(5.6.35)在Linux(Centos 6.8)上安装
  9. EasyStack郭长波连任OpenStack基金会独立董事
  10. 基于高德地图的城市区域代码表
  11. 天地不仁,以万物为刍狗!
  12. 2017腾讯校招机试题
  13. MaxListenersExceededWarning: Possible EventEmitter memory leak detected.警告的处理
  14. python使用企业微信机器人发送测试报告
  15. selenium自动登录知网下载论文
  16. 如何判断一个文件是否为PE文件
  17. Plugin with id 'com.novoda.bintray-release' not foun
  18. 【计算机视觉】边缘检测
  19. matlab反插值,matlab反距离权重插值
  20. Spark Core:Scala单词计数

热门文章

  1. 基于 SpringBoot 的仿豆瓣平台【源码分享】
  2. 6000字详解数据仓库建设
  3. 微软某程序员吐槽:如果毕业去字节,现在总包150万!如今一年才50万,看见字节的人都抬不起头!...
  4. 同时拿到BATJMD的Offer是怎样的一种体验?
  5. 是时候捋一捋Java的深浅拷贝了
  6. 一口气说出四种幂等性解决方案,面试官露出了姨母笑~
  7. 面试官:谈一下你对DDD的理解?我:马什么梅?
  8. 【高并发】高并发分布式锁架构解密,不是所有的锁都是分布式锁!!
  9. ​Java 中的内存溢出和内存泄露是什么?我给你举个有味道的例子​
  10. 深入认识二进制序列化--记一次生产事故的思考