二、日志分析
三、sql分析
使用explain查询sql的执行计划
EXPLAIN SELECT * from t_activity;
id: 1
select_type: SIMPLE
table : t_activity
type: ALL
possible_keys: NULL
key : NULL
key_len: NULL
ref: NULL
rows: 6
const 常数查找,一般主键唯一索引;
eq_reg 范围查找,主键或唯一索引范围查找;
ref 连接的查找,基于某一个索引的查找;
range 基于索引的范围查找;
index 索引的扫描;
all 表扫描;
四、优化
1、max()优化
SELECT MAX (create_time) from t_activity; -- 创建索引 CREATE INDEX idx_create_time on t_activity(create_time);
2、count()优化
count(*) 会包含空,count(id)不包含空。也就是 count 一个可为空的字段时,只记录不为 null 的总合。
select COUNT (CHAPTER_STATE != ‘ 300225 ‘ ) , COUNT (CHAPTER_STATE in ( ‘ 300221 ‘ , ‘ 300224 ‘ , ‘ 300226 ‘ )) from t_course_chapter_info;
3、子查询优化
通常情况下,需要把子查询优化为join查询,但是优化是要注意是否是一对多的关系,注意重复数据。
4、limit 优化
1)、使用有索引的列或者主键进行order by 操作
2)、记录上次返回的主键,在下次查询是使用
四、索引优化
如何选择合适的列建立索引:
1.在where从句,group by 从句,order by 从句,on 从句中出现的列
2.索引字段越小越好
3.离散度大的列放到联合索引的前面 ,count(字段)越高离散度越大。
mysql慢查询优化
标签:字段 使用 连接 bsp info min idt chap pre
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did117730