注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天朝布衣田中码农参上

苦逼码农的点点滴滴,请多多指教!

 
 
 

日志

 
 
 
 

MySQL优化SQL的好帮手SQLAdvisor  

2017-06-03 16:16:02|  分类: Mysql |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
众所周知,优化SQL是一项长期的工作。例行 SQL 优化,不仅可以提升程序性能,还能够降低线上故障的概率。目前常用的 SQL优化方式包括但不限于:业务层优化、SQL逻辑优化、索引优化等等。其中常用的索引优化通常是通过调整索引或新增索引从而达到SQL优化的目的,往往可以在短时间内产生非常巨大的效果。如果能够将索引优化转化成工具化、标准化的流程,减少人工介入的工作量,无疑会大大提高DBA的工作效率。
今天要介绍的SQLAdvisor就是由美团点评公司北京DBA团队开发维护的SQL优化工具:输入SQL,它就会输出索引优化建议。 基于 MySQL 原生词法解析,再结合SQL 中的where 条件以及字段选择度、聚合条件、多表 Join 关系等最终输出最优的索引优化建议。目前 SQLAdvisor被很多公司内部大量使用,较为成熟、稳定。而且SQLAdvisor也是开源的,项目地址:https://github.com/Meituan-Dianping/SQLAdvisor 。
下面就一步步来安装并使用它以便提升。
1)首先肯定是安装相应的库

#yum install -y git cmake libaio-devel libffi-devel glib2 glib2-devel

跟据glib安装的路径,修改SQLAdvisor/sqladvisor/CMakeLists.txt中的两处include_directories针对glib设置的path。glib如果是用yum安装默认不需要修改路径
2)拉取最新代码

#git clone https://github.com/Meituan-Dianping/SQLAdvisor.git

3)sqladvisor依赖perconaserverclient_r,安装percona

#yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm

#yum install --enablerepo=Percona56 Percona-Server-shared-56

如果不用yum安装,也可直接使用rpm或源码安装【请自行前往官网:https://www.percona.com/downloads/percona-release/】。这里要注意下,如果有安装了Mysql或Mariadb客户端,最好先删除,否则易起冲突而导致安装不成功,删除使用如下命令:

#yum remove mysql-libs

#yum update

4)如果有需要,配置软链接。

#cd /usr/lib64/
#ln -s libperconaserverclient_r.so.18 libperconaserverclient_r.so

5)编译依赖项sqlparser

#cd SQLAdvisor

#cmake -DBUILD_CONFIG=mysql_release -DCMAKE_BUILD_TYPE=debug -DCMAKE_INSTALL_PREFIX=/usr/local/sqlparser ./

#make && make install

注意
DCMAKE_INSTALL_PREFIX为sqlparser库文件和头文件的安装目录,其中lib目录包含库文件libsqlparser.so,include目录包含所需的所有头文件。
DCMAKE_INSTALL_PREFIX值尽量不要修改,后面安装依赖这个目录。
6)安装SQLAdvisor源码

#cd SQLAdvisor/sqladvisor/
#cmake -DCMAKE_BUILD_TYPE=debug ./
#make

#mv sqladvisor /usr/sbin/sqladvisor

7)使用也是比较简单:

#sqladvisor -h xx -P xx -u xx -pxx -d xx -q "SELECT id FROM site WHERE name = '593668.com'"

反馈输出例如:

alter table site add index idx_name(name)

8)相关的参数帮助可使用--help或-?参数
  -f, --defaults-file     相关设置由参数文件输入
  -u, --username       用户名
  -p, --password        密码
  -P, --port              数据库端口
  -h, --host             主机IP或域名
  -d, --dbname            数据库地址
  -q, --sqls              SQL语句
  -v, --verbose           设为1输出日志
注意:命令行传参时,所有参数名与值需要用空格隔开。
9) 如果要使用-f来进行配置文件传参调用,那么格式如下【如命名为sql.cnf】:

[sqladvisor]
username=xx
password=xx
host=xx
port=xx
dbname=xx
sqls=sql1;sql2;sql3

调用如下:

#sqladvisor -f sql.cnf -v 1

基本上可以说,使用是非常简单的,各位同道可以自行去尝试。

  评论这张
 
阅读(3)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017