我需要一些帮助或指导,如何在RDS上查找与mysql相关的奇怪问题。
我们有两个环境,一个是在EC2上安装Mysql的本地环境,另一个是RDS实例。两者具有相似的硬件和相同的数据。
在这两种情况下,我们运行相同的存储过程,都是从第三个源(EC2实例)运行的。
在EC2实例上启用了概要分析,查询运行在0.33秒内,查询确定,0行受影响(0.33秒)
显示个人资料;
0.00012025呼叫crmDisplayDonorProfile(3139,21)
0.000048删除临时表(如果存在tblProfile )
0.022021创建临时表,如果不存在donCodes (cd char(1))
0.0000755从donCodes中删除
0.000111插入donCodes (cd)值(子字符串(strParse,1,1) ) 0.0041805删除临时表donCodes
0.02201925如果不存在创建临时表,donCodes (cd varchar(2)) 0.00007275从donCodes中删除
0.0040465删除临时表donCodes
0.02208925创建临时表,如果不存在donCodes (cd char(1))
0.0001155从donCodes中删除
0.00015625插入donCodes (cd)值(子字符串(strParse,1,1) ) 0.00342425删除临时表donCodes
0.02178325如果不存在创建临时表,donCodes (cd varchar(2)) 0.0001055从donCodes中删除
0.00390075删除临时表donCodes
0.00042475从tblProfile中选择*
0.00571425删除临时表tblProfile
RDS实例的
查询确定,0行受影响(1.84秒)
0.00010275呼叫crmDisplayDonorProfile(3139,36)
0.00006275删除临时表(如果存在tblProfile )
0.02370575创建临时表,如果不存在donCodes (cd char(1))
0.00007175从donCodes中删除
0.00010025插入donCodes (cd)值(子字符串(strParse,1,1) ) 0.0038815删除临时表donCodes
0.0226735如果不存在创建临时表,donCodes (cd varchar(2)) 0.00006475从donCodes中删除
0.00182825删除临时表donCodes
0.0253065创建临时表,如果不存在donCodes (cd char(1))
0.0001185从donCodes中删除
0.00015075插入donCodes (cd)值(子字符串(strParse,1,1) ) 0.00297025删除临时表donCodes
0.0191115如果不存在创建临时表,donCodes (cd varchar(2)) 0.00009825从donCodes中删除
0.00280375删除临时表donCodes
0.0002995从tblProfile中选择*
0.00460175删除临时表tblProfile
当我把分析中的查询加起来时,基本上是一样的。
因此,问题是额外的延迟将从何而来?
如有任何想法或指导,将不胜感激。
发布于 2014-06-10 15:11:39
我建议你进一步研究一下“类似硬件”的概念。
考虑到本地EC2实例的延迟为零,但是RDS可能会有更多的延迟;然而,延迟效应不会导致查询性能的降低。
您能在本地EC2 MySQL和RDS中重新比较这些因素吗?
正如它所说的,比较你的基于EC2的本地运行的MySQL和基于RDS的MySQL是EC2与苹果的直接对比。它更像比较绿色苹果和普通(红色)苹果,两者都是苹果,但它们是完全不同的水果在一起。
https://stackoverflow.com/questions/24143130
复制相似问题