文章目录
痛点:
1、无法提前发现慢sql,可能恶化为慢sql的语句
2、线上出现慢sql后,无法快速止损
后果:一般是以响应时间来发现慢sql,这时候已经对业务产生了一定影响,这时候就要改代码重新发布上线或者改数据库索引,无法快速止损。
sql-analysis:京东开源的慢sql组件
京东对其使用场景的定义:
- 慢SQL的预防
- 及时止损
优势:
- 将慢sql在开发或者测试阶段就发现:它是通过MyBatis下的拦截器中执行SqlAnalysis组件,然后通过执行Explain命令,获取到分析结果(这个分析的结果其实就是explan中各个字段,比如说type、extra、等等)然后将结果通过规则引擎进行检查,最后将执行建议进行输出。并且也支持规则引擎的自定义配置以及输出的方式:log日志输出、输出到建议表、输出到MQ。
- 即使在线上出现了慢sql,支持配置中心动态改变sql语句,快速止损。
- 成本:接入成本低,无代码侵入。