sqladvisor-web

美团SQLAdvisor SQL优化建议工具的Web版,告别命令行。

项目中使用的美团SQL分析工具是在CentOS上编译的,所以建议部署到CentOS上。

该项目是使用Python的Flask框架开发的。

使用CentOS自带的Python版本,版本号是2.7.5。

再部署前建议先看一下美团的分析工具文档

CentOS所在环境是使用Vagrant虚拟的环境。

系统搭建

1、安装git、wget、Mysql和pip

sudo yum install git

sudo yum install wget

CentOS 7安装Mysql需要先下载Mysql的rpm文件。

wget http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

rpm -ivh mysql57-community-release-el7-9.noarch.rpm

sudo yum install mysql-community-server

配置Mysql

mysql_secure_installation

执行上面命令设置root密码。

sudo systemctl enable mysqld

设置开机启动。

重启数据库

sudo systemctl mysqld restart

进入Mysql创建sqladvisor数据库

CREATE DATABASE IF NOT EXISTS sqladvisor default charset utf8 COLLATE utf8_general_ci;

一定要设置charset为utf8和COLLATE为utf8_general_ci,否则无法保存中文。

安装pip

sudo yum -y install epel-release

sudo yum install python-pip

2、配置项目

git clone https://github.com/zyw/sqladvisor-web.git

下载项目。

cd sqladvisor-web

为了不报下面异常

root@pts/4 $ pip install MySQL-python

Collecting MySQL-python

Using cached MySQL-python-1.2.5.zip

Complete output from command python setup.py egg_info:

sh: mysql_config: command not found

Traceback (most recent call last):

File "", line 1, in

File "/tmp/pip-build-kWowP9/MySQL-python/setup.py", line 17, in

metadata, options = get_config()

File "setup_posix.py", line 43, in get_config

libs = mysql_config("libs_r")

File "setup_posix.py", line 25, in mysql_config

raise EnvironmentError("%s not found" % (mysql_config.path,))

EnvironmentError: mysql_config not found

----------------------------------------

Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-kWowP9/MySQL-python/

首先安装

sudo yum install python-devel mysql-community-devel -y

下面安装依赖

sudo pip install -r requirements.txt

修改数据库配置

编辑工程中的config.py文件

SQLALCHEMY_DATABASE_URI = os.environ.get('DEV_DATABASE_URL') or 'mysql://root:root@localhost/sqladvisor'

把第二个root修改成你安装Mysql时设置的密码。

恢复数据库

python manage.py db init

python manage.py db migrate

python manage.py db upgrade

如果migrations文件夹已存在,先删除。

经过上三条命令,sqladvisor数据库中的表已经被创建了。

解压sqlparser.tar.gz

解压sqlparser.tar.gz到/usr/local

启动系统

python manage.py runserver --host 0.0.0.0

启动完成后访问http://127.0.0.1:5000/

部署sqladvisor-web

使用上面的命令是在开发环境启动Python Web应用,如果想要供多人使用还是使用gunicorn部署比较好。

安装gunicorn

pip install gunicorn

启动服务

gunicorn manage:app -p manage.pid -b 0.0.0.0:8000 -D

上面的命令启动一个监听0.0.0.0:8000 IP和端口的服务,-D是启动一个守护进程

3、截图

提供一个vagrant镜像

