MySQL数据库支持索引提示(INDEX HINT)显式的高速优化器使用了哪个索引。以下是可能需要用到INDEX HINT的情况

a)MySQL数据库的优化器错误的选择了某个索引,导致SQL运行很慢。这个在最新版的数据库版本中非常少见。优化器在绝大部分情况下工作的非常有效和正确。

b)某些SQL语句可以选择的索引非常多,这时优化器选择执行计划时间的开销可能会大于SQL语句本身例如优化器分析Range查询本身就是比较耗时的操作。这时DBA或开发人员分析最优的索引选择,通过index hint来强制使优化器不进行各个路径的成本分析直接选择指定的索引来完成查询

MySQL数据库的Index Hint语法

看个表结构

CREATE TABLEt(

aINT,

bINT,KEY(a),KEY(b)

)ENGINE=INNODB;INSERT INTO t SELECT 1,1;INSERT INTO t SELECT 1,2;INSERT INTO t SELECT 2,3;INSERT INTO t SELECT 2,4;INSERT INTO t SELECT 1,2;

查看执行计划

如图SQL语句可以使用a,b索引,实际使用的索引为b,a完成整个查询,列Extra提示Using intersect(b,a)表示根据两个索引得到的结果进行求交的数学运算,最后得到结果

如果我们使用USE INDEX 的索引来使用a这个索引呢

EXPLAIN SELECT * FROM t USE INDEX(a) WHERE a=1 AND b=2;

可以发现,优化器使用了a的索引,但use index只是告诉优化器可以选择该索引,实际上优化器还是会根据自己的判断进行选择,最可靠的做法是FORCE INDEX

原文:http://www.cnblogs.com/olinux/p/5146757.html

mysql hint 索引倒序_MySQL中的索引提示Index Hint相关推荐

  1. mysql获取当月最后一天_mysql中获取本月第一天、本月最后一天、上月第一天、上月最后一天

    mysql获取当月最后一天_mysql中获取本月第一天.本月最后一天.上月第一天.上月最后一天等等 转自: https://blog.csdn.net/min996358312/article/det ...

  2. mysql的学习要点_MySQL中的联合索引的学习要点总结

    MySQL中的联合索引的学习要点总结 联合索引又叫复合索引.对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分.例如索引是key index (a ...

  3. mysql索引排序算法_MySQL中利用索引对数据进行排序的基础教程

    MySQL中,有两种方式生成有序结果集:一是使用filesort,二是按索引顺序扫描.利用索引进行排序操作是非常快的,而且可以利用同一索引同时进行查找和排序操作.当索引的顺序与ORDER BY中的列顺 ...

  4. mysql修改索引对交易影响吗_MySQL中字符串索引对update的影响分析

    本文分析了mysql中字符串索引对update的影响.分享给大家供大家参考,具体如下: 对某一个类型为varchar的字段添加前缀索引后,基于该子段的条件查询时间基本大幅下降:但对于update操作, ...

  5. mysql 回表查询优化_MySQL中的回表查询与索引覆盖:一次百万级别分页查询使用Limit 从90秒到0.6毫秒的优化...

    这里写目录标题 事故现场 解决方案 提到的"回表查询" InnoDB的索引 什么是回表查询 怎么优化回表查询 事故现场 数据库使用的MySQL,有一个日志表,需要进行分页查询,于是 ...

  6. mysql中创建唯一索引的关键字_mysql中唯一索引的关键字是什么

    mysql中唯一索引的关键字是unique index.创建唯一索引可以避免数据出现重复.唯一索引可以有多个,但索引列的值必须唯一,索引列的值允许有空值.创建唯一索引可以使用关键字UNIQUE随表一同 ...

  7. mysql添加临时索引_mysql 中添加索引的三种方法

    在mysql中有多种索引,有普通索引,全文索引,唯一索引,多列索引,小伙伴们可以通过不同的应用场景来进行索引的新建,在此列出三种新建索引的方法 mysql 中添加索引的三种方法 1.1 新建表中添加索 ...

  8. mysql中distinct走索引吗_MySQL中索引优化distinct语句及distinct的多字段操作

    MySQL通常使用GROUPBY(本质上是排序动作)完成DISTINCT操作,如果DISTINCT操作和ORDERBY操作组合使用,通常会用到临时表.这样会影响性能. 在一些情况下,MySQL可以使用 ...

  9. mysql唯一索引的关键字_mysql中唯一索引的关键字是什么

    mysql中唯一索引的关键字是unique index.创建唯一索引可以避免数据出现重复.唯一索引可以有多个,但索引列的值必须唯一,索引列的值允许有空值.创建唯一索引可以使用关键字UNIQUE随表一同 ...

最新文章

  1. pandas.Series.values 将Series内的数值以ndarray或ndarray-like的形式返回,取决于原Seires的数据类型
  2. SpringBoot+mongoDB实现id自增
  3. 第十三章:位图(三)
  4. iosttableViewCell右侧的箭头,圆形等
  5. Windows保护模式学习笔记(十二)—— 控制寄存器
  6. mongdb集群3.4 shard 模式
  7. hibernate状态转换关系图【原】
  8. python面试设计模式问题_聊聊 Python 面试最常被问到的几种设计模式(下)
  9. 从零开始学前端:grid布局和音频 --- 今天你学习了吗?(CSS:Day24)
  10. 【问题解决方案】Linux中进入目录下文件夹
  11. ROS Kinetic 安装指南
  12. hololens与混合现实开发pdf_增强现实与虚拟现实:过去和未来
  13. ftp协议是一种用于什么的协议_购房协议怎么写?签购房协议要注意什么
  14. 企业进销存管理系统(二)
  15. 微表情识别,C++实现,编译为动态链接库
  16. 魔兽 服务器 角色 最多,魔兽科普:国服人最多的几个服务器都什么来头
  17. 删除vlan 华为s5720_华为S5720系列交换机快速配置手册常用命令
  18. Apache Flink_JZZ166_MBY
  19. 手写数字识别问题(5)——完结
  20. H5页面唤醒支付宝 APP指定页面

热门文章

  1. 网络教学c语言,本体C语言网络教学模式
  2. php pdo 判断数据条数据,php pdo 查询记录条数据库
  3. 光伏开启全面洗牌模式 逆变器进入寡头时代
  4. 中国光伏逆变器行业供需调查分析与发展战略规划研究报告2022-2028年版
  5. 降噪滤镜之:Noiseware
  6. spad dtof lidar车载IMX459更新系列一特性和功能
  7. 计算机文化基础Word 2010复习导案
  8. C++实战项目-网络编程基础包含TCP详解
  9. ESP32 SmartConfig 微信扫码配网
  10. Windows Server 2008驱动安装全攻略