SQLAdvisor

SQLAdvisor使用(Centos6.8版本)

纵饮孤独 提交于 2020-12-17 02:08:12
SQLAdvisor是由美团点评公司技术工程部DBA团队(北京)开发维护的一个分析SQL给出索引优化建议的工具。它基于MySQL原生态词法解析,结合分析SQL中的where条件、聚合条件、多表Join关系 给出索引优化建议。目前SQLAdvisor在美团点评广泛应用,包括美团支付、酒店旅游、外卖、团购等产品线,公司内部对SQLAdvisor的开发全面转到github上,开源和内部使用保持一致。 主要功能:输出SQL索引优化建议 下载安装包:SQLAdvisor-2.0.tar.gz rpm -q cmake libaio-devel libffi-devel glib2 glib2-devel yum install cmake libaio-devel libffi-devel glib2 glib2-devel #在SQLAdvisor编译时需要这个 rpm -ivh percona-release-0.1-3.noarch.rpm tar -xvf Percona-Server-5.6.29-76.2-rddf26fe-el6-x86_64-bundle.tar rpm -ivh Percona-Server-server-56-5.6.29-rel76.2.el6.x86_64.rpm --nodeps rpm -ivh Percona-Server-client-56-5

BATJ解决千万级别数据之MySQL 的 SQL 优化大总结

醉酒当歌 提交于 2020-08-20 09:36:06
引用 在数据库运维过程中,优化 SQL 是 DBA 团队的日常任务。例行 SQL 优化,不仅可以提高程序性能,还能减低线上故障的概率。 目前常用的 SQL 优化方式包括但不限于:业务层优化、SQL 逻辑优化、索引优化等。其中索引优化通常通过调整索引或新增索引从而达到 SQL 优化的目的。索引优化往往可以在短时间内产生非常巨大的效果。 --- 来自美团技术团队 SQL 优化是一个复杂的问题,不同版本和种类的数据库、不同数据级的数据需要选择不同的优化策略。 说明:我这里简单总结一下 SQL 优化,很多的大佬写过这方面的细节和用法,甚至还有相关的案例。我只是作为一个阶段性的总结,肯定是不全面的。如有错误和不当之处,欢迎批评指正,不胜感激。 从日常开发写 SQL 的角度看,需要遵循一些规则,但是这些规则只能解决部分问题。因为随着开发和数据量的增长,SQL 还是会变慢,这个时候需要一些针对性的措施,比如针对性地添加索引,通过命令或者工具分析变慢的 SQL 等等。 说说 SQL 优化的其中两个大的原则(肯定还有别的): 原则一:尽量避免全表扫描。 原则二:通过索引优化。 这两个涉及的点比较多,他们之间也是有联系的,下面详细说说。 1、避免全表扫描 为啥要避免全表扫描呢?因为全表扫描耗费更多的时间。 那么从哪些方法避免全表扫描呢? 对 where 和 order by

BATJ解决千万级别数据之MySQL的SQL如何优化?本文详细讲解

五迷三道 提交于 2020-08-16 17:28:45
目前常用的 SQL 优化方式包括但不限于:业务层优化、SQL 逻辑优化、索引优化等。其中索引优化通常通过调整索引或新增索引从而达到 SQL 优化的目的。索引优化往往可以在短时间内产生非常巨大的效果。 --- 来自美团技术团队 SQL 优化是一个复杂的问题,不同版本和种类的数据库、不同数据级的数据需要选择不同的优化策略。第二:,注意:很多人在学Java高级过程中难免会遇到各种问题解决不了。为此我建了个裙 783802103,里面很多架构师一起交流解答,没基础勿进哦! 说明:我这里简单总结一下 SQL 优化,很多的大佬写过这方面的细节和用法,甚至还有相关的案例。我只是作为一个阶段性的总结,肯定是不全面的。如有错误和不当之处,欢迎批评指正,不胜感激。 从日常开发写 SQL 的角度看,需要遵循一些规则,但是这些规则只能解决部分问题。因为随着开发和数据量的增长,SQL 还是会变慢,这个时候需要一些针对性的措施,比如针对性地添加索引,通过命令或者工具分析变慢的 SQL 等等。 说说 SQL 优化的其中两个大的原则(肯定还有别的): 原则一:尽量避免全表扫描。 原则二:通过索引优化。 这两个涉及的点比较多,他们之间也是有联系的,下面详细说说。 1、避免全表扫描 为啥要避免全表扫描呢?因为全表扫描耗费更多的时间。 那么从哪些方法避免全表扫描呢? 对 where 和 order by

