zoukankan      html  css  js  c++  java
  • 阿里Java开发手册学习 3 MYSQL规约

    建表规约 

    1.表达是与否概念的字段,必须使用is_XXX的方式命名,数据类型是 unsigned tinyint (1表示是,0表示否)。 

    2.表名不使用复数名词。

    3.禁用保留字。

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

    5.表的命名最好是加上“业务名词_表的作用” 。

    6.修改字段时要及时更新字段注释。 

    7.字段允许适当冗余,以提高性能。 

    8.单表行数超过500万行或者单表超过2G时才考虑分库分表。

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

     索引规约

    1.业务上具有唯一特性的字段,即使是组合字段,也必须建成唯一索引。 

    2.超过3个表禁止join;多表关联查询时,保证被关联的字段需要有索引。

    3.页面搜索严禁左模糊和全模糊。

    4.利用延迟关联或者子查询优化超多分页场景。即先查出索引主键,再根据主键关联找出需要的信息。

    5.建组合索引的时候,区分度最高的在最左边。

    SQL规约

    1.不要使用count(列名)或count(常量)来代替count(*),count(*)会统计值为null的行,而count(列名)不会统计此列为NULL的值。

    2.count(district col) 计算该列除NULL之外的不重复数量。 

    3.当列值全是null时,count(col)的返回结果是0,sum(col)的返回结果是NULL。注意NPE问题。

    4.必须使用ISNULL()来判断是否为NULL值,NULL与任何值得比较都为NULL。 

    5.不得使用外键与级联,一切外键概念必须在应用层解决。

    6.禁止使用存储过程,存储过程难以调试和扩展,更没有移植性。

    ORM规约 

    1.禁止使用*作为查询的字段列表。

    2.POJO的boolean属性不准使用is,而数据库必须使用is_,在resultMap中进行字段与属性之间的映射。

    3.不要写一个大而全的数据接口,。

  • 相关阅读:
    多线程锁--怎么理解Condition
    ThreadPoolExecutor
    ThreadFactory
    java内部类的初始化
    Android Private Libraries 和 Dependencies的区别
    Android严苛模式StrictMode使用详解
    [法律法规]《网络安全等级保护条例(征求意见稿)》
    [法律法规]中华人民共和国网络安全法
    Sqlserver tablediff的简单使用
    Sqlserver 命令行方式修改 用户密码的方法
  • 原文地址:https://www.cnblogs.com/baokang/p/6349047.html
Copyright © 2011-2022 走看看