TiDB开发规范

高效TiDB开发规范

基础规范

  • 单表数据量大于5000W
  • 总体数据大于1TB
  • 不使用热点数据
  • 尽可能批量写入,但每次写入的数据不大于64M
  • 每个事务包含的SQL语句数量不大于50
  • 使用有真正意义的列作为主键,而不是单调递增ID作为主键
  • 数据库字符集默认使用utf8,如果存储emoji表情等四字节使用utf8mb4字符集
  • 禁止线上核心业务使用存储过程、视图、触发器
  • 禁止从测试、开发环境、本机直连线上生产数据库
  • 禁止在线上生产环境做数据库压力测试

库表设计

  • 库名、表名、字段名必须使小写字母,并采用下划线分割;对相关功能的表应当使用相同前缀,如job_xxx,前缀通常为库名或依赖主实体对象:数据库名称约定:db58_xxx dbgj_xxx dbchr_xxx
  • 所有的表及字段都必须有备注,详细说明表及字段的含义
  • 库名、表名、字段名禁止使用MySQL保留字,如date、like、desc、return等

索引设计

  • 索引名称必须使用小写,普通索引按照“idx_字段名_字段名[_字段名]”进行命名,唯一索引按照“uniq_字段名_字段名[_字段名]”进行命名”
  • 单张表中索引数量不超过5个
  • 单个索引中的字段数不超过5个
  • 对字符串使用前缀索引,前缀索引长度不超过10个字符
  • 索引字段的顺序需要考虑每个字段去重之后的数量,区分度最大的【个数最多的】放在前面
  • 合理创建联合索引(避免冗余),符合最左前缀原则:(a,b,c) 相当于 (a) 、(a,b) 、(a,b,c)
  • ORDER BY,GROUP BY,DISTINCT的字段需要添加在索引的后面
  • UPDATE、DELETE语句需要根据WHERE条件添加索引
  • 对于JOIN操作,需要在JOIN字段上建立索引
  • 禁用FORCE INDEX
  • 禁止使用外键

你可能感兴趣的:(TiDB)