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.不要写一个大而全的数据接口,。

  • 相关阅读:
    Skyline软件SFS服务介绍
    选择三维地理信息系统(GIS)软件平台需要考虑的内容
    如何利用Skyline6.1的接口创建动态对象DynamicObject
    Skyline中的隐藏组
    基于Skyline的TerraExplorer6.1.1如何通过二次开发实现折线和多边形对象的手动绘制
    如何利用Skyline6.1实现多球对比功能
    Skyline for Android & iOS devices
    VBS、WKT、投影
    FME+Oracle Spatial+SFS+TEPro
    如何生成静态页
  • 原文地址:https://www.cnblogs.com/baokang/p/6349047.html
Copyright © 2011-2022 走看看