SHOW FULL PROCESSLIST關注Time列,鎖定可疑語句。PROCESSLIST收集並分析。以SELECT * FROM imgs WHERE imgid=1651768337為例:
| 列名 | 值 | 含義 |
|---|---|---|
| type | const | 主鍵唯一查找,最快 |
| key | PRIMARY | 實際使用的索引 |
| rows | 1 | 預估掃描行數 |
| Extra | (空) | 無額外操作(如排序、臨時表) |
核心判斷邏輯:key為NULL、rows極大、Extra出現Using filesort或Using temporary,均為效能危險信號。
EXPLAIN SELECT * FROM imgs
WHERE userid="7mini" ORDER BY clicks DESC LIMIT 10;
結果:type=ALL(全表掃描),key=NULL,rows=12506,Extra=Using where; Using filesort。MySQL需掃描全表、過濾userid、再對結果集排序。小表小並發尚可接受,大表高併發必崩。
「有無索引看key,掃描多少看rows,要不要排序看Extra。」
掌握EXPLAIN,是MySQL調優的「聽診器」。