我需要一些帮助或方向,以便在RDS上查找与我们的mysql相关的奇怪问题。
我们有两个环境,一个在EC2上,本地安装了Mysql,另一个是RDS mysql实例。两者都具有相似的硬件并具有相同的数据。
在这两种情况下,我们运行相同的存储过程,都从第三个源(EC2实例)
运行在EC2实例上 启用分析后,查询将在0.33秒内运行 查询正常,0行受影响(0.33秒)
0.00012025 call crmDisplayDonorProfile(3139,21)
如果存在,则删除临时表0.000048 tblProfile
0.022021如果不存在则创建临时表donCodes(cd char(1))
0.0000755从donCodes删除
0.000111插入donCodes(cd)值(substring(strParse,1,1))
0.0041805 drop temporary table donCodes
0.02201925如果不存在则创建临时表donCodes(cd varchar(2))
0.00007275从donCodes删除
0.0040465 drop temporary table donCodes
0.02208925如果不存在则创建临时表donCodes(cd char(1))
0.0001155从donCodes删除
0.00015625插入donCodes(cd)值(substring(strParse,1,1))
0.00342425 drop temporary table donCodes
0.02178325创建临时表(如果不存在)donCodes(cd varchar(2))
0.0001055从donCodes删除
0.00390075 drop temporary table donCodes
0.00042475选择*来自tblProfile
在RDS实例
上 0.00010275 call crmDisplayDonorProfile(3139,36)
如果存在,则删除临时表0.00006275 tblProfile
0.02370575创建临时表如果不存在donCodes(cd char(1))
0.00007175从donCodes中删除
0.00010025插入donCodes(cd)值(substring(strParse,1,1))
0.0038815 drop temporary table donCodes
0.0226735如果不存在则创建临时表donCodes(cd varchar(2))
0.00006475从donCodes删除
0.00182825 drop temporary table donCodes
0.0253065创建临时表如果不存在donCodes(cd char(1))
0.0001185从donCodes删除
0.00015075插入donCodes(cd)值(substring(strParse,1,1))
0.00297025 drop temporary table donCodes
0.0191115创建临时表(如果不存在)donCodes(cd varchar(2))
0.00009825从donCodes删除
0.00280375 drop temporary table donCodes
0.0002995 select * from tblProfile
当我从分析中添加查询时,基本相同。
所以问题是额外的延迟会从何而来?
任何想法或方向将不胜感激。
答案 0 :(得分:1)
我建议你进一步研究你的“类似硬件”的概念。
鉴于本地EC2实例具有ZERO延迟,但RDS可能会有更多的延迟;然而,延迟效应不会导致较慢的查询性能。
您可以在本地EC2 MySQL与RDS中重新比较这些因素
正如它所说的那样比较你的基于EC2的本地运行的MySQL和基于RDS的MySQL是 not
直接Apple到Apple进行比较。它更像比较绿苹果和普通(红色)苹果,两者都是苹果,但它们是完全不同的水果。