mysql查询 EXPLAIN 简单解释
来源:互联网 发布:核聚变还有多少年知乎 编辑:程序博客网 时间:2024/05/20 01:34
慢查询:
- 确认应用程序是否检索了大量超过需求的数据,访问了太多的行或者列
- 是否分析了超过需求的行或者列
EXPLAIN type 字段解释
参与连接运算的表是内表
CONST where 条件筛选至多有一条匹配时 EQ_REF 基于索引做扫描、连接字段为唯一索引或主键索引、索引值不为Null、操作符为 = 使得对外表的一条元组,内表只有唯一一条元组与之对应。 REF 基于单表或*强调内容*连接。基于索引做扫描、连接字段非唯一索引或主键索引、连接字段不为Null、操作符为 = 使得对外表的一条元组,内表可有若干条元组与之对应。 REF_OR_NULL 类似REF,只是搜索条件包括:连接字段的值可以为NULL的情况,比如 where col = 2 or col is null RANGE 范围扫描,基于索引做范围扫描,为诸如BETWEEN,IN,>=,LIKE类操作提供支持 INDEX_SCAN 索引做扫描,是基于索引在索引的叶子节点上找满足条件的数据(不需要访问数据文件) ALL 全部数据 UNIQUE_SUBQUERY 在子查询中,基于唯一索引进行扫描,类似于EQ_REF FT FULL TEXT,全文检索 INDEX_SUBQUERY 在子查询中,基于除唯一索引之外的索引进行扫描 INDEX_MERGE 多重范围扫描 index_merge 该联接类型表示使用了索引合并优化方法。在这种情况下,key列包含了使用的索引的清单,key_len包含了使用的索引的最长的关键元素。 ALL
Extra
Distinct Mysql 发现第一个匹配停止匹配Range checked for each record Not exists 没有找到合适的索引using filesort “Mysql需要额外的一次传递,以找出如何按排序顺序检索行,通过根据联接类型浏览所有行并为所有匹配where子句的行保存排序关键字和行的指针来完成排序,然后关键字被排序,并按排序顺序检索行。”eg: SELECT id FROM test WHERE room=100 ORDER BY id; (room 有索引,id没有索引,使用索引先查出room =1000 的数据,然后再次使用排序来实现结果筛选)using temporaty; 使用了临时表(典型的连表时使用了group by / order by)using where 表示优化器需要通过索引回表查询数据;
切分查询:
roes_affect = 0;
do{
roes_affect = do_query(‘DELETE FROM message WHERE created < DATE_SUB (NOW(), INTERVAL 3 MOUNTH) LIMIT 10000’)
} while roes_affect >0 ;
分解关联查询
将多个join拆分成单独的 select
- 可以充分利用mysql_query();
- 执行单个查询,可减少锁竞争
- 使用了哈希关联而不是mysql的嵌套循环关联*
查询流程:
sql -> 查询缓存 -> SQL解析器 -> 预处理器 -> 优化器生成执行计划 -> 调用存储引擎API -> 数据
MYSQL 客户端和服务器之间的通信协议是半双工。
同一时刻,要么是服务器想客户端发送数据,要么客户端向服务器发送数据,不能同时进行。
max_allow_packet
mysql_query VS mysql_unbuffered_query() PHP指定,是否使用内存缓存首先将获取到的数据放到内存中,然后再执行循环操作。
MYSQL 状态查询 SHOW FULL PROCESSLIST
Locked 在mysql 服务层,该线程正在等待表锁. Innodb的行锁不会体现在线程状态中。 Analyzing and statistics 线程正在收集存储引擎的统计信息,并生产查询的执行计划。 Copying to tmp table [on disk] 线程在执行查询计划,并将结果复制到一个临时表中。 一般在做group,文件排序,或者union操做。
阅读全文
0 0
- mysql查询 EXPLAIN 简单解释
- MySQL执行计划 EXPLAIN查询解释
- mysql优化查询之explain解释
- mysql explain语法解释
- MySQL Explain 详细解释
- mysql explain的解释
- mysql explain详细解释
- mysql explain官方解释
- mysql explain 解释
- mysql explain 结果解释
- MySQL查询优化-explain
- MySQL查询优化-explain
- MySQL查询优化-explain
- MySQL查询优化-explain
- MySQL查询优化-explain
- MySQL查询优化-explain
- MySQL查询优化-explain
- MySQL查询优化-explain
- 视频做背景无法自适应屏幕的问题
- Hadoop HA的部署
- java的学习路线
- web中验证码的实现
- 等价表达式 解题报告
- mysql查询 EXPLAIN 简单解释
- 用mysqli连接数据库
- NYOJ-ACM-素数距离问题
- centos 6.5 安装lamp
- tensorflow编程: Constants, Sequences, and Random Values
- POJ 1160 Post Office(经典DP)
- better-scroll插件使用
- vim的基本配置与github上的两个高票配置
- css背景与列表杂记