登录RDS数据库
第一步先看MYSQL的性能状况,分析是设置问题还是SQL效率问题
使用实例信息/实时性能
发现read数据比较高,同时发现数据库CPU占用较高
再通过实时回话观察使用频繁的SQL,并且较慢的SQL
在诊断报告中也可以找出慢SQL,优先解决执行次数多的慢SQL,有些报表只执行了1-2次可以不用关注。
将慢SQL在SQL执行窗口中执行,并查看执行计划
对于这种TYPE=ALL全表扫描的返回rows很多的就需要进行优化
这次优化主要发现两个地方:
1. MySQL中datediff函数不会触发日期字段的索引,and datediff(stock.stockDate,:sDate) = 0 需要改成 stock.stockDate >= :sDate and stock.stoc