大家好,我是知数堂SQL 优化班老师 网名:骑龟的兔子

已经很久没写文章了 今天分享一篇优化SQL 案例

slow query 里有如下 SQL

看下执行计划如下

从执行计划可以看出C表全表扫描了

那我们看具体的SQL

从具体SQL 中可以看出 where 条件里能达到好的过滤条件的 应该是

B表 ,那先看下B表相关条件有没有索引

从上图所示,我们知道了 是有索引的,那应该案例来说,B表应该当驱动表,但实际没有 ,而是C表当了驱动表 为啥呢 ?

我们都知道MySQL 是基于COST 的优化器  如果 B 当驱动表的话 那连接顺序应该是 B->A->C 显然在这个过程中哪个地方的COST 太高了 所以最终没选择这个执行计划。

我们重点看下 A->C 的连接条件

我们看下 这个连接条件所对应的C表的索引情况

从这可以看到 C表 对应的连接条件 在索引里不是前导列,也就是第一个列

所以问题就出现在这里了 。

那到此,我们先测试下,单独创建一个单列索引

然后看下执行计划

嗯 达到了我们的预期效果。看下具体执行效果

我的新一轮的SQL 优化课 即将在春节后开课

我是知数堂SQL 优化班老师~ ^^

如有关于SQL优化方面疑问和一起交流的请加 并且 @兔子@知数堂SQL优化

高性能MySQL,SQL优化群 有叶金荣,吴炳锡 两位大神坐镇 :579036588

欢迎加入 知数堂大家庭。

我的微信公众号:SQL开发与优化(sqlturning)

mysql sql优化书籍_MySQL SQL优化的正确姿势相关推荐

  1. mysql sql 一部分记录_MySQL性能优化实践(很全面,值得收藏)

    一 题记 最近公司项目添加新功能,上线后发现有些功能的列表查询时间很久.原因是新功能用到旧功能的接口,而这些旧接口的 SQL 查询语句关联5,6张表且编写不够规范,导致 MySQL 在执行 SQL 语 ...

  2. mysql参数优化步骤_MySQL架构优化实战系列4:SQL优化步骤与常用管理命令2(转)

    MySQL架构优化实战系列4:SQL优化步骤与常用管理命令 原文:http://dbaplus.cn/news-11-649-1.html 一.SQL语句优化步骤 1.查看MySQL状态及配置 sho ...

  3. mysql 嵌套查询性能_mysql SQL优化之嵌套查询-遁地龙卷风

    (-1) 写在前面 这篇随笔的数据使用的是http://blog.csdn.net/friendan/article/details/8072668#comments里的,里面有一些常见的select ...

  4. mysql 美化sql 很丑_MYSQL SQL语句优化

    1.EXPLAIN 做MySQL优化,我们要善用EXPLAIN查看SQL执行计划. 下面来个简单的示例,标注(1.2.3.4.5)我们要重点关注的数据: type列,连接类型.一个好的SQL语句至少要 ...

  5. mysql数据库优化大全_MySQL数据库优化技巧大全

    简介: MySQL数据库优化技巧大全 MySQL优化三大方向 ① 优化MySQL所在服务器内核(此优化一般由运维人员完成). ② 对MySQL配置参数进行优化(my.cnf)此优化需要进行压力测试来进 ...

  6. mysql+date+范围+性能_MySQL性能优化的最佳20+条经验

    今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数据 ...

  7. mysql 性能 比较好_MySQL性能优化的最佳20+条经验

    今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我 们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数 ...

  8. mysql 优化方法_Mysql的优化方法介绍

    本篇文章给大家带来的内容是关于Mysql的优化方法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.应用访问优化1).减少数据访问(Nosql作用) 2).返回更少数据 3). ...

  9. mysql or 创建索引_Mysql索引优化

    1.单表索引优化 单表索引优化分析 创建表 建表 SQL CREATE TABLE IF NOT EXISTS article( id INT(10) UNSIGNED NOT NULL PRIMAR ...

最新文章

  1. HashMap和HashTable区别
  2. python2.7读汉字的时候出现乱码,如何解决
  3. 鹅厂又赢了!游戏不再是玩家的资产,我们只有“使用权”不能交易
  4. 分布式锁的几种实现原理
  5. AM335x 添加 HUAWEI MU609 Mini PCIe Module,并用pppd 启动相关设备
  6. kubernetes怎么读_每个 Kubernetes 应聘者应该知道的 5 个面试题 | Linux 中国
  7. LGBM分类模型预测
  8. linux mysql恢复数据_Mysql数据恢复和备份
  9. 嵌入式中的通讯协议——UART、I2C、SPI、DMA
  10. 重装系统开机蓝屏0x0000007E错误但是可以进入安全模式
  11. 天合光能为澳大利亚太阳能农场供应双玻组件
  12. 2022年农产品行业研究报告
  13. openGL之API学习(五十五)凹凸贴图技术
  14. idea run with coverage异常
  15. C# 获取笔记本电池信息 调用 Win32 Api
  16. VUE基础用法(四)
  17. yolov3gpu配置_基于图灵架构GPU进行keras-yolov3的配置
  18. NAT与NAT穿透(二)
  19. 罗马音平假字复制_罗马音平假名和片假名大全
  20. BUC算法及其Python实现

热门文章

  1. 通向架构师的道路(第二天)之apache tomcat https应用
  2. PHP全栈学习笔记10
  3. JQuery中一些常用函数的运用
  4. Volley框架使用及源码解析
  5. View结合组策略进行应用程序下发
  6. SQLSERVER中的ALL、PERCENT、CUBE关键字、ROLLUP关键字和GROUPING函数
  7. 淘宝商品库MySQL优化实践的学习
  8. C/S构架和B/S架构的比较
  9. Hashtable, ArrayList, List, Dictionary学习
  10. 如何在eclipse中使用分支合并功能