使用序列和标识列
本节有助于您了解如何根据工作负载模式以最佳方式使用序列和标识列。
重要
有关分配和缓存行为的更多详细信息,请参阅 CREATE SEQUENCE 页面上的“重要提示”标注。
选择标识符类型
Amazon Aurora DSQL 既支持基于 UUID 的标识符,也支持使用序列或身份列生成的整数值。这些选项的不同之处在于分配值的方式以及值在负载下的扩展方式。
UUID 值无需协调即可生成,非常适合频繁或跨许多会话创建标识符的工作负载。由于 Amazon Aurora DSQL 专为分布式操作而设计,因此避免协调通常是有益的。因此,建议将 UUID 作为默认标识符类型,尤其是对于可扩展性很重要且不需要对标识符进行严格排序的工作负载中的主键。
序列和标识列生成紧凑的整数值,方便用于用户可读的标识符、报告和外部接口。当出于可用性或集成原因而首选数字标识符时,可以考虑将序列或标识列与基于 UUID 的标识符结合使用。当需要整数序列或标识值时,选择合适的缓存大小将成为工作负载设计的重要部分。有关选择缓存大小的指导,请参阅以下章节。
选择缓存大小
选择适当的缓存值是有效地使用序列和标识列的重要部分。缓存设置决定了标识符分配在负载下的行为方式,从而影响系统吞吐量以及值反映分配顺序的紧密程度。
在以下情况下,较大的缓存大小 CACHE >= 65536 非常适合:
-
标识符以高频率生成
-
许多会话并发插入
-
工作负载可以容忍间隙和明显的排序效果
例如,大容量事件摄取工作负载(例如 IoT 或遥测)以及诸如作业运行 ID、支持案例参考或内部订单号等操作标识符通常会受益于较大的缓存大小,其中标识符频繁生成且不要求严格的排序。
在以下情况下,缓存大小为 1 将更好地保持一致:
-
分配率相对较低
-
随着时间推移,预计标识符将更紧密地遵循分配顺序
-
使间隙最小化比最大吞吐量更重要
诸如分配账户或参考编号之类的工作负载会与缓存大小为 1 更好地保持一致,在这些工作负载中,标识符生成频率较低,并且需要更紧密的排序。