Mysql设计规范-日常开发

作者: tcxurun 分类: MySQL 发布时间: 2019-06-08 16:56 ė 6 没有评论

【从日常大家使用情况进行总结】

一、数据库表名、字段名设计规范

1、库名、表名、字段名统一大写,并下划线分割。

2、库名、表名、字段名禁止超过32个字符。
库名、表名、字段名支持最多64个字符,但为了统一规范、易于辨识以及减少传输量,禁止超过32个字符。

3、库名、表名、字段名、索引名等所有名称仅允许由字母、数字或下划线组成,禁止使用其他特殊字符。

所有名称中禁止使用汉语拼音,应使用有意义的英文单词(或缩写)代替。无英文翻译的单词除外。

4、禁止使用系统保留字命名。

5、常用的字段命名和类型如下:

类名

命名

字段类型

主键 ID BIGINT(20)
创建时间(可选) CREATE_DATE datetime NOT NULL COMMENT ‘创建时间’
更新时间(可选) UPDATE_DATE datetime NOT NULL COMMENT ‘更新时间’
XX标识(可选) XX_TAG tinyint NOT NULL DEFAULT ‘0’ COMMENT ‘删除标识:0未删除, 1已删除’
创建账号 CREATE_ACCOUNT 记录的是登录账号,不是ID
更新账号 UPDATE_ACCOUNT 记录的是登录账号,不是ID

二、数据库字段类型设计规范

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

2 、避免使用TEXT、BLOB数据类型。

3 、避免使用ENUM数据类型。

4 、尽可能把所有列定义为NOT NULL。

5 、使用TIMESTAMP或DATETIME类型存储时间。

6 、对于财务相关的金额类数据,必须使用decimal类型。

7 、对于char和varchar的用法

根据字符串长度确定,凡是固定长度的字符串或者类似固定长度的字符串一律用char;

数据是否经常更改导致碎片,可能经常变动而产生存储碎片的小字符串一律用char;

理解varchar的存储空间和内存空间的区别,合理指定varchar的长度;

https://blog.csdn.net/qq_36544760/article/details/82711569

8、tinyint smallint int  mediunint bigint 等数字类型后面括号中的数字,不表示长度,表示的是显示宽度,这点与 varchar、char 后面的数字含义是不同的

tinyint(1)  和 tinyint(3) 没什么区别,占用字节都是一位,存储范围都是一样的

tinyint(3) zerofill ,当插入的数据少于3位的时候,左边自动补零,这才是限制显示长度

int(1) 和 tinyint(1) ,够用的情况下,优先选择tinyint(1),因为占字节少、节省空间。

tinyint一个字节   smallint  两个字节   MEDIUMINT三个字节  int 4个字节  BIGINT 8个字节

三、SQL开发规范

1、避免数据类型的隐式转换

例如:where条件后的字段类型和传入的值类型一致。

2、数值型比字符串类型效率高,查询更快、占用空间更小,故能用数值型的就不要用字符型;

3、单表索引数,正常应不超过5个

应结合业务逻辑,对查询频率较高或组合频率较高的字段添加索引

4、禁止冗余索引

5、禁止重复索引

6、不在低基数列上建立索引

7、用IN或者UNION ALL代替OR

8、禁止使用SELECCT *

9、减少同数据库交互的次数

10、避免使用JOIN 关联太多的表

11、避免使用子查询,可以把子查询优化为join操作

12、充分利用表上已存在的索引

13、禁止对查询字段做任何运算,极易引发锁表

14、谨慎使用子查询或嵌套查询

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

16、功能相同的函数或操作应统一为同一操作。

  • <>和NOT=应统一为!=
  • !>和!<应统一为<=和>=
  • JOIN中的USING应统一为ON

 

资料:

MySQL开发规范与使用技巧总结

Mysql设计规范

本文出自天一直很蓝,转载时请注明出处及相应链接。

本文永久链接: http://www.tcxurun.cn/archives/523

0

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Ɣ回顶部