生产环境数据库开发规范

生产环境数据开发规范以及注意事项(内容会不断更新)

效率规范

  1. 唯一索引名为 uk_字段名;普通索引名则为 idx_字段名
  2. 单表行数超过500万或者单表容量为2G的时候建议分库分表(经验值)、如果表数据量在3年内达不到500万的时候不需要在建表的时候进行分库分表。
  3. 业务上具有唯一属性的字段或者组合字段也需要建立唯一索引
  4. 3张表关联的时候保证关联字段的数据类型一致并且关联字段建立索引
  5. isNull(null) 返回值1 、isNull(任何值) 返回值都是0
  6. 在进行匹配的时候建议优先选择exist、如果一定要用in的话 建议使用in匹配的内容在1000以内 。备注数据量小的时候in与exists区别。大的话建议exists
  7. 建表时认识使用innoDB这种存储引擎
  8. 减少使用or语句,可将or语句优化为union。where a=1 or b=2 优化为 where a=1 union where b=2
  9. 对于一些状态或者类型的字段 建议使用tinyint和smallint

在这里插入图片描述

问题考虑

  1. 普通索引与唯一索引的区别 ?
  2. 如果进行分库分表、分库分表的优缺点 ?
  3. 数据库表的存储引擎区别?

建表规范

  1. 唯一索引名为 uk_字段名;普通索引名则为 idx_字段名
  2. 小数类型为 decimal,禁止使用 float 和 double
  3. 建表时必须有 comment 说明字段或者是表的业务
  4. 库的名称必须控制在32个字符以内,相关模块的表名与表名之间尽量提现join的关系,如user表和user_login表
  5. 创建表时必须显式指定字符集为utf8或utf8mb4
  6. 建表时所有字段不能为null,要指定为 NOT NULL 最好给上默认值 DEFAULT
  7. 字段名一律小写,多个词之间用 _ (下划线) 分隔

建表语句样例

新增表必须包含一下字段

'''
`yn` int(1)  NOT NULL DEFAULT 1 COMMENT '是否删除 0无效 1有效',

`created_date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',

`creator` varchar(32) NOT NULL DEFAULT 'system' COMMENT '创建者', 

`modifier` varchar(32) NOT NULL DEFAULT 'system' COMMENT '修改者', 

`modified_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',

`version` int(10) NOT NULL DEFAULT 0 COMMENT '版本',


'''


'''

一个较为规范的建表语句样例

CREATE TABLE user (
`id` bigint(11) NOT NULL AUTO_INCREMENT,
`user_id` bigint(11) NOT NULL DEFAULT 0 COMMENT ‘用户id’
`username` varchar(45) NOT NULL DEFAULT '' COMMENT '真实姓名',
`email` varchar(30) NOT NULL DEFAULT '' COMMENT ‘用户邮箱’,
`yn` int(1) NOT NULL DEFAULT 1 COMMENT '是否删除 0无效 1有效',
`created_date` timestampNOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',

`creator` varchar(32) NOT NULL DEFAULT 'system' COMMENT '创建者', 
`modifier` varchar(32) NOT NULL DEFAULT 'system' COMMENT '修改者',
`modified_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`version` int(10) NOT NULL DEFAULT 0 COMMENT '版本',
PRIMARY KEY (`id`),
UNIQUE KEY uk_user_id (`user_id`),
KEY idx_username(`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8   COLLATE=utf8_bin  COMMENT='用户信息';
'''

Mysql 资源地址

“[https://shop137604155.taobao.com/?spm=2013.1.1000126.d21.72c43d688WSxj8]”(https://shop137604155.taobao.com/?spm=2013.1.1000126.d21.72c43d688WSxj8)

  • 这个链接记录的内容以及信息会更加详细。
  • 或者也可以添加本人的钉钉账号 直接免费发送给你发送相关资源、添加时 请备注 城市+岗位 + 渠道。
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/a18302465887/article/details/102815683
今日推荐