• mysql数据建模规范


    某大型互联网公司mysql设计规范
    总体原则:
    I: 反第三范式-->第三范式仅仅是在大学里用的,出来后,不能随便用;
    II: 数据冗余 --> 一张表几百万甚至上千万数据,你不搞数据冗余,以后数据量上来了,查询肯定很慢。
     
    具体原则:
    1 字段设计:最短最小原则,够用即可,可以用varchar(10)的,不要用varchar(20),能用smallint的,不要用int
    2 字段类型:能用数字的,不要用varchar,数字类型的,查询速度要优于字符串
    3 字段数量:不要超过50个
    4 字段命名:见名知意,简单明了,驼峰表示,不要用大小写,那是java语言的规范
    5 常规表,应该都包含以下字段 create_user create_time update_user  update_time
    6 根据需要,设计is_delete字段,选择进行逻辑删除还是物理删除。
    7 sys_version,存在并发更新的表,可以添加该字段:
      update table set col1 = value1,sys_version = sys_version + 1 where id = id and sys_version = sys_version
    8 尽量不要有join查询,如果确实需要join,join的数量,不能超过3个
    9 不要设计物理外键
    10 不要在sql语句上叫mysql进行隐士类型转换
    11 尽量不要在mysql的字段上进行函数运算,尤其是索引列.
    12 百万以上数据,再考虑建立索引,字符串类型要建立前置索引,索引数量,限制个5个以内。
    13 不要用视图,存储过程
    14 设置ts字段(timestamp),初始值为insert time,数据更新时为当时的更新时间
  • 相关阅读:
    进程与线程的区别iOS
    java面试题(中)
    java面试题(上)
    [Asp.net 5] DependencyInjection项目代码分析4-微软的实现(1)
    [Asp.net 5] DependencyInjection项目代码分析3-Ninject
    [Asp.net 5] DependencyInjection项目代码分析2-Autofac
    [Asp.net 5] DependencyInjection项目代码分析
    leetcode25 K个一组翻转链表
    leetcode128 最长连续序列
    leetcode124 二叉树中的最大路径和
  • 原文地址:https://www.cnblogs.com/wangdonghua/p/10740086.html
Copyright © 2020-2023  润新知