根据 DynamoDB 读写容量
写入所需的容量单位 = 每秒的项目写入数 x 以 1KB 块为单位的项目大小
读取所需的容量单位* = 每秒读取的项目数 x 以 4KB 块为单位的项目大小
如果您的项目小于1KB,那么每单位读取容量将为您提供1次非常一致的读取/秒,每单位写入容量将为您提供1次写入/秒的容量。例如,如果您的项目是512字节,您需要每秒从表中读取100个项目,那么您需要提供100个单位的读取容量。
我对上面提到的4kb数据块和1kb示例感到困惑。< I >如果一个项目是512字节,是否会四舍五入到4kb,因此1个读取单位允许每秒读取1个项目?我假设项目将被舍入到1kb,因此1个读取容量导致每秒读取4个项目(最终一致时每秒读取8个项目)。这个假设正确吗?
假设< code>ceil()是一个将非整数值向上舍入到下一个最高整数的函数。
> 1 个写入
单元允许您每秒写入 1 / ceil(item_size / 1kB)
个项目。
1个读取单元可让您每秒读取< code > 1/ceil(item _ size/4kB)个项目。
因此,例如:
48 个写入容量单位允许对最大 1 kB 的项目进行 48 次写入,或对超过 1kB 到 2kB 的项目进行 24 次写入,或对超过 2kB 到 3kB 的项目进行 16 次写入,依此类推。
48个读取容量单位允许您读取48个项目,最大4kB,或24个项目,超过4kB,最大8kB。
如果项目超过相关操作的块大小,则不能执行超过订阅速率的操作,也只能执行更少的操作。
如果您的项目大小小于1KB,则每单位读取容量将为您提供1次强一致的读取/秒,每单位写入容量将为你提供1次写入/秒的容量。
这是准确的,因为