专业的编程技术博客社区

网站首页 > 博客文章 正文

MySQL使用规范(mysql使用入门)

baijin 2025-06-23 14:49:11 博客文章 3 ℃ 0 评论

最近看到MySQL相关的内容,结合平时工作中出现的问题,整理了一些规范要点,内容偏基础,如果有错误的地方,欢迎批评指正。

主要内容包含以下几点:

  • 命名规范
  • 基础规范
  • 字段设计规范
  • sql设计规范
  • 索引规范

命名规范

1、库名、表名,字段名必须使用小写字母,并采用下划线分割

2、库名、表名,字段名禁止超过32个字符

3、库名、表名,字段名必须见名知意,命名与业务相关联

4、库名、表名,字段名禁止使用MySQL关键字,比如index等等

5、临时库名、临时表名必须以tmp为前缀,并以日期为后缀,例如,tmp_test001_20200210

6、备份库名、表名必须以bak为前缀,并以日期为后缀,例如,bak_test001_20200210

7、所有存储相同数据的列名和列类型必须一致


基础规范

1、非特殊情况,建表一律采用Innodb引擎,默认使用utf8mb4字符集(兼容Emoji)

2、新建表需要添加表注释,所有字段都需要添加注释,注释必须说明字段含义,有枚举值必须说明清楚

3、禁止枚举类型,可以使用tinyint+代码映射代替

4、禁止在数据库中存储图片、文件等大数据

5、禁止在生产环境做数据库压力测试

6、列表查询必须要limit,并且不能超过1000

7、每张表数据量建议控制在500w以内


字段设计规范

1、优先选择符合存储需要的最小的数据类型

2、尽可能把所有列定义为not null 并且要有默认值,比如default ""

3、使用timestamp(4个字节)或者datetime类型(8字节)存储时间

4、对于非负型的数据(比如自增ID,整型IP)来说,要优先使用无符号整型来存储


sql设计规范

1、用in代替or,sql语句中in包含的值不应该过多,应少于500个

2、跨领域业务禁止使用join,单个领域严禁join次数超过2次

3、禁止使用子查询

4、禁止在mysql中进行复杂数学运算和函数运算,数学运算仅限于简单的加减乘除和位操作

5、select只获取必要的字段,禁止使用select *,

6、insert语句必须指定字段列表,禁止使用insert into table()

7、业务禁止使用存储过程,触发器,视图,自定义函数等

8、业务sql必须被索引,update、delete的where条件列,order by、group by、distinct 字段

9、严禁使用%前导查询,例如 “%abc”,无法利用到索引,严禁使用not like

10、避免使用负向查询,比如not in 、!=等等

11、where条件值需与字段类型一致

12、禁止使用order by rand()


索引规范

1、建议单表中索引数不超过5个

2、禁止单个索引中的字段数超过5个

3、表必须要有主键

4、唯一键的组成字段不能超过3个,并且字段都是整形时,可使用唯一键作为主键。其他情况下,建议使用自增列或发号器作主键

5、禁止冗余索引,禁止重复索引,禁止使用外键

6、索引名必须全部使用小写


ps:每天总结一点点,每天就进步一点点,积少成多。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表