一般注意事项
最大 R/W 容量很大程度上取决于硬件(HDD 与 SSD)和节点数量。另外,我相信,由于没有强制执行 ACID 和一致性,因此更容易扩展 NoSQL 以进行写入操作。
对于问题的 DynamoDB 部分
DynamoDB 是一项托管服务。您保留给定的 R/W 容量(所谓的“单位”),Amazon 会为您扩展您的数据库。但是,仍然有几点需要考虑:
- 读取的最大保留吞吐量为 10,000
- 写入的最大保留吞吐量为 10,000
基本上,您每秒每次一致读取或写入以及每个不可分割的 kB 消耗 1 个单位。(嗯,实际上,它甚至更棘手)。
但是,为了扩展,您的表在partitions之间进行拆分。保留的吞吐量也是如此。因此,为了达到最大可能的吞吐量,您要求的密钥需要尽可能均匀地分布。
这些是数据库方面的考虑。
在客户端,还需要考虑多个因素:
您可以使用 batch_get_item 和/或 batch_write_items 进行分组以减少延迟影响。
例如,我从来没有能够从我的办公室计算机上达到预置的 1000 写入,因此,您最好使用多个实例/服务器来发出您的数据库请求。
TL;DR (DynamoDB)
- 您保留吞吐量,Amazon 扩展以提供它
- 还有一些与内部实现相关的问题
- 需要优化延迟
- 需要仔细并行化
我不是其他数据库类型的专家,所以我只能猜测客户端的考虑会以某种方式相同,对于 MySQL 来说可能更少,因为它使用二进制协议。此外,您可能必须管理数据库。