0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎么查看MySQL语句有没有用到索引

麦辣鸡腿堡 来源:程序员库森 作者:程序员库森 2023-10-09 10:31 次阅读

怎么查看MySQL语句有没有用到索引

通过explain,如以下例子:

EXPLAIN SELECT * FROM employees.titles WHERE emp_no='10001' AND title='Senior Engineer' AND from_date='1986-06-26';

idselect_typetablepartitionstypepossible_keyskeykey_lenreffilteredrowsExtra
1SIMPLEtitlesnullconstPRIMARYPRIMARY59const,const,const101
  • id:在⼀个⼤的查询语句中每个SELECT关键字都对应⼀个唯⼀的id ,如explain select * from s1 where id = (select id from s1 where name = 'egon1');第一个select的id是1,第二个select的id是2。有时候会出现两个select,但是id却都是1,这是因为优化器把子查询变成了连接查询 。
  • select_type:select关键字对应的那个查询的类型,如SIMPLE,PRIMARY,SUBQUERY,DEPENDENT,SNION 。
  • table:每个查询对应的表名 。
  • type:type 字段比较重要, 它提供了判断查询是否高效的重要依据依据. 通过 type 字段, 我们判断此次查询是 全表扫描 还是 索引扫描 等。如const(主键索引或者唯一二级索引进行等值匹配的情况下),ref(普通的⼆级索引列与常量进⾏等值匹配),index(扫描全表索引的覆盖索引) 。

通常来说, 不同的 type 类型的性能关系如下:ALL < index < range ~ index_merge < ref < eq_ref < const < system``ALL 类型因为是全表扫描, 因此在相同的查询条件下, 它是速度最慢的. 而 index 类型的查询虽然不是全表扫描, 但是它扫描了所有的索引, 因此比 ALL 类型的稍快.

  • possible_key:查询中可能用到的索引*(可以把用不到的删掉,降低优化器的优化时间)* 。
  • key:此字段是 MySQL 在当前查询时所真正使用到的索引。
  • filtered:查询器预测满足下一次查询条件的百分比 。
  • rows 也是一个重要的字段. MySQL 查询优化器根据统计信息, 估算 SQL 要查找到结果集需要扫描读取的数据行数. 这个值非常直观显示 SQL 的效率好坏, 原则上 rows 越少越好。
  • extra:表示额外信息,如Using where,Start temporary,End temporary,Using temporary等。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据结构
    +关注

    关注

    3

    文章

    573

    浏览量

    40124
  • MySQL
    +关注

    关注

    1

    文章

    805

    浏览量

    26545
  • 索引
    +关注

    关注

    0

    文章

    59

    浏览量

    10468
  • 字段
    +关注

    关注

    0

    文章

    13

    浏览量

    1644
收藏 人收藏

    评论

    相关推荐

    PSOC4没有用到的GPIO是什么状态呢?需要特殊处理吗?

    如题,PSOC4没有用到的GPIO是什么状态?需要特殊处理吗?有的MCU要求没有用的GPIO要外接下拉电阻,PSOC需要这样处理吗?谢谢
    发表于 02-18 08:50

    有没有用FPGA做PID控制的

    有没有用FPGA做PID控制的???
    发表于 07-28 17:30

    有没有用FPGA做MP3播放器的(硬件解码)

    有没有用FPGA做MP3播放器的(硬件解码)
    发表于 10-01 14:21

    有没有用LabVIEW做过CAN报文接收和发送的

    有没有用LabVIEW做过CAN报文接收和发送的,用库函数进行发送和接收。有时候发送一会LabVIEW闪退,直接退出程序,有时候又能正常接收发送。不知道有没有碰到这种情况的
    发表于 04-03 14:06

    有没有用树莓派 香蕉派制作3D打印机的教程?

    有没有用树莓派 香蕉派制作3D打印机的教程?想自己做个3D打印机 不知有没有教程
    发表于 12-17 21:11

    有没有用过RDA1846射频芯片的?

    有没有用过RDA1846的伙伴啊。
    发表于 04-10 15:03

    请问有没有用C++开发STM32的

    我大学学的C++,相对C语言来说更喜欢C++语言,只是不知道有没有用C++开发STM32程序的,不是指仅仅玩玩,而是有没有用到实际产品中的,有没有出现什么问题。
    发表于 10-26 08:42

    adc测量电压没有用到adc引脚和通道

    想要ADC测量电池电压,参考了半天例程,写出来也能电压得到3.3V,但是我最后发现竟然没有用到adc引脚和通道,也得出来了,所以我现在郁闷了。这个正常吗,可能有什么问题?
    发表于 11-16 08:50

    请问在SD卡实验以及UCGUI试验中有没有用到外部FLASH的?

    请问在SD卡实验以及UCGUI试验中有没有用到外部FLASH 啊?也就是那个W25X16是用了SPI通信方式将外部FLASH 与SD卡连接的吗?
    发表于 10-08 07:48

    有没有用tls省内存的方案啊

    上传文件走tls加密,测下来整个流程最大会分配50K内存,这对于整个内存只有80多k的单片机简直灾难,有没有用tls省内存的方案。
    发表于 09-30 10:07

    大家绝对没有用过的iphone功能

    大家绝对没有用过的iphone功能 前言:由于本贴介绍的iphone计算器的终极隐藏功能具有非常意义:不但让几乎全世界的iphone用户都再次
    发表于 02-26 16:50 611次阅读

    mysql基本语句详细教程

    mysql基本语句详细教程
    发表于 12-15 22:15 0次下载

    MySQL索引的使用问题

    一、前言 在MySQL中进行SQL优化的时候,经常会在一些情况下,对MySQL能否利用索引有一些迷惑。譬如:1、MySQL 在遇到范围查询条件的时候就停止匹配了,那么到底是哪些范围条件
    的头像 发表于 01-06 16:13 1607次阅读

    商业智能到底有没有用?_光点科技

    随着科技的迅猛发展,商业智能(Business Intelligence,简称BI)已经成为许多企业日常运营的关键工具。然而,关于商业智能到底有没有用的问题仍然存在争议。有人认为商业智能是一种能够为企业带来巨大价值的创新技术,而另一些人则对其效果持怀疑态度。
    的头像 发表于 05-31 10:46 659次阅读

    MySQL高级进阶:索引优化

    MySQL官方对于索引的定义:索引是帮助MySQL高效获取数据的数据结构。
    的头像 发表于 06-11 11:13 572次阅读
    <b class='flag-5'>MySQL</b>高级进阶:<b class='flag-5'>索引</b>优化