我们在本地 mysql 5.7 版本中拥有现有数据,并计划将应用程序和数据库迁移到 AWS 上。我们配置了一个 RDS Mysql 数据库和一个 Aurora Mysql 数据库,并将应用程序连接到两台服务器。我们将执行时间保存在数据库中,因此我们发现RDS MySql 的运行速度是 Aurora 数据库的 2 倍。 AWS声称Aurora数据库的性能比RDS Mysql快5倍,但这似乎并不正确。 请建议 Aurora db 是否需要进行任何调整。
两个数据库的系统配置:db.r6g.large(2CPU 和 16 GB RAM)
注意:将数据库列 prodQueryTime 引用为“Mysql 性能时间”,将experimentQueryTime 引用为“Aurora DB 性能时间”
像您这样的类似报告还有很多,例如这里。答案是这取决于你做什么。 AWS 代表写道:
要记住的最重要的方面是 Aurora 针对并发工作负载进行了优化,并且其优势是最好的 通过运行并行基准测试来评估。
完全同意。
对于我们的任务(iOS 和 Android 应用程序,50 万用户访问),Aurora MYSQL 性能比普通 MYSQL 差很多
我们从 RDS MYSQL (t3.medium) 迁移到 Aurora MYSQL。 我们尝试了 Aurora MYSQL 和 Aurora MYSQL Severless V2。
最初,我们的 MYSQL t3.medium 一直运行良好,CPU (20-50%)。 同样大小的Aurora无法承受负载。我们必须复制实例大小,并在高峰时段不断遇到问题。
此外,在测试 Aurora Serverless v2 时,我们必须扩展到 8ACU (16GB) 才能处理负载。
正如我之前所说,使用 MYSQL(无 aurora),我们可以使用 t3.medium(2CPU,4GB)很好地处理负载。
使用 Aurora,我们必须复制(或更多)实例大小,因此成本加倍(或更多)。
回到正常的RDS MYSQL。
试着数了4张桌子...
tbl_a 中的 count(id)(大小 180GB - 358,598,168 条记录)
tbl_b 中的 count(id)(大小 75GB - 41,942,923 条记录)
来自 tbl_c 的 count(id)(大小 109GB - 41,942,398 条记录)
tbl_d 中的 count(id)(大小 22GB - 41,946,822 条记录)
tbl_a -> 123.787s
tbl_b -> 38.767s
tbl_c -> 37.544s
tbl_d -> 15.326s
tbl_a -> 463.085s
tbl_b -> 1055.491s
tbl_c -> 1360.827s
tbl_d -> 85.151s
这是一场噩梦! Aurora MySQL 或 Serverless v2 出现严重错误。 回到 MariaDB。
注:
db.t3.small -> 2vCPU,2GiB RAM
无服务器 v2,32 个 ACU -> 64GiB RAM
无服务器的问题在于它会根据 CPU 使用情况进行扩展,因此当您需要更多内存(例如用于计数查询)时,从上面的 @apiwat 答案中可以明显看出,这将需要很长时间。