mysql数据库开发管理规范

规范1:Mysql数据库的名字最好跟应用的名字一致

规范2:表命名总长度不能超过26位

规范3:表名由英文单词与下划线组成,表名中禁止使用中横线‘-’ ,单词之间用下划线隔开,严禁使用中文拼音。对于单词超长的,可使用单词缩写,但是单词缩写必须能够完整表达原单词的含义。禁止新建表名和原有系统中已有表名重名

规范4:表名必须使用小写,如果大小写混合用,可能存在abc,Abc,ABC等多个表共存,容易导致混乱;

规范5:无特殊用途,线上使用InnoDB存储引擎,innodb主键推荐使用自增列;

规范6:表字符集选择UTF8

规范7:每个表都需要添加表注释,方便其他开发人员查看

规范8:合理分表,控制单表数据量,int型建议不超过1000w,含char则不超过500w

规范9:临时表命名方式:TMP_表缩写

规范10:字段名必须非Mysql关键字,具体的可以查看MySQL关键字文档

规范11:控制单表列数量,字段少而精,字段数建议在20以内;

规范12:字段名长度不得超过15位;

规范13:存储精确浮点数必须使用DECIMAL替代FLOAT和DOUBLE,浮点数存在误差;

规范14:整形定义中不显示规定显示长度,比如使用INT,而不是INT(4);

规范15:尽可能不使用TEXT、BLOB类型,varchar的性能会比text高很多;实在避免不了blob,请拆表,单独存放blob字段数据;

规范16:只存储年使用YEAR类型;

规范17:如果是索引字段,强烈建议定义为not null;

规范18:禁止在数据库中使用VARBINARY、BLOB存储图片、文件等;

规范19:Mysql字段上禁止单独指定字符集;

规范20:表的每个字段都需要添加相应注释,方便其他开发人员查看;

规范21:字段的命名需要有含义,字段命名要能真实表达字段的意义。对于外键引用的字段,需要与主表的字段名保持一致。

规范22:主键约束:表名_字段名_PK,约束名的最大长度为30位

规范23:尽量少的使用外键,请由程序保证约束;

规范24:唯一性约束:表名_UNIQ,对于存在多个唯一性约束的表,唯一性约束的命名为:表名缩写_字段名_UNIQ 2.1.5索引的命名,索引名的最大长度为30位

规范25:索引:表名_字段名_IDX

规范26:索引中的字段数建议不超过5个,唯一键由3个以下字段组成,唯一键不和主键重复

规范27:索引字段的顺序需要考虑字段值去重之后的个数,个数多的放在前面

规范28:索引名称必须使用小写

规范29:UPDATE、DELETE语句也需要根据WHERE条件添加索引

规范30:不建议使用%前缀模糊查询,例如LIKE “%koo”,这样会导致无法使用列上的索引而做全表扫描

规范31:合理创建联合索引(避免冗余),(a,b,c) 相当于(a) 、(a,b) 、(a,b,c)

规范32:单张表的索引数量控制在5个以内,禁止在每一个where条件列上创建索引,索引一定不是越多越好(能不加就不加,要加的一定得加),去重后记录条数过少不适合建索引,例如“性别”,“状态status”;

规范33:创建表脚本命名为:_DDL.SQL

规范34:修改线上表脚本命名为:_OTHER.SQL因为修改线上表的动作风险较大,所以对线上已存在的表修改脚本,需要单独列出,命名为DATABASE_OTHER.SQL

规范35:create table语句参数需要显示指定ENGINE,CHARSET选项,表中有AUTO_INCREMENT自增列的,需要指定AUTO_INCREMENT的初始值

规范36:每个表的字段数目不要超过100个

规范37:字段必须定义合适的数据类型

规范38:日期字段推荐使用TIMESTAMP和DATETIME数据类型,尽量不使用CHAR 和VARCHAR2,DATETIME记录年月日时分秒,并且记录的年份比较久远,那么最好用datetime,而不是timestamp,它的时间范围比较短,TIMESTAMP表示的时间为1970-01-01 08:00:01到2038-01-19 11:14:07

规范39:所有表都默认加两列:

1:created_time datetime not null

2:update_time timestamp default current_timestamp on update current_timestamp

规范40:关联表之间相同字段的数据类型和类型长度必须完全一致,如果关联表之间相同字段的数据类型不一致,那么在通过关联字段进行关联表之间的联合查询的时候,会导致执行计划出现问题,影响SQL语句效率。

规范41:表和字段必须有comment中文注释表和字段必须有中文注释,注释采用comment on的形式;

规范42:根据更新的频繁程度决定字段的顺序为提高数据库效率,建议将更新频繁程度高的字段排在表中靠前的位置。越靠后的字段效率越低:

规范43:创建表时,添加必要的约束

规范44:相同用途的字段,在各个表里的定义属性完全一致;

规范45:不在表中添加外键关联为了提高数据库处理效率,尽量不在表中添加外键的关联关系。该关系由应用来保证。

规范46:表结构变更需要通知DBA审核

规范47:禁止删除线上表字段,或修改线上表及字段名

规范48:对同一个表add/modify多个字段时,每种情况需写成一个sql语句,既表达清晰,又能保证在报错的情况下可重复执行

posted @ 2020-08-19 15:25  宇枫  阅读(307)  评论(0编辑  收藏  举报