RDS Aurora (MySQL) 表现极差
RDS Aurora (MySQL) performing EXTREMELY poorly
我正在将我们的 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 秒,而 MsSQL 处理所有 70.000 条记录只用了不到 1 秒。
在这种情况下,MsSQL 的执行速度几乎比 Aurora 快 8.000 倍。
本主题的主题不是查询本身,也不是如何改进它。这只是 7 万辆汽车和 22 万名司机的简单更新 运行。它对数据库来说应该没什么。
Cars.Id 和 Drivers.Id 是主键。没有索引也没有外键。
这是预料之中的吗?!
编辑:
1.两个RDS都是db.t2.medium
2. MsSQL 是一个有数百个用户的生产服务器,而 Aurora 只有我一个人。
您可以尝试使用不使用子选择的方法
UPDATE Cars
inner join Drivers on Drivers.Car_id = Cars.Id and Cars.Id BETWEEN 1 AND 500
SET Cars.CurrentDriver_id = Drivers.Id
我正在将我们的 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 秒,而 MsSQL 处理所有 70.000 条记录只用了不到 1 秒。 在这种情况下,MsSQL 的执行速度几乎比 Aurora 快 8.000 倍。
本主题的主题不是查询本身,也不是如何改进它。这只是 7 万辆汽车和 22 万名司机的简单更新 运行。它对数据库来说应该没什么。
Cars.Id 和 Drivers.Id 是主键。没有索引也没有外键。
这是预料之中的吗?!
编辑: 1.两个RDS都是db.t2.medium 2. MsSQL 是一个有数百个用户的生产服务器,而 Aurora 只有我一个人。
您可以尝试使用不使用子选择的方法
UPDATE Cars
inner join Drivers on Drivers.Car_id = Cars.Id and Cars.Id BETWEEN 1 AND 500
SET Cars.CurrentDriver_id = Drivers.Id