阿里巴巴在线技术峰会--云数据库十大经典案列总结和反思

本文素材来源与2017年的阿里巴巴在线技术峰会。后续视频及PPT资料在文章后面提供下载地址。

 

作者自我介绍:罗龙九

作者博客地址:http://hidba.org/

 

文章目录:

 

从上面的执行计划看,type=ALL  表示全表扫描,SQL执行一次的时候,需要扫描70多万行的数据。如果系统频繁的调用这条SQL,那么这个SQL可能会出现堆积。

先查看表结构:

表结构中有三个字段的索引,没有“mo”字段的索引。所以考虑是不是在“mo”字段上加上索引,在索引的时候,需要考虑索引的过滤性。假如这个字段是过滤性非常差的字段,即时我们字段上加了索引,也可能优化器也不会使用。所以加索引之前需要先验证字段的过滤性。

通过上面的结果,符合条件的结果是非常少的,那么字段加索引的效率是非常高的。

还有另外一种方法判断过滤性:(补充内容)

DISTINCT "mo" 字段,以及  count(DISTINCT "mo" 字段) 的不同个数,以及表的总个数去判断这个字段的过滤性。

(补充)要注意的地方:加索引之前,如果数据库有正在运行的慢SQL,那么加索引操作就会被其阻塞,进而导致表的后续访问都会被阻塞住。

 

加完索引之后

扫描行数与之前的过滤性验证数据不符。接着分析原因。使用explain extended 命令(将执行计划中的信息进一步的打印出来)。

出现了索引的隐私转换问题。解决办法如下图:将查询条件  类型一致

总结案例一

 

 

 

在MYSQL 5.1、 5.5版本时,处理子查询与Oracle 子查询是完全不一致的。导致由Oracle 数据库迁移至MYSQL数据库,出现了大量的SQL堆积。

mysql的优化器支持嵌套循环,A表驱动B表。如果驱动表A表非常大,那驱动的循环次数就非常多.

本人从网上查询上面描述的结果。不一定正确,只是描述下上面的意思。

Reference: 
https://dev.mysql.com/doc/refman/5.5/en/nested-loop-joins.html

 

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

除了上面两个常用的引擎外:tokuDB引擎、MEMORY引擎。本人推荐查看(每种引擎有不同的适应情景)

tokuDB引擎

https://www.cnblogs.com/billyxp/p/3567421.html

 

MEMORY引擎

https://www.cnblogs.com/yuxiuyan/p/6511837.html

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

 

 

 

 主讲人特定强调注意:线上繁忙的系统,或者有许多慢SQL,在添加字段,或者选择添加索引时,后面对表的访问将全部被lock住,所以一定要特别特别小心。请在做DDL操作前,一定将慢查询Kill掉。

 

下图是针对阿里云DRS的读写分离

 

上面的图说的是,在主库上做DDL操作,会导致备库(子节点)同样会出现了相同的延迟操作。所以进行操作时,选择业务低峰或者流量小的时候进行。

 

同时也要屁避免子节点上的大业务查询造成的延迟,进行操作前,请先在子节点上  show processlist 查看连接状态,可以将慢的查询kill掉。

 

遇到延迟的情况,排查思路

 

 

 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、下4载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、下4载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、 4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值