mysql advisor github_GitHub - zyw/sqladvisor-web: 美团SQLAdvisor SQL优化建议工具的Web版,告别命令行...相关推荐

  1. SQLAdvisor美团SQL索引优化建议工具

    SQLAdvisor美团SQL索引优化建议工具 前言 Part1:写在最前 SQLAdvisor是美团开源的一款SQL索引优化建议工具,是由美团点评公司技术工程部DBA团队(北京)开发维护的一个分析S ...

  2. MySQL · 性能优化· CloudDBA SQL优化建议之统计信息获取

    阿里云CloudDBA具有SQL优化建议功能,包括SQL重写建议和索引建议.SQL索引建议是帮助数据库优化器创造最佳执行路径,需要遵循数据库优化器的一系列规则来实现.CloudDBA需要首先计算表统计 ...

  3. 8条关于Web前端性能的优化建议

    转载自 8条关于Web前端性能的优化建议 一般网站优化都是优化后台,如接口的响应时间.SQL优化.后台代码性能优化.服务器优化等.高并发情况下,对前端web优化也是非常重要的. 下面说说几种常见的优化 ...

  4. 美团点评SQL优化工具SQLAdvisor开源

    介绍 在数据库运维过程中,优化 SQL 是 DBA 团队的日常任务.例行 SQL 优化,不仅可以提升程序性能,还能够降低线上故障的概率. 目前常用的 SQL 优化方式包括但不限于:业务层优化.SQL逻 ...

  5. mysql命令行工具打开文件_使用命令行工具mysqlimport导入数据

    使用命令行工具mysqlimport导入数据 Usage: mysqlimport [OPTIONS] database textfile... 默认从以下路径中文件读取默认参数 /etc/mysql ...

  6. 阿里P8架构师谈:MySQL数据库的索引原理、与慢SQL优化的5大原则

    MySQL凭借着出色的性能.低廉的成本.丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库.虽然性能出色,但所谓"好马配好鞍",如何能够更好的使用它,已经成为开发工程师的必修 ...

  7. mysql不同的类的个数_Mysql数据库-SQL优化-统计某种类型的个数

    有时我们想统计某种类型有多少个,会用这个SQL.全表扫描之余,还要filesort,耗时1.34秒. mysql> select country,count(*) from t1 group b ...

  8. 高性能MySQL(3th)(第六章 sql优化) —— 06 查询优化器的工作

    一 优化器在MySQL架构中的位置: 二 先看逻辑上的作用 一言以蔽之:找到最好的执行计划. 三 静态优化和动态优化 这个和一般的编译器优化的区别差不多,静态优化即语法上的转换,替换常量等等,动态优化 ...

  9. 高性能MySQL(3th)(第六章 sql优化) —— 01 减少冗余数据

    一 查询冗余的条数 如实际前台只需要TOP10,但是查询时使用 LIMIT 100. 解决方案:使用需要的大小限制.e.g. LIMIT 10,或者至多 LIMIT 20. 二 查询冗余的的列 避免使 ...

最新文章

  1. centos安装配置nginx,ssl生产和配置教程
  2. 2018年8月以太坊DApp数据分析报告
  3. SwiftUI区分浅色和深色
  4. 通过Zabbix全面监控NetScaler负载均衡设备
  5. python2升级_把Python2.6升级到Python2.7(适用于把Python2升级到Python3)
  6. c# 连接Redis报错:WRONGTYPE Operation against a key holding the wrong kind of value:类型搞混弄出的错误...
  7. vscode remote ssh 远程开发免密登陆方法
  8. 前n个正整数相乘的时间复杂度为_初一数学必学必考的21个知识点,附第一章有理数测试卷...
  9. 位操作在算法中的运用
  10. 在线判题系统(oj)效果分析图_在线代码编写平台开发分享
  11. Android-入门学习笔记-JSON 解析
  12. Qt signal slot 实现机制
  13. GCD介绍(二): 多核心的性能
  14. win下MySQL 8.0.11 修改密码、开启远程访问
  15. 用python 代码写一个表白I love you
  16. CISP证书 +转来文章:漫谈信息安全认证(CISP与CISSP)
  17. 支持N个request 的 round robin arbiter
  18. Android蓝牙问题
  19. python模块及包的导入
  20. 基于sopc的计算机系统的设计与实现,基于SOPC的RFID阅读器设计与实现-计算机系统结构专业论文.docx...

热门文章

  1. 操作系统-动态内存分配算法
  2. 《爱上跑步的13周》,让你拥有健康美丽的人生
  3. Win10+VirtualBox+Openstack Mitaka
  4. 腾讯滨海大厦 智能楼宇 智慧建筑 3D可视化管理系统-优锘科技-ThingJS物联网开发案例... 1
  5. 安卓机器人做图软件_绘画机器人andy下载-美图秀秀绘画机器人下载v7.0.0.0 安卓版-西西软件下载...
  6. 论文阅读 (78):FlowNet: Learning Optical Flow with Convolutional Networks
  7. 因果分析系列6--相关,回归与因果
  8. Python matplot画柱状图(一)
  9. python扇贝单词书,学习猿地-python 爬虫,爬取扇贝单词网单词
  10. “重参数宇宙”再添新成员:RepMLP,清华大学旷视科技提出将重参数卷积嵌入到全连接层