by2009
发表于 3 个月前SQLAdvisor简介
SQLAdvisor是由美团点评公司技术工程部DBA团队(北京)开发维护的一个分析SQL给出索引优化建议的工具。它基于MySQL原生态词法解析,结合分析SQL中的where条件、聚合条件、多表Join关系 给出索引优化建议。目前SQLAdvisor在美团点评内部广泛应用,公司内部对SQLAdvisor的开发全面转到github上,开源和内部使用保持一致,主要功能:输出SQL索引优化建议,github地址
下边记录一下在ubuntu 上安装的过程
1
2
3
|
#系统信息
root@d:~
/SQLAdvisor/sqladvisor
# uname -a
Linux d 3.13.0-32-generic
#57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
|
1、拉取代码
1
|
git clone https:
//github
.com
/Meituan-Dianping/SQLAdvisor
.git
|
2、安装依赖项
1
2
3
4
|
apt-get
install
cmake libaio-dev libffi-dev
apt-get
install
libglib2.0-dev
apt-get
install
libperconaserverclient18.1-dev
apt-get
install
g++
|
percona的安装参考 https://www.percona.com/doc/percona-server/5.6/installation/apt_repo.html
1
2
3
4
|
wget https:
//repo
.percona.com
/apt/percona-release_0
.1-4.$(lsb_release -sc)_all.deb
dpkg -i percona-release_0.1-4.$(lsb_release -sc)_all.deb
apt-get update
apt-get
install
percona-server-server-5.7
|
3、编译依赖项sqlparser
1
2
|
cmake -DBUILD_CONFIG=mysql_release -DCMAKE_BUILD_TYPE=debug -DCMAKE_INSTALL_PREFIX=
/usr/local/sqlparser
./
make
&&
make
install
|
4、编译安装SQLAdvisor源码
1
2
3
|
cd
SQLAdvisor
/sqladvisor/
cmake -DCMAKE_BUILD_TYPE=debug ./
make
#在本路径下生成一个sqladvisor可执行文件,即是我们想要的
|
5、测试:
备注:
如果在第4步中出现类似错误:glibconfig.h: No such file or directory
解决方法(摘自README):跟据glib安装的路径,修改SQLAdvisor/sqladvisor/CMakeLists.txt中的两处include_directories针对glib设置的path
glib 的 path 可以通过命令来查找:find / -name 'glibconfig.h' 找到后 替换一下include_directories就可以了
原文地址:http://www.by2009.com/a/135.html
2017-12-28更新:
上面提到的问题我碰到了,也许是编译C源码少的原因,或这作者假定了一些前置至少,自此做个补充,上文中提到缺少’glibconfig.h‘的错误,我用“fing”命令找到路径和文件后,将两个关于glib的“include_directories”的设置都设置到了“/usr/lib/i386-linux-gnu/glib-2.0/....” 发现有提示提示“glib.h”找不到,我仔细看了下官网的默认CMakeList.txt文件,发现下面的是默认是从“/usr/include/...”开始的,我用“find”查找“glib.h”发现路径是“/usr/include/glib-2.0/glib.h”和官网默认路径相同,因此这里就不能按照上面文章查到的“/usr/lib/i386-linux-gnu/glib-2.0/....”而应该再““/usr/include/...”中去找头文件,最后make成功,整体配置文件如下: cmake_minimum_required (VERSION 2.6) project(sqladvisor) # /usr/local/sqlparser为sqlparser库安装目录,必要时进行修改 include_directories("/usr/local/sqlparser/include") include_directories("/usr/local/sqlparser/include/regex") include_directories("/usr/lib/i386-linux-gnu/glib-2.0/include") include_directories("/usr/include/glib-2.0") link_directories("/usr/local/sqlparser/lib") link_directories("/usr/lib64") set(TEST_SRC main.cc) add_executable(sqladvisor ${TEST_SRC}) #如果是sqlparser debug库,则应连接的库为sqlparser-debug target_link_libraries(sqladvisor sqlparser-debug) target_link_libraries(sqladvisor perconaserverclient_r) target_link_libraries(sqladvisor glib-2.0)2018-01-09更新:
Ubuntu下的安装成功的步骤梳理,给大家参考 :
1.拉取代码
git clone https://github.com/Meituan-Dianping/SQLAdvisor.git
2.安装依赖项
apt-get install cmake libaio-dev libffi-dev
apt-get install libglib2.0-dev
apt-get install libperconaserverclient18.1-dev
//g++不知道有没有起作用,中间各种出错后尝试安装了他
apt-get install g++
percona的安装参考 https://www.percona.com/doc/percona-server/5.6/installation/apt_repo.html
3.编译依赖项sqlparser
cmake -DBUILD_CONFIG=mysql_release -DCMAKE_BUILD_TYPE=debug -DCMAKE_INSTALL_PREFIX=/usr/local/sqlparser ./
make && make install
4.安装SQLAdvisor源码
cd SQLAdvisor/sqladvisor/
cmake -DCMAKE_BUILD_TYPE=debug ./
make
在本路径下生成一个sqladvisor可执行文件,这即是我们想要的。