时间:2021-07-01 10:21:17 帮助过:11人阅读
二、日志分析
三、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