云数据库 GAUSSDB(FOR MYSQL)-库表规范
库表规范
- 所有创建的MySQL表必须为InnoDB引擎,适配MySQL的其它引擎不支持事务。
- 小数类型为decimal,禁止使用float和double。
float和double在存储的时候,存在精度损失的问题,很可能在值比较的时候得到的结果有误。如果存储的数据范围超过decimal的范围,建议将数据拆成整数和小数分开存储。
- 禁用保留字,如desc、range、match、delayed等,请参考保留关键字。
- 数据表必须有主键,可以使用业务相关,有序且具有唯一性的字段作为主键,也可以使用业务无关的自增长字段作为主键。
- 表字段必须有默认值加NOT NULL,数字类型默认值推荐给0,varchar等字符类型默认值推荐空字符串''。
无主键不仅容易导致主库执行速度慢和复制延迟问题。
- 避免使用分区表,如有需要,可以使用多个独立的表代替。
分区表的缺点:
- DDL操作需要锁定所有分区,导致所有分区上操作都被阻塞。
- 当表数据量较大时,对分区表进行DDL或其他运维操作难度大风险高。
- 分区表使用较少,存在未知风险。
- 当单台服务器性能无法满足时,对分区表进行分拆的成本较高。
- 当分区表操作不当导致访问所有分区时,会导致严重的性能问题。
- 建议表包含两个字段:create_time,update_time, 且均为datetime类型。
数据仓库拖取数据时可以利用这两个统一字段无需询问业务。
在数据库出现意外时可以判断数据进入数据库和修改的时间,在极端情况可以帮助数据恢复的判断。
- varchar是可变长字符串,不预先分配存储空间,长度不要超过2048。
- 表单行行内长度不得超过1024字节。
- 控制单表字段数量,字段上限50个。
- 如果存储的字符串长度几乎相等,使用char定长字符串类型。
- 字段允许适当跨表冗余,以避免关联查询,提高查询性能,但必须考虑数据一致。
冗余字段应遵循:
- 不是频繁修改的字段。
- 不是varchar超长字段和text字段。
- 合适的存储长度(不建议使用LONG TEXT, BLOB等长类型字段),不但节约数据库表空间、节约索引存储,更重要的是提升检索速度。
- 云数据库GaussDB(for MySQL)_兼容MySQL
- 云数据库 GaussDB(for MySQL)与RDS for MySQL的区别
- 连接GaussDB(for MySQL)数据库_华为云数据库GaussDB(for MySQL)_数据库连接
- 云数据库GaussDB(for MySQL)_云数据库_分布式数据库
- 云数据库Gaussdb快速入门_gaussdb连接__gaussdb案例
- 免费mysql云数据库
- 免费mysql云数据库
- GaussDB查询库表_GaussDB查询数据库表_高斯数据库查询库表-华为云
- 免费的MySQL云数据库_数据库管理系统有哪些_MySQL查询表
- 云数据库Gaussdb数据库索引_华为gaussdb__gaussdb 数据库