我正在将我们的Amazon RDS MsSQL数据库迁移到RDS Aurora,但Aurora缺乏性能让我印象深刻。RDS Aurora(MySQL)性能极差
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汽车和220k驱动程序上。它应该对数据库没有任何影响。
Cars.Id和Drivers.Id是主键。没有索引和外键。
这是预期吗?!
编辑: 1.两个RDS都是db.t2.medium 2. MsSQL是一个有数百个用户的生产服务器,而Aurora只有我。
预期的做法,即写得不好查询,表现不佳。所以这个问题的确应该是如何改进查询。 –
您是如何将数据从MySQL迁移到Aurora的?如果你手动确实在Aurora中创建了相同的索引? MySQL和Aurora是否在相同的实例类型上运行?你确定任何自定义MySQL参数也被应用于Aurora吗?将数据移入Aurora之后,您是否优化了Aurora中的表格? –
@EugenRieck那么,您是否告诉我Aurora仅在智能查询方面表现良好?如果是这样,MsSQL要好得多,因为即使写得不好,它也能很好地工作。 –