对于provisioned mode的表,需要指定表的throughput capacity(吞吐能力), 这个能力用RCU和WCU来设置
一个RCU(read capacity unit)代表着每秒一次强一致性读,或两次最终一致性读,并且每个item最大是4KB。如果是Transactional read,则每秒需要两个RCU。一个WCU代表着每秒一次写,且每个item最大是1KB;如果是Transactional write,则每秒需要两个WCU。
RCU分强一致性和最终一致性:
强一致性读性能: 一个RCU = 每秒4KB
最终一致性读性能: 强一致性基础上乘以2
WCU不分强一致性(strongly consistent)和最终一致性(eventually consistent),
一个单位 = 每秒 1KB
我们往一个AZ的库里写,读的时候可能使用的是另一个AZ的库,此时会读到脏数据:

1KB最终一致性读50 item / s计算:因为最终一致性的RCU=2 reads,所以需要25个RCU。
1KB强一致性读50item / s计算:因为强一致性的RCU=1 reads,所以需要50个RCU。
9KB最终一致性坊50item / s计算:因为最终一致性的RCU=2reads,
且9KB =3 reads (每个read最大是4KB)
所以需要75个RCU。
WCU的计算一样,不过每个write最大是1KB。
8KB50item/s8 * 50 = 400个WCU
可以使用dynamodb自带的工具来计算WCU和RCU,在创建表时,Table Settings选项使用Customize settings,会出现Capacity Calculator, 里面输入每个item大小及读写速度后,会自动计算出所需WCU和RCU:
