一.定位執行慢的sql,如2秒內沒執行完的抽取出來
show engines;
查看慢查詢時間
show variables like 'slow%';
查看設置多久是慢查詢
show variables like 'long%';
修改慢查詢時間
set long_query_time=1;
打開慢查詢記錄日志
set global slow_query_log='ON';
查看哪些線程正在運行
show full processlist
查看最大連接數
show variables like '%max_connections%';
當前連接數
show status like 'Threads_connected%';
二.解決
1.首先從自身sql入手,把sql放入navicat執行一次,看看需要多久,sql軍規是否遵守,*,in等是否出現
2.最大連接數是否不滿足當前連接數,考慮擴大?
3.索引優化,常用字段做索引,而且txt等數據類型不要做索引
4.分庫分表,有的庫表專門做查詢
5.數據庫開啟緩存
6.服務器硬件升級