记一次生产慢sql索引优化及思考 | 京东云技术团队
💡
原文中文,约2300字,阅读约需6分钟。
📝
内容提要
数据库慢SQL报警,查询速度极慢,主键聚簇索引导致回表查询耗时。解决方法是使用强制索引,长期优化方案是将数据异构到ES查询,提高查询响应速度。
🎯
关键要点
-
数据库慢SQL报警,查询速度极慢,耗时达60s。
-
慢查询可能导致数据库连接池满,影响应用可用性。
-
慢SQL语句在examine=3时查询速度极慢,未使用到索引。
-
主键聚簇索引导致回表查询耗时,扫描行数越多执行越慢。
-
聚簇索引和非聚簇索引的查询原理不同,聚簇索引通常更快。
-
回表查询是通过非聚簇索引获取主键后,再查询主键聚簇索引。
-
MySQL选择不合适的主键聚簇索引是因为数据量大时性能差。
-
解决方案是使用强制索引,指定使用具体的索引。
-
长期优化方案是将数据异构到ES查询,提高查询响应速度。
-
ES数据同步方案通过DTS监听数据库的binlog,将索引字段写入ES。
➡️