sql优化工具SQLAdvisor的安装

核能气质少年 提交于 2020-05-02 00:31:05
原文地址:https://www.cnblogs.com/beliveli/articles/6541936.html 本机安装包路径: D:\share\src\linux-mysql\sqlAdvisor\ 1.克隆代码 git clone https://github.com/Meituan-Dianping/SQLAdvisor.git 2.安装依赖 yum install -y cmake libaio-devel libffi-devel glib2 glib2-devel bison 3.安装percona56 yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm -y yum install Percona-Server-shared-56 -y 4.编译sqladvisor时依赖perconaserverclient_r, 因此需要安装Percona-Server-shared-56。有可能需要配置软链接例如: cd /usr/lib64/ ln -s libperconaserverclient_r.so.18 libperconaserverclient_r.so 5.

SQL优化神器 —— SQLAdvisor

对着背影说爱祢 提交于 2019-11-27 10:47:08
一、SQLAdvisor是什么 SQLAdvisor是由美团点评公司技术工程部DBA团队(北京)开发维护的一个分析SQL给出索引优化建议的工具。它基于MySQL原生态词法解析,结合分析SQL中的where条件、聚合条件、多表Join关系 给出索引优化建议。目前SQLAdvisor在美团点评内部广泛应用,公司内部对SQLAdvisor的开发全面转到github上,开源和内部使用保持一致。 主要功能:输出SQL索引优化建议 开源地址: https://github.com/Meituan-Dianping/SQLAdvisor 二、SQLAdvisor详细说明 SQLAdvisor快速入门教程 : https://github.com/Meituan-Dianping/SQLAdvisor/blob/master/doc/QUICK_START.md SQLAdvisor架构和实践: https://github.com/Meituan-Dianping/SQLAdvisor/blob/master/doc/THEORY_PRACTICES.md SQLAdvisor release notes : https://github.com/Meituan-Dianping/SQLAdvisor/blob/master/doc/RELEASE_NOTES.md SQLAdvisor开发规范

美团点评开源 SQL 优化工具 SQLAdvisor 测试报告

大城市里の小女人 提交于 2019-11-27 10:46:55
一、SQLAdvisor 介绍 SQLAdvisor 是由美团点评公司北京 DBA 团队开发维护的 SQL 优化工具:输入 SQL,输出索引优化建议。它基于 MySQL 原生词法解析,再结合 SQL 中的 where 条件以及字段选择度、聚合条件、多表 Join 关系等最终输出最优的索引优化建议。目前 SQLAdvisor 在美团公司内部大量使用,较为成熟、稳定。 SQLAdvisor 的优点 基于 MySQL 原生词法解析,充分保证词法解析的性能、准确定以及稳定性; 支持常见的 SQL(Insert/Delete/Update/Select); 支持多表 Join 并自动逻辑选定驱动表; 支持聚合条件 Order by 和 Group by; 过滤表中已存在的索引。 二、SQLAdvisor 原理 SQLAdvisor 架构流程图: SQLAdvisor 包含了如下的处理方式:Join 处理、where 处理、计算区分度、添加备选索引、Group 与 Order 处理、驱动表选择、添加被驱动表备选索引、输出建议,具体的流程图可以参考: 美团点评 SQL 优化工具 SQLAdvisor 开源 三、SQLAdvisor 测试 3.1 SQLAdvisor 安装 3.1.1 拉取最新代码 git clone https://github.com/Meituan-Dianping

MySQL之安装美团点评的SQLAdvisor

爷,独闯天下 提交于 2019-11-26 22:33:43
注意:是在Centos7上安装SQLAdvisor,必须是在没有安装MySQL的Centos7上安装,因为如果事先安装了MySQL,那么安装SQLAdvisor时,MySQL的/etc/my.cnf会与SQLAdvisor的依赖发生冲突。 在没有安装MySQL的Centos7上,按这个步骤来即可, http://blog.51cto.com/songlisha/1925087 。 安装完成后,如何使用,可以查看github上的说明, http://blog.51cto.com/songlisha/1925087 。 下面记录下笔记吧: 1.克隆代码 #cd /usr/local/src/ #git clone https://github.com/Meituan-Dianping/SQLAdvisor.git 2.安装依赖包 #yum install -y make cmake libaio-devel libffi-devel glib2 glib2-devel bison gcc gcc-c++ 3.编译sqladvisor时依赖perconaserverclient_r, 因此需要安装Percona-Server-shared-56。有可能需要配置软链接例如: #cd /usr/lib64/ #ln -s libperconaserverclient_r.so.18