mysqldumpslow -s c slow.log>/tmp/slow_report.txt
- 
Count: 3276 Time=21.75s (71261s) Lock=0.00s (1s) Rows=0.9 (2785), xxx 
- 
SELECT T.TASK_ID, 
- 
T.xx, 
- 
T.xx, 
- 
... 
- 
FROM T_xx_TASK T 
- 
WHERE N=N 
- 
AND T.STATUS IN (N,N,N) 
- 
AND IFNULL(T.MAX_OPEN_TIMES,N) > IFNULL(T.OPEN_TIMES,N) 
- 
AND (T.CLOSE_DATE IS NULL OR T.CLOSE_DATE >= SUBDATE(NOW(),INTERVAL 'S' MINUTE)) 
- 
AND T.REL_DEVTYPE = N 
- 
AND T.REL_DEVID = N 
- 
AND T.TASK_DATE >= 'S' 
- 
AND T.TASK_DATE <= 'S' 
- 
ORDER BY TASK_ID DESC 
- 
LIMIT N,N 
- 
explain SELECT T.TASK_ID, 
- 
T.xx, 
- 
... 
- 
FROM T_xxx_TASK T 
- 
WHERE 1=1 
- 
AND T.STATUS IN (1,2,3) 
- 
AND IFNULL(T.MAX_OPEN_TIMES,0) > IFNULL(T.OPEN_TIMES,0) 
- 
AND (T.CLOSE_DATE IS NULL OR T.CLOSE_DATE >= SUBDATE(NOW(),INTERVAL '10' MINUTE)) 
- 
AND T.REL_DEVTYPE = 1 
- 
AND T.REL_DEVID = 000000025xxx 
- 
AND T.TASK_DATE >= '2019-01-11' 
- 
AND T.TASK_DATE <= '2019-01-11' 
- 
ORDER BY TASK_ID DESC 
- 
LIMIT 0,20; 


- 
select count(*),count(distinct TASK_DATE) from T_BIOMA_ELOCK_TASK; 
- 
+------------+---------------------------+ 
- 
| count(*) | count(distinct TASK_DATE) | 
- 
+------------+---------------------------+ 
- 
| 1161559 | 223 | 
- 
+------------+---------------------------+ 
在这个 sql 中 REL_DEVID 字段从命名上看选择度较高,通过下面 sql 来检验确实如此:
- 
select count(*),count(distinct REL_DEVID) from T_BIOMA_ELOCK_TASK; 
- 
+----------+---------------------------+ 
- 
| count(*) | count(distinct REL_DEVID) | 
- 
+----------+---------------------------+ 
- 
| 1161559 | 62235 | 
- 
+----------+---------------------------+ 
- 
select count(*),count(distinct REL_DEVID,task_id) from T_BIOMA_ELOCK_TASK; 
- 
+----------+-----------------------------------+ 
- 
| count(*) | count(distinct REL_DEVID,task_id) | 
- 
+----------+-----------------------------------+ 
- 
| 1161559 | 1161559 | 
- 
+----------+-----------------------------------+ 

结论
一个典型的 order by 查询的优化,添加更合适的索引可以避免性能问题:执行计划使用索引并不意味着就能执行快。
 
 
                     
            
        













 
                    

 
                 
                    