步骤1:观察数据库服务器状态是否有周期性波动
- 如果有,可能是某一时刻出现大量查询或缓存失效,尝试加缓存或更改缓存失效策略
- 如果没有,进入步骤二
步骤2:可能是出现了慢查询
- 开启慢查询日志,定位到慢查询的sql语句
- 通过explain和show profiling命令来查看慢查询详情,根据慢查询详情进行判断
步骤3:是不是sql等待时间长
- 那就调节服务器参数,线程数等
步骤4:是不是sql执行时间长
- 那就查询加索引,优化索引
- 看看是不是多表join过多,优化多表联查
- 优化表结构
步骤5:还是没解决看看是不是数据库达到瓶颈
- 如果是的话,那就读写分离,搭建主从架构
- 进行分库分表,数据拆分