一.定位执行慢的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.服务器硬件升级