我应该使用哪个 aws 数据库?
Which aws database should I use?
我有一个遗留项目,我喜欢逐个迁移。现在,数据紧密相连。
例如:
- 航班信息
- 船员信息
- 乘客信息
- 机场
- 航班也可以有多个机场
我也希望有一个可扩展且结构灵活的数据库。我正在使用 AWS。
我看过 DynamoDB,它具有我正在寻找的灵活性,但是当我发现很难以一对多的方式查询特定的单个项目时。
我也知道在 RDS 中更改结构或模式是多么不灵活。
有什么建议吗?
决定是使用否SQL数据库还是使用SQL的关系数据库.
在您将跨多种数据类型查询信息的情况下(例如"How many flights from LAX with more than 100 passengers departed more than 15 minutes late"),关系数据库让事情变得更简单。
它们可能会更慢,但查询更容易编写。 (例如,上述问题可以在一个查询中完成。)
当您需要可预测的性能(每秒读取数)但不能跨表连接信息时,NoSQL 数据库非常出色。
一旦选择了数据库类型,就可以选择数据库引擎。 Amazon 关系数据库服务 (RDS) 提供:
- MySQL(开源,低成本)
- Aurora(MySQL 的云版本,性能更高)
- MariaDB
- Microsoft SQL 服务器(成本较高)
- Oracle(成本较高)
如有疑问,请选择 Aurora,因为它更加云原生并且与 MySQL 完全兼容。现在有一个 serverless version of Aurora 可以自动缩放甚至在不使用时关闭以降低成本。
至于模式的灵活性,所有 SQL 数据库基本上都通过 ALTER TABLE
提供相同的灵活性。
我有一个遗留项目,我喜欢逐个迁移。现在,数据紧密相连。
例如:
- 航班信息
- 船员信息
- 乘客信息
- 机场
- 航班也可以有多个机场
我也希望有一个可扩展且结构灵活的数据库。我正在使用 AWS。
我看过 DynamoDB,它具有我正在寻找的灵活性,但是当我发现很难以一对多的方式查询特定的单个项目时。
我也知道在 RDS 中更改结构或模式是多么不灵活。
有什么建议吗?
决定是使用否SQL数据库还是使用SQL的关系数据库.
在您将跨多种数据类型查询信息的情况下(例如"How many flights from LAX with more than 100 passengers departed more than 15 minutes late"),关系数据库让事情变得更简单。
它们可能会更慢,但查询更容易编写。 (例如,上述问题可以在一个查询中完成。)
当您需要可预测的性能(每秒读取数)但不能跨表连接信息时,NoSQL 数据库非常出色。
一旦选择了数据库类型,就可以选择数据库引擎。 Amazon 关系数据库服务 (RDS) 提供:
- MySQL(开源,低成本)
- Aurora(MySQL 的云版本,性能更高)
- MariaDB
- Microsoft SQL 服务器(成本较高)
- Oracle(成本较高)
如有疑问,请选择 Aurora,因为它更加云原生并且与 MySQL 完全兼容。现在有一个 serverless version of Aurora 可以自动缩放甚至在不使用时关闭以降低成本。
至于模式的灵活性,所有 SQL 数据库基本上都通过 ALTER TABLE
提供相同的灵活性。