大发5分11选5_极速5分3D

RDS最佳实践(四)—如何处理Mysql的子查询

时间:2019-12-27 12:58:54 出处:大发5分11选5_极速5分3D

碰到相似问题图片还能能 考虑以下其他因素:

SQL飞快就执行得到结果;RDS如果推出5.6的版本,届时还还能能选折 购买5.6的实例,同样也还还能能将5.5,5.1的实例升级到5.6,除理如果你诟病的子查询性能问题图片。

很多很多就剩下数据库版本了,RDS的版本是Mysql 5.5,而用户使用的数据库版本是5.6,很多很多问题图片很如果突然冒出在这里,mysql 5.6和5.5在优化器上最大的改进很多很多我对子查询的优化改进:

早上值班同事在旺旺群里边贴了二根非常比较复杂的SQL,用户从本地迁移到RDS Mysql突然冒出严重性能下降,同样的数据和表形态学 下,在本地的数据库上若果还还能能 1s的时间,如果在rds上好几分钟都没响应。

5.5的执行计划:

PS.最佳实践:在oracle迁移到mysql的事先,请选折 Mysql 5.6的版本,原先就还还能能除理麻烦的子查询改写了。

b.数据库的配置不同(不同的内存配置,参数设置–query cache是是是不是打开),因为 sql执行时间不同;

c.数据库的数据量不同(系统遇到bug,生成了一定量的垃圾数据),因为 sql执行时间不同;

a.数据库的版本不同(不同的版本优化器策略不一样,如果异构数据库间的迁移:oracle–>mysql,sqlserver–>mysql),因为 sql执行计划不同,最后因为 sql执行时间不同;

RDS配置为:260 M内存,160 IOPS,本地是笔记本电脑:60 0M的内存,560 0转的笔记本电脑,很多很多数据库配置来说区别并非大;

b.5.6对子查询除理:将子查询的结果集cache到临时表里,临时表索引的主要目的是用来移除重复记录,如果如果也如果用于在做join时做查询使用,这俩 技术在5.6中叫做Subquery Materialize.物化的子查询还还能能看了select_type字段为SUBQUERY,而在MySQL5.5里为DEPENDENT SUBQUERY

根据以上线索,用户是事先从线下迁移到RDS的,很多很多数据量和表形态学 是相同的;

a.5.0、5.1、5.5对子查询除理:我不要 将子查询的结果集计算出来用作与其他表做join,很多很多很有如果outer 表每扫描二根数据,子查询都会被重新执行一遍,原先就因为 性能下降;很多很多在5.5事先的版本中,除理子查询的问题图片通常采用sql改写:将子查询改写为join的措施 ;

热门

热门标签