MySQL在Amazon RDS上的查询速度非常慢,但在我的笔记本电脑上真的很快?

我很想知道是否有人知道这是为什么发生。 我刚刚迁移到亚马逊RDS为我们的网站,我们最大的查询需要0.2秒执行我的MacBook需要1.3秒执行最昂贵的RDS实例。

显然我已经禁用了查询caching(并testing了这个)在我的本地计算机上,两个数据库都是完全一样的。 InnoDB,都有相同的索引等。它是我们花了我们一个财富(每月$ 2000)为最快的RDS实例,我很快失去了信心。 有任何想法吗?

尝试试用RDS提供的Provision IOPS 。 无论实例大小如何,IO都是有限的,您可以使用Provision IOPS设置(额外付费)来提高IO性能。

您可以为每个数据库实例configuration3TB存储和30,000 IOPS。 对于在m2.4xlarge实例上运行50%写入和50%读取的工作负载,您可以实现高达25000 IOPS(针对Oracle)和12,500 IOPS(针对MySQL)。 但是,通过configuration高达30,000 IOPS,您可以实现更低的延迟和更高的吞吐量。 实际实现的IOPS可能与您根据数据库工作负载,实例types和数据库引擎select所调配的数量不同。 请参阅Amazon RDS用户指南中影响已实现IOPS的因素部分以了解更多信息。

您可以将标准存储转换为预置IOPS存储,并获得一致的吞吐量和较低的I / O延迟。 这样做时您将遇到短暂的可用性影响。 您可以独立缩放IOPS(以1000为增量),并以零停机时间实时存储。 所提供的IOPS与所请求的存储(以GB为单位)的比率应在3到10之间。例如,对于具有1000 GB存储的数据库实例,可以提供3,000到10,000 IOPS。 您可以根据应用程序的stream量的季节性变化等因素来boost或降低IOPS。

AWS RDS预留IOPS

主要原因应该是您的计算机和Amazon RDS实例之间的延迟。 你在哪里? 如果您在美国,请确保您在美国东部或美国西部使用RDS。 如果你在欧洲,日本或亚洲,那里也有地区。

我在Rackspace服务器实例上遇到了类似的问题。 查询需要很长时间才能执行,即使在Innodbconfiguration了我的努力。 我最终转向Rackspace提供的专用数据库产品。 我的猜测是磁盘密集型服务(如数据库)在多个实例之间共享磁盘的虚拟服务器上并不能很好地发展。 一般来说,似乎mysql已经达成共识,在裸机或其他针对数据库进行了优化的基础架构上运行得最好。 我可能是错的,但这是我得出的结论。