我一直在寻找在云上设置数据库时的最佳实践,但我仍然不清楚我们应该采用以下哪种解决方案?

  • 亚马逊RDS极光
  • 亚马逊RDS MySQL
  • EC2实例上的MySQL

我认为亚马逊极光(Amazon Aurora)是一个更好的 Select ,但经过一些研究,人们似乎并没有使用它.有什么问题吗?

推荐答案

你应该仔细考虑极光,然后再考虑.启动一个实例并设置应用程序和数据库的测试实例.产生尽可能高的负载.我在上一家公司做过,我发现,尽管亚马逊声称它的性能很好,但极光还是失败了.比RDS慢两个数量级.我们的应用程序有很高的写入流量.

我们的结论是:如果你有二级索引和高写流量,Aurora是不合适的.不过,我敢打赌它对只读流量有好处.

(编辑:我描述的测试是在2017年第1季度完成的.与大多数AWS服务一样,我预计Aurora会随着时间的推移而改进.亚马逊有一个明确的"Release ideas at 70% and then iterate."战略.从这一点上,我们应该得出结论,AWS的一个新产品值得测试,但在推出后的至少几年内可能还没有做好生产准备).

在那家公司,我推荐了RDS.他们没有专门的DBA员工,RDS为您提供的升级和备份等DB操作的自动化非常有用.您在调整选项上牺牲了一点灵活性,但这应该不是问题.

RDS带来的最大不便是,您不能让MySQL用户拥有超级权限,但RDS为您需要超级权限的大多数常见任务提供存储过程.

我比较了多AZ RDS实例和由Orchestrator管理的EC2实例副本集.因为Orchestrator需要三个 node ,所以您可以拥有仲裁,所以RDS在成本、安装和操作的方便性方面无疑是赢家.

Mysql相关问答推荐

S优化联接更新的最佳方式是什么?

在MySQL和JavaFX中保存和检索图像文件

我可以在姓名和姓名日期之间进行搜索吗?

发生的原因及解决方法

从 MySQL WordPress Select 最后一行

拆分列值并适当地返回拆分值

谁能帮我优化低性能的mysql查询

如何从将分钟、天、月和年存储在不同列中的表中查询数据

巨大的未分区 MySQL 表问题

MYSQL LOAD DATA INFILE 语句适用于工作台,但不适用于 python

通过 Gorm 查询模型

在 MySQL 中使用三个表进行计算

避免重复进入mysql数据库的最佳方法

MySQL PHP - Select WHERE id = array()?

org.hibernate.InstantiationException:没有实体的默认构造函数::principal.Cliente

如何删除没有临时表的 MySQL 表中的所有重复记录

使用 Docker 我收到错误:SQLSTATE[HY000] [2002] 没有这样的文件或目录

cron 启动的 mysqldump 和密码安全

mysql GROUP_CONCAT 重复

如何从邮箱地址中 Select 域名