更新时间:2024-10-30 GMT+08:00

数据库对象使用规范

命名规范

规则1:命名不能和数据库的关键字重复。

规则2:对于对象名称(包括库名、表名、字段名、索引名等)必须使用小写字母, 并采用下划线分隔。

规则3:对于对象名称(包括库名、表名、字段名、索引名等)长度需要有所限制,所有的对象名称长度不得超过30个字符。

规则4:表别名要简短。通常使用小写的字母作为别名。

表设计规则

规则1:表的设计要考虑兼容性。

只允许新增字段,不允许删除字段。

规则2:表名和数据库名不超过48字节。

规则3:表默认按照最佳性能规格创建。如果对表性能要求不高,可以创表时指定性能参数“Z00_THROUGHPUT”, 可选项有big、medium、small。默认不指定为big,由于存储引擎使用Rocksdb需要预分配内存,所以实例创表数目有一定限制,具体请参见GeminiDB Cassandra创表时需要注意什么

建议:需要的时候,通过反范式化和冗余来提升读性能。

索引规范

规则1:尽可能把所有查询都设计为主键形式的查询,不要对二级索引过度依赖。

规则2:创建索引后需要等待索引构建完成后才能使用索引字段进行查询。

规则3:避免对索引字段频繁更新。

规则4:不建议重复值过多表列建立索引,比如表有一亿条数据,某一列的数据都是一样的或者少数几种,这种情况不建议在该列建索引列。

规则5:counter列不能进行索引。

规则6:频繁更新或者删除的列,不建议在该列建索引列。

规则7:建议索引配合分区键使用,否则会增加节点间消息转发,造成资源消耗过大导致oom或者cpu飙高。

视图规范

  • 使用物化视图时,原表对应的视图个数不要超过3个。原表对应的视图越多,对视图的同步性能影响越大。
  • 原表中频繁更新的字段不建议在视图中作为主键。

流表规范

流表默认存储24小时数据,在数据查询量较大时,需要做好分页查询,每次查询条数不大于100,并做好超时重试。