Mysql数据库设计基本规范

作者: 缘来是你ylh | 来源:发表于2019-03-24 06:54 被阅读44次

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

    相关文章

      网友评论

        本文标题:Mysql数据库设计基本规范

        本文链接:https://www.haomeiwen.com/subject/inommqtx.html