一、建表规约
1、小数类型为decimal,禁止使用float和double
2、表必备三字段:id、gmt_create、gmt_modified
3、字段允许适当冗余,以提高查询性能,但必须考虑数据一致。
冗余字段应遵循:
1)不是频繁修改的字段。
2)不是varchar超长字段,更不是text字段。
4、当单表行数超过500万行或者单表容量超过2GB时,才推荐进行分库分表。
二、索引规约
1、sql性能优化的目标:至少要达到range级别,要求是ref级别,最好是consts。
三、SQL语句
1、不要使用count(列名)或count(常量)来替代count(*),count(*)是SQL92定义的标准统计行数的语法,跟数据库无关,跟NULL和非NULL无关。
说明:count(*)、count(1)会统计值为NULL的行,而count(列名)不会统计此列为NULL值的行。
2、不得使用外键与级联,一切外键概念必须在应用层解决。
四、ORM映射
使用#{},不要使用${},此种方式容易出现SQL注入。