GaussDB 开发基本规范
1 集中式
1.1数据库价值特性推荐
特性分类 | 特性列表 | 说明 |
---|---|---|
表类型 | PARTITION表 | 数据分区 |
存储引擎 | 行存储 | 按行顺序存储表,建议点查,增删改操作较多场景下使用 |
事务 | 事务块 | 显式启动事务 |
单语句事务 | 不显式启动事务,单语句即为事务 | |
扩容 | 在线扩容 | 扩节点和数据重分布过程中用户业务平滑过渡 |
部署 | 一主多备 | 一个主DN,多个备机DN,保证数据备份和容灾 |
安全 | 透明加密 | 支持数据库级别存储加密,上层业务无感知 |
数据类型 | 整数类型 | TINYINT、SMALLINT、INTEGER、BIGINT |
任意精度类型 | NUMERIC/DECIMAL | |
浮点类型 | REAL/FLOAT4、DOUBLE PRECISION/FLOAT8、FLOAT | |
布尔类型 | BOOLEAN | |
定长字符 | CHAR(n) | |
变长字符 | VARCHAR(n)、NVARCHAR2(n)、TEXT | |
时间类型 | DATE、TIME、TIMETZ、TIMESTAMP、TIMESTAMPTZ、SMALLDATETIME、INTERVAL、REALTIME | |
二进制类型 | BYTEA(变长二进制类型) | |
位串类型 | BIT(n)、VARBIT(n) | |
函数 | 字符处理函数 | 字符类数据类型处理函数 |
二进制字符串函数 | 二进制字符类型处理函数 | |
数字操作函数 | 数值类型处理函数 | |
时间和日期处理函数 | 时间和日期类型处理函数 | |
索引 | 主键/唯一索引 | 单列或多列主键/唯一索引 |
BTREE索引 | 索引类型 |
1.2 数据库使用最佳实践
序号 | 条目 | 建议值 |
---|---|---|
1 | 数据库最佳长连接数 | 请参考对应硬件规格下GUC参数max_connections的默认配置。 |
2 | 单物理节点数据量最大值 | 16TB(具体容量请结合备份恢复规格目标确定) |
3 | 数据库活跃个数 | 1 |
4 | 数据库表和索引总个数 | 10000(单个schema下的表数量不建议超过200) 说明:该值仅为建议值,实际需要根据客户的磁盘容量和业务来规划,理论最大值为232。 |
5 | 单表最佳字段个数 | <50 |
6 | 单表最佳索引个数 | <5 |
7 | 单表最佳复合索引个数 | <3 |
8 | 单复合索引包含最佳列数 | <5 |
9 | 单行最佳行宽 | <2k |
10 | 单个字段最佳容量 | <10MB |
11 | SQL语句最佳长度 | <5k |
12 | 磁盘可用空间比例设置 | 85%(磁盘容量24TB以上时,建议90%) |
2 分布式
1)数据库价值特性
特性分类 | 特性列表 | 说明 |
---|---|---|
表类型 | DISTRIBUTION表 | 数据分片 |
PARTITION表 | 数据分区 | |
存储引擎 | 行存储 | 按行顺序存储表,建议点查,增删改操作较多场景下使用 |
事务 | 事务块 | 显式启动事务 |
单语句事务 | 不显式启动事务,单语句即为事务 | |
分布式事务(弱一致) | gtm free模式,在sharding场景下可保证强一致 | |
部署 | 一主多备 | 支持DN分片,一个主DN,多个备机DN,保证数据备份和容灾 |
安全 | 透明加密 | 支持数据库级别存储加密,上层业务无感知 |
数据类型 | 整数类型 | TINYINT、SMALLINT、INTEGER、BIGINT |
任意精度类型 | NUMERIC/DECIMAL | |
浮点类型 | REAL/FLOAT4、DOUBLE PRECISION/FLOAT8、FLOAT | |
布尔类型 | BOOLEAN | |
定长字符 | CHAR(n) | |
变长字符 | VARCHAR(n)、NVARCHAR2(n)、TEXT | |
时间类型 | DATE、TIME、TIMETZ、TIMESTAMP、TIMESTAMPTZ、SMALLDATETIME、INTERVAL、REALTIME | |
二进制类型 | BYTEA(变长二进制类型) | |
位串类型 | BIT(n)、VARBIT(n) | |
函数 | 字符处理函数 | 字符类数据类型处理函数 |
二进制字符串函数 | 二进制字符类型处理函数 | |
数字操作函数 | 数值类型处理函数 | |
时间和日期处理函数 | 时间和日期类型处理函数 | |
索引 | 主键/唯一索引 | 单列或多列主键/唯一索引 |
BTREE索引 | 索引类型 | |
扩容 | 在线扩容 | 扩节点和数据重分布过程中用户业务平滑过渡 |
2)数据库使用最佳实践推荐
序号 | 条目 | 建议值 |
---|---|---|
1 | 集群最佳分片数(主DN数) | <256 |
2 | 集群最佳长连接数 | 请参考对应硬件规格下GUC参数max_connections的默认配置。 |
3 | 单物理节点数据量最大值 | 16TB(具体容量请结合备份恢复规格目标确定) |
4 | 集群数据库活跃个数 | 1 |
5 | 集群表和索引总个数 | 10000(单个schema下的表数量不建议超过200) 说明:该值仅为建议值,实际需要根据客户的磁盘容量和业务来规划,理论最大值为232。 |
6 | 单表最佳字段个数 | <50 |
7 | 单表最佳索引个数 | <5 |
8 | 单表最佳复合索引个数 | <3 |
9 | 单复合索引包含最佳列数 | <5 |
10 | 单行最佳行宽 | <2k |
11 | 单个字段最佳容量 | <10MB |
12 | SQL语句最佳长度 | <5k |
13 | 磁盘可用空间比例设置 | 50% |
3 批注
数据库特性推荐与使用实践推荐的主要目标是让数据库使用更健康,性能更佳。