云数据库 RDS-RDS for MySQL使用规范:数据库字段设计规范

时间:2024-08-01 15:46:40

数据库字段设计规范

  • 控制单表字段数量,字段上限50左右。
  • 优先为表中的每一列选择符合存储需要的最小的数据类型。优先考虑数字类型,其次为日期或二进制类型,最后是字符类型。列的字段类型越大,建立索引占据的空间就越大,导致一个页中的索引越少,造成IO次数增加,从而影响性能。
  • 整数型选择能符合需求的最短列类型,如果为非负数,声明需是无符号(UNSIGNED)类型。
  • 每个字段尽可能具有NOT NULL属性,int等数字类型默认值推荐给0,varchar等字符类型默认值给空字符串。
  • 避免使用ENUM类型,可以用TINYINT类型替换。

    修改ENUM值需要使用ALTER语句,ENUM类型的ORDER BY操作效率低,需要额外操作。

    如果定义了禁止ENUM的枚举值是数值,可使用其他数据类型(如char类型)。

  • 实数类型使用DECIMAL,禁止使用FLOAT和DOUBLE类型。

    FLOAT和DOUBLE在存储的时候,存在精度损失的问题,很可能在值的比较时,得到错误的结果。

  • 使用datetime、timestamp类型来存储时间,禁止使用字符串替代。
  • 使用数字类型INT UNSIGNED存储IP地址,用INET_ATON、INET_NTOA可以在IP地址和数字类型之间转换。
  • VARCHAR类型的长度应该尽可能短。VARCHAR类型虽然在硬盘上是动态长度的,但是在内存中占用的空间是固定的最大长度。
  • 使用VARBINARY存储大小写敏感的变长字符串,VARBINARY默认区分⼤小写,没有字符集概念,速度快。
support.huaweicloud.com/bestpractice-rds/rds_02_0013.html