美文网首页
MySQL 开发规范

MySQL 开发规范

作者: 代码的搬运工 | 来源:发表于2019-11-17 15:31 被阅读0次

MySQL开发规范由基础规范、命名规范、字段规范、索引规范、语句规范组成。

1、基础规范

(1)所有表统一使用InnoDB存储引擎。

(2)表字符集选择UTF8mb4。

(3)所有表和列都需要添加注释。

(4)禁止在数据库中存储明文密码。

(5)禁止客户端直接操作数据库。

(6)禁止在线上数据库做压力测试。

(7)表结构更新,研发必须提供更新文档(包含更新语句和回滚语句)。

(8)表结构更新,DBA审核未通过的,不允许上线。

2、命名规范

(1)库名、表名、字段名必须使用小写字母加下划线的命名方式。

(2)库名、表名、字段名字符数不易太长但必须见名知意。

(3)库名、表名、字段名禁止使用MySQL保留字。

(4)临时库、表名必须以tmp为前缀,并以日期为后缀。

(5)备份库、表名必须以bak为前缀,并以日期为后缀。

3、字段规范

(1)每张表必须有整型主键。

(2)禁止DEFAULT NULL,建议NOT NULL,设置默认值。

(3)存储精确浮点数必须使用DECIMAL替代FLOAT和DOUBLE,或者使用BIGINT(需要做转换)。

(4)建议使用UNSIGNED存储非负数值。

(5)不建议使用ENUM类型,使用TINYINT类型来代替。

(6)存储状态,性别等选择性低的字段,用TINYINT类型。

(7)尽可能不使用TEXT、BLOB类型。如果必须使用,要拆分到单独的表中存储。

(8)需要根据实际的宽度来选择VARCHAR(N)类型的宽度。

(9)存储年使用YEAR类型,存储日期使用DATE类型。

(10)存储时间(精确到秒)建议使用TIMESTAMP类型,因为TIMESTAMP使用4字节,DATETIME使用8个字节。TIMESTAMP类型保存的值不能比1970早或比2037晚。

4、索引规范

(1)单张表的索引数量控制在5个以内。

(2)组合索引中的字段数建议不超过5个。

(3)不使用更新频繁的列做为索引。

(4)对长字符串考虑使用前缀索引,前缀索引长度不超过8个字符。

(5)使用EXPLAIN判断SQL语句是否合理使用索引,尽量避免extra列出现:Using File Sort,Using Temporary。

(6)UPDATE、DELETE语句需要根据WHERE条件添加索引。

(7)合理创建组合索引,(a,b,c) 相当于 (a) 、(a,b) 、(a,b,c),但(a,c)只能用到部分索引。

(8)不在选择性低的列上建立索引,例如"性别","状态", "类型"。

(9)高并发场景不建议使用唯一索引。

5、语句规范

(1)SQL语句中IN包含的值不应过多(不超过1000个)

(2)UPDATE、DELETE语句不使用LIMIT。

(3)WHERE条件中必须使用合适的类型,避免MySQL进行隐式类型转化而使用不到索引。

(4)SELECT、INSERT语句必须显式的指明字段名称。

(5)WHERE条件中的非等值条件(IN、BETWEEN、<、<=、>、>=)会导致后面的条件使用不了索引,尽量放在最后。

(6)INSERT语句使用多值提交,values的个数不应过多。

(7)避免使用存储过程、触发器、函数、数学运算、外键等,容易将业务逻辑和DB耦合在一起。

(8)尽量避免使用JOIN。

(9)使用合理的SQL语句减少与数据库的交互次数。

(10)不使用ORDER BY RAND(),使用其他方法替换。

(11)建议使用合理的分页方式以提高分页的效率。

(12)不使用前导查询,如like "%ab",like "%ab%"。

(13)用or分割开的条件,or两边的字段都要创建索引。

相关文章

  • MySQL运维及开发规范

    MySQL运维及开发规范 一.基础规范 二.命名规范 库、表、字段开发设计规范 四.索引规范 五.SQL规范 六....

  • mysql数据库规范

    一.建表规范 MYSQL数据库设计规范与原则 互联网MySQL开发规范 1.基础规范 使用 INNODB 存储引擎...

  • MySQL 开发规范

    MySQL开发规范由基础规范、命名规范、字段规范、索引规范、语句规范组成。 1、基础规范 (1)所有表统一使用In...

  • MySQL开发规范

    一、基础规范 表字符集使用 UTF8 所有表都需要添加注释 不在数据库中存储图⽚、文件等大数据 禁止在线上做数据库...

  • MySQL开发规范

    一、 表设计类 强制类规范 创建表的存储引擎必须是InnoDB。 每个表必须显式的指定一个主键。 不允许使用联合主...

  • MYSQL开发规范

    (一)建表规约 1.【强制】在编写建表语句时,需同时考虑回滚、以及必要的初始化语句;生产环境变更表或数据时须提供变...

  • mysql开发规范

    单表60亿参考

  • MySQL开发规范

    库表设计 库名、表名、字段名使用小写字母,”_”分割,不超过18 个字符,使用名词且见名知意. 不使用temp、o...

  • MySQL开发规范

    1.库名、表名、字段名必须使用小写字母,并采用下划线分割。 a)MySQL有配置参数lower_case_tabl...

  • MySQL开发规范

    一、基础规范 1) 使用InnoDB存储引擎 2) 数据库字符集使用UTF8,校对字符集使用utf8_gene...

网友评论

      本文标题:MySQL 开发规范

      本文链接:https://www.haomeiwen.com/subject/ysvpictx.html