Skip to content

iwanghc/SQLAdvisor

 
 

Repository files navigation

鉴于原项目长期无人维护并存在一系列问题,我在此对其中一些bug做了修复,如果遇到下述问题,可以尝试使用这个项目进行编译

修复版

安装问题:

  1. CentOS7安装时下载不了Percona56问题(最后一步make时报错问题),参考SQLAdvisor快速入门教程

项目BUG:

  1. 修复了推荐的索引列使用了别名问题,代码在处理GROUP BY和ORDER BY字段时存在的bug。
  2. 修复了驱动表选择错误问题,原逻辑仅根据explain select * from xxx 来获取结果集大小,但是实际上可能受原始sql中where条件的影响。
  3. 修复嵌套子查询中忽略了子查询未推荐子查询表的索引问题。
  4. 修复 MySQL5.7 从执行计划中获取影响行数时报错问题(Segmentation fault)

其他: 新增了一个python脚本,方便批量执行sql(原项目中涉及到格式化换行的sql不太方便),修改其中的数据库连接信息和需要分析的SQL在根目录执行python sqladvisor_batch.py 即可。

一、简介

SQLAdvisor是由美团点评公司技术工程部DBA团队(北京)开发维护的一个分析SQL给出索引优化建议的工具。它基于MySQL原生态词法解析,结合分析SQL中的where条件、聚合条件、多表Join关系 给出索引优化建议。目前SQLAdvisor在美团点评内部广泛应用,公司内部对SQLAdvisor的开发全面转到github上,开源和内部使用保持一致

主要功能:输出SQL索引优化建议

二、SQLAdvisor详细说明

  1. SQLAdvisor快速入门教程
  2. SQLAdvisor架构和实践
  3. SQLAdvisor release notes
  4. SQLAdvisor开发规范
  5. FAQ

About

输入SQL,输出索引优化建议

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 68.4%
  • C++ 21.3%
  • Makefile 6.0%
  • Yacc 1.7%
  • CMake 1.4%
  • Objective-C 0.5%
  • Other 0.7%