MySQL使用规范_mysql使用入门

yumo6661周前 (10-23)技术文章47

最近看到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:每天总结一点点,每天就进步一点点,积少成多。

相关文章

Mysql最全笔记,快速入门,干货满满,爆肝

目录一、 MySQL的重要性二、MySQL介绍三、软件的服务架构四、 MySQL的安装五、 SQL语句六、 数据库相关(DDL)七、 表相关八、 DML相关(表中数据)九、 DQL(重点)十、 数据完...

MySQL 从入门到精通(六) SQL性能分析及索引使用规则

SQL性能分析工具有助于我们能够快速定位哪些SQL语句执行效率低下,从而有针对性的进行优化,这里我们优化的主要语句是SQL的DQL语句也就是查询语句。而在优化select查询语句的时候呢,索引的优化占...

《阿常·MySQL 70讲》全套教学视频

优惠价:9.9元 限量 速抢!!「阿常讲SQL,快来听一听」阿常的第一套课程已上架小商店,数量有限 抢购 优惠价:9.9元优惠下单:https://mmbizurl.cn/s/z91pZ3DvK《阿常...

中高级程序员可能都不会使用spring-boot-starter-jdbc访问MySQL

使用spring-boot-starter-jdbc访问MySQLMySQL是目前项目中广泛运用的关系数据库,直接使用JDBC访问MySQL是经常使用的技术方式。MySQL所使用的SQL是访问数据库最...