怎么查看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
1 simple titles null const primary primary 59 const,const,const 10 1
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等。
缓冲器是什么?AD8244缓冲器设计方案
一定要掌握的45个电机常识
移植Linux内核ramfs和ramdisk文件系统
什么是阻抗,阻抗是什么意思?
人工智能能为酒店带来什么
怎么查看MySQL语句有没有用到索引
2012年中国MCU市场研判:嵌入式应用全面起飞
如何使用FPGA驱动OLED屏幕
可用于PLC数字输入模块的方案设计
SAE International宣布NACS连接器、充电PKI和基础设施可靠性标准
一文带你分清普通电机、减速电机、步进电机、舵机、伺服电机的区别
如何在LTspice中模拟非线性变压器
pcb设计逻辑芯片功能测试
阿里、腾讯及科大讯飞相继在地铁语音购票发力,期能搭上“快车”赢占商机
索尼电子公司成立 整合并优化三大业务
最美小米6?3月即将发布的小米新机颜值超高!
usb-c接口是什么意思 pd接口和usb接口哪个更好
王欣入局区块链前途未卜 能否东山再起?
高效边缘计算解决方案:研华工业内存 SQRAM DDR5 5600 系列
为何内部开放文化的 Facebook 很少有泄密新闻?