mysql表设计规范

1. MySQL建表,字段需设置为非空,需设置字段默认值。

2. Mysql建表,字段尽量不要使用null,需NULL时,需设置字段默认值,默认值不为NULL。

3. MySQL建表,不同表之间的相同属性值的字段,列类型,类型长度,是否非空,是否默认值,需保持一致

4. MySQL使用时,多列索引的属性最多15个。

5. MySQL通常使用找到最少行的索引,索引唯一值最高的索引。

6. 建立索引index(part1,part2,part3),相当于建立了 index(part1),index(part1,part2)和index(part1,part2,part3)三个索引。

7.表名、字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只出现数字

8.禁用保留字

如desc、range、match、delayed等。

9.主键索引名为pk_字段名 ;唯一索引名为uk_字段名 ;普通索引名为idx_字段名。


pk_:primary key

uk_:unique key

idx_:index

10.小数类型为decimal,禁止使用float和double

float和double在存储的时候,存在精度损失的问题,很可能在值的比较时,得到不正确的结果。如果存储的数据范围超过decimal的范围,建议将数据拆成整数和小数分开存储。

11.如果存储的字符串长度几乎相等,使用char定长字符串类型。

12.如果修改字段含义或对字段表示的状态追加时,需要及时更新字段注释

13.字段允许适当冗余,以提高查询性能,但必须考虑数据一致,冗余字段应遵循:

不是频繁修改的字段;

不是varchar超长字段,更不能是text字段

14.单表行数超过1000万行或者单表容量超过2GB,才推荐进行分库分表。

说明:如果预计三年后的数量根本达不到这个级别,请不要在创建表时就分库分表。

15.合适的字符存储长度,不但节约数据库表空间,节约索引存储,更重要的是提升检索速度。

image

16.创建数据库时必须显式指定字符集,并且字符集只能是utf8。

17.对于超过100W行的大表进行alter table,必须在业务低峰期执行。

18.不推荐使用blob,text等类型

规范示例:

image
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容