看啥推荐读物
专栏名称: 缘来是你ylh
滑头滑脑的小伙子
目录
相关文章推荐
今天看啥  ›  专栏  ›  缘来是你ylh

Mysql数据库设计基本规范

缘来是你ylh  · 简书  ·  · 2019-03-24 06:54

1.使用InnoDB引擎

支持事务、行级锁、并发性能更好,具体的我在另一篇文章会详细介绍InnoDBMyISAM的区别

2.使用utf8或utf8mb4字符集

utf8是万国码,无需转码,无乱码风险,节省空间,但是如果业务需要支持emoji和复杂汉字 如(这是我大学同学名字中的字,每次报名找半天,上课老师不会读)就需要使用utf8mb4字符集,他是utf8的超集,缺点就是不节省存储空间。然而在硬件发达的今天这些都不是事了。

3.字段加注释

这一点不想说什么,懂得都懂

4.不要再数据库上使用存储过程,事务和触发器,event等

请让数据库做他擅长的事情存储和索引

5.禁止存大文件

直接存储url就行了

6.命名要见名知意

命名要有意义,不得与关键字冲突,使用下划线分割单词,禁止用拼音。索引命名最好是索引类型加_索引名称。如unique_mobile

7.禁止使用null

null这是个该死的玩意,如果你使用了你会后悔。他会废掉mysql一个重要的功能---索引

8.尽量不要使用ENUM

ENUM更加的节省空间效率那为什么不用呢?比如文章的状态,有草稿,审核中,打回,已发布4种,假设你使用ENUM来存储,他就4个值。突然有一天产品经理说要给文章审核分一级审核,二级审核。那么你除了程序要做相关修改外还要去数据库去做调整。直接操作线上数据库是一件很危险的事情,所以建议使用tinyint代替ENUM。当然如果你百分之百确定就只用那么几个可能你可以使用ENUM,比如性别 最多三种状态, 男 女 未知。

9.表名称要有统一的前缀

10.字段拆分
不常用的字段垂直拆分出去,大字段垂直拆分出去。

11.尽可能少用text和blob
这样的字段类型能存储的内容非常之大,如果可以,请用varchar代替,即使非用不可也请考虑tinytext,并且垂直拆分出去。

12.合理使用索引
索引固然能大大提高搜索效率,但他同时给插入更新带来了额外的消耗,索引索引不能随意建立。




原文地址:访问原文地址
快照地址: 访问文章快照