RDS Aurora(MySQL)性能非常差

RDS Aurora(MySQL)性能非常差,mysql,amazon-web-services,amazon-aurora,Mysql,Amazon Web Services,Amazon 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

我正在将我们的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条记录,这样我甚至可以在极光中看到结果

即使限制为500行,极光也需要令人难以置信的55秒,而MsSQL用于所有70.000条记录的时间不到1秒。 在这种情况下,MsSQL的执行速度几乎是Aurora的8.000倍

本主题的主题不是查询本身,也不是如何改进查询。这只是一个简单的更新,运行在70k的汽车和220k的司机。对于数据库来说,它应该什么都不是

车。Id和司机。Id是主键。没有索引和外键

这是预期的吗

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

您可以尝试使用一种不使用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 

可以预料,写得不好的查询性能会很差。因此,主题应该是如何改进查询。您是如何将数据从MySQL移动到Aurora的?如果手动创建,是否确保在Aurora中创建相同的索引?MySQL和Aurora是否在相同的实例类型上运行?您是否确保任何自定义MySQL参数也应用于Aurora?在将数据移动到Aurora中后,您是否优化了Aurora中的表?@EugenRieck那么,您是在告诉我Aurora仅在智能查询中表现良好吗?如果是这样的话,MsSQL就更好了,因为即使编写得很差,它也能很好地工作。@MarkB我使用了Amazon迁移服务。两个RD都只使用主键,不使用传统索引。两者都在db.t2.medium实例上运行。移动数据后,我没有优化表。我会用谷歌搜索一下。检查RDS实例上的CPU点数,因为你使用的是t2。确保在.OMG上迁移数据库时没有耗尽CPU资源!在那之后,Aurora对所有行只取1.3秒!谢谢你给出了一个很好的答案,而不是批评。@HugoRamos好吧,如果答案很好,你也可以认为是有用的