SQL优化工具

什么是索引?

  • 打个比方,我们在使用MySQL用作查询的时候就好比查字典,索引就好比字典的偏旁部首页。如果没有索引我们查询一个文字就需要一页页的翻,显然这种方式效率很低。如果我们对某一字段加入了索引,就可以通过偏旁部首页查找这个文字,让查询变得更加高效。

相关链接

效果展示

SELECT
ca_id,
sub_id,
ca_number,
sub_number
FROM
tbl_category ca
LEFT JOIN tbl_subcategory sub ON ca.ca_number = sub.sub_number

  • 使用SQL优化工具
[root@localhost /]# /usr/sbin/sqladvisor -f /etc/sql.cnf -q "SELECT ca_id, sub_id, ca_number, sub_number FROM tbl_category ca LEFT JOIN tbl_subcategory sub ON ca.ca_number = sub.sub_number" -v 1

2017-08-15 19:27:43 3494 [Note] 第1步: 对SQL解析优化之后得到的SQL:select `ca_id` AS `ca_id`,`sub_id` AS `sub_id`,`ca_number` AS `ca_number`,`sub_number` AS `sub_number` from (`test`.`tbl_category` `ca` left join `test`.`tbl_subcategory` `sub` on((`ca`.`ca_number` = `sub`.`sub_number`))) 

2017-08-15 19:27:43 3494 [Note] 第2步:开始解析join on条件:ca.ca_number=sub.sub_number 

2017-08-15 19:27:43 3494 [Note] 第3步:开始选择驱动表,一共有1个候选驱动表 

2017-08-15 19:27:43 3494 [Note] explain select * from tbl_category 

2017-08-15 19:27:43 3494 [Note] 第4步:候选驱动表tbl_category的结果集行数为:29521 

2017-08-15 19:27:43 3494 [Note] 第5步:选择表tbl_category为驱动表 

2017-08-15 19:27:43 3494 [Note] 第6步:表tbl_category 的SQL太逆天,没有优化建议 

2017-08-15 19:27:43 3494 [Note] 第7步:开始验证 字段sub_number是不是主键。表名:tbl_subcategory 

2017-08-15 19:27:43 3494 [Note] show index from tbl_subcategory where Key_name = 'PRIMARY' and Column_name ='sub_number' and Seq_in_index = 1 

2017-08-15 19:27:43 3494 [Note] 第8步:字段sub_number不是主键。表名:tbl_subcategory 

2017-08-15 19:27:43 3494 [Note] 第9步:开始验证 字段sub_number是不是主键。表名:tbl_subcategory 

2017-08-15 19:27:43 3494 [Note] show index from tbl_subcategory where Key_name = 'PRIMARY' and Column_name ='sub_number' and Seq_in_index = 1 

2017-08-15 19:27:43 3494 [Note] 第10步:字段sub_number不是主键。表名:tbl_subcategory 

2017-08-15 19:27:43 3494 [Note] 第11步:开始验证表中是否已存在相关索引。表名:tbl_subcategory, 字段名:sub_number, 在索引中的位置:1 

2017-08-15 19:27:43 3494 [Note] show index from tbl_subcategory where Column_name ='sub_number' and Seq_in_index =1 

2017-08-15 19:27:43 3494 [Note] 第12步:开始输出表tbl_subcategory索引优化建议: 

2017-08-15 19:27:43 3494 [Note] Create_Index_SQL:alter table tbl_subcategory add index idx_sub_number(sub_number) 

2017-08-15 19:27:43 3494 [Note] 第13步: 优化结束! 

2017-08-15 19:27:43 3494 [Note] 第12步:开始输出表tbl_subcategory索引优化建议: 

2017-08-15 19:27:43 3494 [Note] Create_Index_SQL:alter table tbl_subcategory add index idx_sub_number(sub_number)
  • 执行工具的索引优化建议

alter table tbl_subcategory add index idx_sub_number(sub_number)

  • 执行sql语句(耗时0.05秒左右[linux系统下的测试])
SELECT
ca_id,
sub_id,
ca_number,
sub_number
FROM
tbl_category ca
LEFT JOIN tbl_subcategory sub ON ca.ca_number = sub.sub_number

详细链接 : http://wangweihong.com

