mysql - RDS over MySQL 出现奇怪的延迟

标签 mysql amazon-web-services amazon-ec2 rds

我需要一些帮助或指导来了解在哪里查找与 RDS 上的 mysql 相关的奇怪问题。

我们有两种环境,一种在 EC2 上,本地安装了 Mysql,另一种是 RDS mysql 实例。两者具有相似的硬件并具有相同的数据。

在这两种情况下,我们都运行相同的存储过程,都从第三个源(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) 值 (substring(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) 值 (substring(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) 值 (substring(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) 值 (substring(strParse,1, 1) ) 0.00297025 删除临时表donCodes
0.0191115 如果不存在则创建临时表 donCodes (cd varchar(2)) 0.00009825 从donCodes中删除
0.00280375 删除临时表donCodes
0.0002995 从 tblProfile 中选择 *

0.00460175 删除临时表 tblProfile

当我添加分析中的查询时,它们基本上是相同的。

所以问题是额外的延迟从何而来?

如有任何想法或指示,我们将不胜感激。

最佳答案

我建议您进一步研究“类似硬件”的概念。

鉴于本地 EC2 实例具有零延迟,但 RDS 可能有更多延迟;然而,延迟效应不会导致查询性能变慢。

您能否在本地 EC2 MySQL 与 RDS 中重新比较这些因素

  1. 数据大小(数量及其架构)
  2. MySQL 版本
  3. EC2 实例与 RDS 中的 IOPS
  4. RDS 卷大小(更大的预配置存储将改善 I/O)
  5. RDS 的多可用区设置(将需要更多额外开销)

正如上面所说,比较基于 EC2 的本地运行 MySQL 和基于 RDS 的 MySQL 不是直接进行 Apple 与 Apple 的比较。它更像是比较青苹果和普通(红)苹果,两者都是苹果,但它们是完全不同的水果。

关于mysql - RDS over MySQL 出现奇怪的延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24143130/

相关文章:

mysql - 有条件地执行查询

php - 按 DATEPART() 选择行

amazon-web-services - AWS Cloud9 : Referencing Lambda Layer Locally

python - 用于 Python 的亚马逊 AWS Web 框架

python - 使用 pip 和 virtualenv 的 scipy 安装以错误和 g++ 退出状态 4 结束

MySQL unique 1500 varchar 字段错误(#1071 - 指定的键太长)

mysql - 在 MySQL 中查找组组

amazon-web-services - 如何使用 kops 更改现有的 kubernetes aws 集群(更改节点类型)

amazon-web-services - AWS 雅典娜 : user-defined variables

amazon-web-services - 如何使用 AWS-CDK 设置 AWS Cloud9 实例?