mysql优化篇(基于索引)( 三 )
7、kye:表示查询实际使用的索引 , 如果没有选择索引 , 该列的值是NULL 。 要想强制MySQL使用或忽视possible_keys列中的索引 , 在查询中使用FORCE INDEX、USE INDEX或者IGNORE INDEX
8、key_len:表示MySQL选择的索引字段按字节计算的长度 , 若键是NULL , 则长度为NULL 。 注意 , 通过key_len值可以确定MySQL将实际使用一个多列索引中的几个字段
9、ref:表示使用哪个列或常数与索引一起来查询记录 。
10、rows:显示MySQL在表中进行查询时必须检查的行数 。
11、filtered:按表条件筛选的行的百分比
12、Extra:表示MySQL在处理查询时的详细信息
- using filesort: 使用了文件排序 , 很影响性能
- using temporary: 使用了临时表 , 很影响性能
- using index: 使用了覆盖索引
- using where: 使用了where
- using MRR: 使用了MRR优化
- using join buffer: 使用了链接缓存
- impossible where: where的条件总是false
- select tbles optimized away: 在没有group by操作的情况下 , 不必等到执行阶段再计算
- distnct: 优化distinct操作
- using index condition: 使用了ICP优化
回到顶部
2.2.2、show profileShow Profile是mysql提供的可以用来分析当前会话中sql语句执行的资源消耗情况的工具 , 可用于sql调优的测量 。 默认情况下处于关闭状态 , 并保存最近15次的运行结果 。
文章插图SHOW PROFILE [type [, type] ... ][FOR QUERY n][LIMIT row_count [OFFSET offset]]type: {ALL#显示所有的开销信息| BLOCK IO #显示块IO开销| CONTEXT SWITCHES #上下文切换开销| CPU #显示CPU开销信息| IPC #显示发送和接收开销信息| MEMORY #显示内存开销信息| PAGE FAULTS #显示页面错误开销信息| SOURCE #显示和Source_function , Source_file , Source_line相关的开销信息| SWAPS #显示交换次数开销信息}
文章插图show variables like '%profiling%';
文章插图set global profiling =on;
文章插图然后我们随性的多执行一些查询语句 , 在通过show profiles查看:
文章插图上面有3列 , 一个是查询的id , 一个是执行的时间 , 最后一个是执行语句 。
然后我们对id=8的语句进行诊断:show profile cpu,block io for query Query_ID;/*Query_ID为#3步骤中show profiles列表中的Query_ID*/
文章插图上表中第一列为该sql查询的状态 , 也是sql的一个生命周期 , 从开始 , 到权限 , 打开表 , 初始化 , 上锁 , 优化 , 统计 , 执行 , 发送数据 , 查询结束 , 关闭表等 。
在状态这一列中要注意一些点:
- converting HEAP to MyISAM:查询结果太大 , 内存不够 , 数据往磁盘上搬了 。
- Creating tmp table:创建临时表 。 先拷贝数据到临时表 , 用完后再删除临时表 。
- Copying to tmp table on disk:把内存中临时表复制到磁盘上 ,
回到顶部
三、优化具体点3.1、sql的执行顺序在去写好sql和优化sql查询之前 , 知道sql的执行顺序尤为的重要(所以这里要多读几遍)
from ->on ->join ->where ->group by ->having ->select ->distinct ->order by ->limit 1、from 对查询指定的表计算笛卡尔积2、on 按照 join_condition 过滤数据3、join 添加关联外部表数据4、where 按照where_condition过滤数据5、group by 进行分组操作6、having 按照having_condition过滤数据7、select 选择指定的列8、distinct 指定列去重9、order by 按照order_by_condition排序10、limit 取出指定记录量
3.2、创建索引和不该创建索引时机应该创建索引
- 主键 , 唯一 , 外键约束都会自动创建索引
- 桌面|日常使用的软件及网站分享 篇一:几个动态壁纸软件和静态壁纸网站:助你美化你的桌面
- 优化|微软亚洲研究院发布开源平台“群策 MARO” 用于多智能体资源调度优化
- 一图看懂!数字日照、新型智慧城市这样建(上篇)|政策解读 | 新型
- 人工智能|人工智能只会“优化”,而人类可以“进化”
- 工艺|食用油你懂了吗?篇二谈谈加工工艺
- 腔体|发烧音频速报 篇七十二:五百元价位标杆产品,Whizzer威泽Kylin HE01双腔体动圈耳机
- pymysql 连接 MySQL 实现简单登录
- 极致优化 IDEA 启动速度(本文内容过于硬核)
- 使用百度资源平台数据可以挖掘出哪些适合优化的有价值的关键
- D3学习手记 - 02 - 数据绑定
