网站首页 > 博客文章 正文
最近看到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:每天总结一点点,每天就进步一点点,积少成多。
猜你喜欢
- 2025-06-23 MySQL合集-mysql5.7及mysql8的一些特性
- 2025-06-23 MySQL CREATE TABLE 简单设计模板交流
- 2025-06-23 MYSQL表设计规范(mysql设计表注意事项)
- 2025-06-23 MySQL数据库入门(四)数据类型简介
- 2025-06-23 数据丢失?别慌!MySQL备份恢复攻略
- 2025-06-23 MySQL设计规范(mysql 设计)
- 2025-06-23 MySQL数据实时增量同步到Elasticsearch
- 2025-06-23 MySQL 避坑指南之隐式数据类型转换
- 2025-06-23 MySQL数据库中,数据量越来越大,有什么具体的优化方案么?
- 2025-06-23 第39期:MySQL 时间类分区写 SQL 注意事项
你 发表评论:
欢迎- 06-23MySQL合集-mysql5.7及mysql8的一些特性
- 06-23MySQL CREATE TABLE 简单设计模板交流
- 06-23MYSQL表设计规范(mysql设计表注意事项)
- 06-23MySQL数据库入门(四)数据类型简介
- 06-23数据丢失?别慌!MySQL备份恢复攻略
- 06-23MySQL设计规范(mysql 设计)
- 06-23MySQL数据实时增量同步到Elasticsearch
- 06-23MySQL 避坑指南之隐式数据类型转换
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)