mysql查询性能优化mysql
explain 分析sql查询的详细信息sql
id,select_type,table,type,possible_keys,key,key_len,ref,rows,extra性能优化
id: 查询表的顺序,id数值大表的先查询。性能
select_type: mysql中select的查询分为优化
1.simple 简单查询spa
2.subquery 子查询排序
table: 查询的表名,若是是连表查询则会出现两条查询详细信息。索引
type : 访问类型 all index range ref eq_ref const nullit
1.all 全表扫描,扫描整张table
2.index 先扫描索引,再全表扫描,避免了排序,由于索引是顺序的。
3.range 必定范围扫描索引,再按索引结果去表中找。
4.ref 非惟一索引访问
5.eq_ref 惟一索引(主键索引)访问
6.const 惟一索引(主键索引)访问时,匹配的只有一条数据。
7.null 在优化的过程当中就已经获得结果,好比min(index) max(index)
possible_keys: 可能用到的索引
keys: 实际用到的索引
key_len : 索引字段最大可能使用长度,单位是字节
ref:对key索引使用的查找方式 const func null 具体字段 //待查证资料
Extra :
using index 使用了覆盖索引,直接从索引中获取数值
using where 使用了where条件过滤
Using temporary 使用了临时表 好比distinct
Using filesort 没有使用索引的排序顺序
Impossible WHERE noticed after reading const table 查询条件不可能,直接返回空
Select tables optimized away 直接优化
mysql查询语句优化
1.一个复杂的查询拆分红多个简单查询
2.切分查询,一次大查询分红屡次小查询分批次查询。
3.分解关联查询,