更新时间:2024-07-02 GMT+08:00
分享

数据库使用约束规范

强制类约束

约束

  • 当使用不当,数值超出约定的告警阈值后,客户端会收到Warn,并且云监控服务(CES)会产生告警信息;部分请求会产生事件信息。
  • 当使用严重违反约束,数值超出约定的失败阈值后,请求会失败,并且产生事件信息。

约束项

  • 单行大小限制:
    • 当读取数据时,数据库会将同一个Primary Key的多次写入合并成一行,当单行的数据超出阈值后会产生告警和事件。
  • 单个分区限制:
    • 数据库后台扫描任务会定期统计Partition个数,Partition内行数,Partition内所有行的大小总和,当单行的数据超出阈值后会产生告警和事件。
  • 集合类型元素个数限制:
    • 当读取数据时,需要读取复杂列类型(Map,List,Set,Tuple等)的数据时,数据库会对复杂列的元素个数进行统计,当个数超出阈值后会产生告警和事件。
  • 查询返回数据量限制:
    • 查询Response返回给客户端前,数据库会对查询Response的数据量进行校验,当超出阈值后会产生告警或请求失败。
  • 查询返回的墓碑数限制:
    • 当查询数据扫描到存在过多墓碑时,数据库会对墓碑数进行校验,当超出阈值后会产生告警或请求失败。
表1 GeminiDB Cassandra约束项阈值

约束项

告警阈值

失败阈值

单行大小限制

100KB

-

单个分区限制

  • 行数:100,000
  • Size:100MB

-

集合类型元素个数限制

500

-

查询返回数据量限制

2MB

100MB

查询返回的墓碑数限制

1,000

100,000

建议类规范

  • 禁止使用Allow Filtering:
    • 使用Allow Filtering语句查询后,返回结果会产生Warning。
  • 建议在范围查询时使用合适的Limit值:
    • 范围查询时,预读特性配合合适的Limit值会加速查询,建议使用合适的Limit值,可以从监控项Limit差值大小平均值确认是否合理。

相关文档