慢SQL处理
出现慢SQL本质是业务对数据量增量没有感知导致。刚开始开发很容易功能优先并不考虑数据量。数据量少于10W再差劲的SQL也不慢这就导致测试阶段不容易暴露问题只有上线一段时间后才发现。解决慢SQL问题不仅仅是技术问题是项目管理架构开发多方互动的过程。尤其在工作职位拆分比较细且相互沟通不畅的组织中出现较多。以下是个人针对避免慢SQL的解决开发前1. 做好CodeCheck以及架构设计2. 部分会导致慢SQL的脚本就不应该出现3. 对于涉及数据量大的功能就应该直接控制而非出了问题再学习4. 方案考虑数据库对性能的影响并设置告警预置上线运行中1. 做好慢SQL的监控和分析对数据量超过一定阈值就得进行功能上的重构和方案设计来规避-- 如导入导出异步化并控制并发数据和重复点击次数或者读写分离2. 做好降级准备如果慢SQL影响核心功能应主动断连并做好客户端提示和后续运维-- 如某功能导致SQL影响核心交付功能那么就直接中断功能并给予用户提示和运维告警即使予以干预3. 监控数据库数据量每天或者每小时查询数据库并跟预置进行比对出现问题1. 在数据库侧查看慢SQL并分析对应功能有必要则进行人工干预-- 如kill db查询进程并重启服务2. 针对出问题慢SQL功能进行分析和重构防止后续问题出现