Php 从本地MySQL服务器切换到Amazon RDS后,性能急剧下降

Php 从本地MySQL服务器切换到Amazon RDS后,性能急剧下降,php,mysql,amazon-web-services,amazon-rds,Php,Mysql,Amazon Web Services,Amazon Rds,我刚从本地MySQL服务器(在EC2微实例上)切换到RDS实例,我看到速度急剧下降 对RDS的一个SQL请求等于对本地DB的40个请求 大量的SQL请求使得脚本速度非常慢。有一个表格,显示网站页面生成的时间: 本地MySQL服务器vs RDS +----------------------------------+ | Requests | Local server* | RDS* | +----------------------------------+ | 1 |

我刚从本地MySQL服务器(在EC2微实例上)切换到RDS实例,我看到速度急剧下降

对RDS的一个SQL请求等于对本地DB的40个请求

大量的SQL请求使得脚本速度非常慢。有一个表格,显示网站页面生成的时间:

本地MySQL服务器vs RDS

+----------------------------------+
| Requests | Local server* | RDS*  |
+----------------------------------+
|        1 |           220 |   115 |
|        3 |           200 |    60 |
|       10 |           180 |    25 |
|       20 |           150 |    10 |
|       40 |           115 |     5 |
+----------------------------------+
*-脚本运行速度1/n,例如200表示1/200秒

因此,基本上,页面包含40个非常简单和快速的SQL请求,这些请求通常渲染0008秒,RDS渲染0.2秒,这大大降低了速度(x23!)

事实

  • EC2实例和RDS实例在同一可用区
    us-west-1b
  • MySQL缓存已启用(
    query\u Cache\u type=1
    query\u Cache\u size=16777216
    query\u Cache\u limit=1048576
    ),我可以通过
    显示全局变量,如“query\u Cache\u type”
  • 我运行的查询是相同的(我只是多次运行相同的SQL语句)
    select*from user,其中id=100
    ,其中
    id
    唯一索引
    ,如果使用MySQL客户端执行它,工作速度非常快(0.0005秒)
  • 我使用PDO持久连接

我知道有一个网络因素现在,它是远程服务器,客户端和服务器之间有一些延迟,但我没想到会有这么大的减少,这是正常的还是我可以做些什么?

很正常。仅仅是登录时的握手就可以在我的体验中增加~50毫秒。当数据库不在同一台服务器上时,这是您不得不面对的更重要的权衡之一。另外,从技术上讲,RDS并不是为纯粹的性能而构建的。如果您想这样做,您需要查看红移。您使用PDO持久连接吗?是的,忘了提到这一点。问题更新了这一事实。