SQL优化工具的更多相关文章

  1. Oracle 10G强大的SQL优化工具:SQL Tuning Advisor

    p { margin-bottom: 0.25cm; direction: ltr; color: rgb(0, 0, 0); line-height: 120%; orphans: 2; widow ...

  2. SQL优化工具SQLAdvisor使用

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

  3. 美团SQL优化工具SQLAdvisor

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

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

    https://www.oschina.net/news/82725/sqladvisor-opensource https://github.com/Meituan-Dianping/SQLAdvi ...

  5. sql优化工具--美团SQLAdvisor

    美团点评SQL优化工具SQLAdvisor开源 介绍 在数据库运维过程中,优化 SQL 是 DBA 团队的日常任务.例行 SQL 优化,不仅可以提升程序性能,还能够降低线上故障的概率. 目前常用的 S ...

  6. 【SQL优化】SQL优化工具

    SQLAdvisor 是由美团点评公司北京DBA团队开发维护的 SQL 优化工具:输入SQL,输出索引优化建议. 它基于 MySQL 原生词法解析,再结合 SQL 中的 where 条件以及字段选择度 ...

  7. SQL优化工具SQLAdvisor使用(转)

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

  8. 美团点评SQL优化工具SQLAdvisor开源快捷部署

    美团点评SQL优化工具SQLAdvisor开源快捷部署 git clone https://github.com/Meituan-Dianping/SQLAdvisor.gityum install ...

  9. 智能SQL优化工具--SQL Optimizer for SQL Server(帮助提升数据库应用程序性能,最大程度地自动优化你的SQL语句 )

    SQL Optimizer for SQL Server 帮助提升数据库应用程序性能,最大程度地自动优化你的SQL语句 SQL Optimizer for SQL Server 让 SQL Serve ...

随机推荐

  1. linux下使用scp远程传输自动输入密码

    由于需要将A服务器的文件 远程传输到B服务器 但是scp命令每次都要手动输入密码 这样脚本执行太繁琐,所以讲A服务器和B服务器互信即可,具体操作如下: 首先在A服务器配置: mkdir -p ~/.s ...

  2. NlpirParser智能挖掘平台词性标注新算法

    词性标注是自然语言浅层理解的一个重要环节,它可帮助系统自动判定词语所属的语法范畴,为进一步处理提供更高层面的支持.词性标注主要任务是消除词性兼类歧义,对于新信息检测来说,它的实际意义还在于: (1)能 ...

  3. div标签清除float浮动样式方法

    方法一. 这个方法来源于positioniseverything ,通过after伪类实现,完全兼容当前主流浏览器. 1 <style type="text/css"> ...

  4. 使用 Router 实现的模块化,如何优雅的回到主页面

    使用 Router 实现的模块化,如何优雅的回到主页面 版权声明: 本账号发布文章均来自公众号,承香墨影(cxmyDev),版权归承香墨影所有. 未经允许,不得转载. 一.前言 现在越来越多的 App ...

  5. Redux源码分析之compose

    Redux源码分析之基本概念 Redux源码分析之createStore Redux源码分析之bindActionCreators Redux源码分析之combineReducers Redux源码分 ...

  6. c++ STL 容器——联合容器

    STL提供了四种联合容器 set,multiset,map,multimap; set and multiset在<set>头文件 map and multimap在<map> ...

  7. 前端开发工具Brackets介绍,安装及安装Emme插件时踩过的坑

    对于前端开发的园友来说有可能IDE工具有很多,层次不穷,还有每个人的喜好及习惯也不一样,因为我是一名后端开发的.Net程序员,但是大家都知道,现在都提倡什么全栈工程师,所以也得会点前端开发,所以我对于 ...

  8. [算法题] Search in Rotated Sorted Array ii

    题目内容 题目来源:LeetCode Suppose an array sorted in ascending order is rotated at some pivot unknown to yo ...

  9. 记一次小型生产事故 | BeyondComper跨编码方式复制文件内容

    前言 今天组长在做站内巡检的时候,发现header内有一条meta标签的content显示为乱码. <meta name="description" content=&quo ...

  10. 【有意思的BUG】视频连接超时

    最近遇到了一个BUG,但是它的出现又存在概率,所以挺有意思的. BUG的现象是:视频在播放过程中(已播放进度<已加载进度),首先出现了缓冲的动画效果其次呈现雪花背景并且抛出异常"视频连 ...