没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
mysql 的 explain 分析 sql 语句性能(慢查询和加没加索引)
1.explain 使用和输出列的含义
格式: explain 要分析是 sql 语句,如: explain select * from agreement_audit_record
通过 explain 可以分析 SQL 语句的以下性能:
1、表的读取顺序
2、数据读取操作的操作类型
3、哪些索引可以被使用
4、哪些索引实际被使用
5、表之间的引用
6、每张表有多少行被优化器查询
2.explain 输出各列的含义
id: select 查询的序列号,为一组数字,表示查询中执行的顺序,id 值越大,越先被执行,id 值相同,则由上到下顺序执行。
select_type: 查询的类型,simple 简单查询、uniq 联合查询、子查询等。
table: 查询的是哪张表,查询表的名称,也可能是别名。
type: 访问类型排列,system>const>eq_ref>ref>range>index>all(all 为全表查询,最差等级)。
all: 全表扫描效率是最低的
index:全索引扫描->就是根据索引去获取结果
const 读常量->主键和唯一字段(主键告诉数据库数据存储的位置
rang: 索引的范围查询,至少达到 range 级别
eq_ref:最多只会有一条结果主要是也是唯一索引
partitions: 匹配的分区。
possible_keys:可能用到的索引有哪些,可能一个或多个。
key: 来决定最终会使用的索引,实际用到的索引,如为 NULL,则表示未使用索引,如果查询时间长,则需要优化。
key_len: 索引的字节长度,在不损失精确性的情况下,长度越短越好。
ref: 索引的哪一列被使用了,或是常量,显示关联的字段,如果是非连接查询,则显示 const,如果是连接查询,则会显示关联的字段。
ref: 体现"性能"的关键字段,性能由高到低,如下:
system > const > eq_ref > ref > range > index > all,至少达到 range(具体情况具体分析,一般是这样的),all,就是查全表。
rows: 根据表统计信息及索引选用情况,大致估算出找到所需要记录、读取的行数,该值越小越好。
Extra: 额外的重要信息,常见且重要的有:using filesort(文件内排序,MySQL 无法用给定的索引进行排序,在内部重新排序)、using temporary
(使用了临时表,一般在 group by 中),using index(最好的一种,使用到了索引,且没有出现前两者情况)
3.未建立索引和建立索引查询的效率提升
未建立索引前的查询 sql:
资源评论
运维实战帮
- 粉丝: 78
- 资源: 420
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功