本文将为您提供关于数据操作的最佳实践。

拆分属性列访问热度差异大的表

如果行的属性列较多,但是每次操作只访问一部分属性列,可以考虑将表拆分成多个表,将不同访问频率的属性列放到不同的表中。

例如,在商品管理系统中,每行存放商品数量、商品价格和商品简介。商品数量和商品价格均为占用空间较小的 Integer 类型,商品简介是 String 类型占用空间较大。大多数操作仅更新商品数量与商品价格,而不修改商品简介,所以商品简介的修改频率较低。这时候可以考虑将这个表拆分为两个,一个表存储商品数量和商品价格,另一个表存储商品简介。

压缩较大的属性列文本

如果属性列是较大的文本,应用程序可以考虑将属性列压缩之后再以 Binary 类型存储到表格存储中。这样做节省了空间、减少了访问的服务能力单元消耗,从而可以降低使用表格存储的成本。

将数据量超出限制的属性列存储到 OSS 中

表格存储限制单个属性列值不超过 2 MB。如需在单个属性列存储超过 2 MB 的数据 ,如图片、音乐、文件等,可以使用 OSS(Object Storage Service)对其进行存储。OSS是阿里云提供的开放存储服务,用以应对海量数据的存储和访问。OSS 的存储单价比表格存储更低,更适合存储文件。

如果应用程序不方便使用 OSS,可以将超过 2 MB 的单个值拆分成多个行,存储在表格存储中。

错误重试加入时间间隔

表格存储可能会遇到软硬件问题,导致应用程序的部分请求失败,并返回可重试的错误。建议应用程序遇到此类错误时等待一段时间后再进行重试,每两次重试之间应该加大时间间隔或引入随机时间间隔,避免重试的请求堆积到一个时间点上引发雪崩效应。