RDS Aurora(MySQL)表现极差

时间:2017-08-17 16:57:48

标签: mysql amazon-web-services amazon-rds-aurora

我正在将我们的Amazon RDS MsSQL数据库迁移到RDS Aurora,但我对Aurora缺乏性能印象深刻。

UPDATE Cars
SET CurrentDriver_id = (
            SELECT Drivers.Id 
            FROM Drivers 
            WHERE Drivers.Car_id = Cars.Id 
            ORDER BY Drivers.Id DESC 
            LIMIT 1)
WHERE Cars.Id BETWEEN 1 AND 500;

我必须限制前500个记录,所以我甚至可以在Aurora中看到结果。

即使限制为500行,Aurora也需要55秒,而所有70.000条记录的MsSQL只需不到1秒。 在这种情况下,MsSQL的执行速度比Aurora快了近8.000倍。

本主题不是查询本身,也不是如何改进。这只是在70k Cars和220k Drivers上运行的简单更新。对数据库来说应该没什么。

Cars.Id和Drivers.Id是主键。没有索引,没有外键。

这是预期的吗?!

编辑: 1.两个RDS都是db.t2.medium 2. MsSQL是一个拥有数百名用户的生产服务器,而Aurora只是我。

1 个答案:

答案 0 :(得分:2)

您可以尝试使用不使用subselect的方法

  UPDATE Cars
  inner join Drivers on Drivers.Car_id = Cars.Id  and Cars.Id BETWEEN 1 AND 500
    SET Cars.CurrentDriver_id = Drivers.Id