MySql设计规范
表
命名: 与是否有关:is_
复数: 禁用
关键字: order等冲突
数据类型:
小数:decimal;
最小货币单位:bigint;
字符串长度几乎相等:char(长度固定,比如身份证,介节约空间,建立索引不纠结)
varchar(L+1)长度不要超过5000)
必备字段: id/create_time/update_time
表名: 业务_表名
注释
慎用分库分表
索引
命名规约:pk_/uk_/idx
创建索引:
唯一字段必须建立唯一索引
varchar字段索引需要指定长度
最佳做前缀区分度最大的
sql与orm映射库设计
字段类型:隐式转换会导致索引失效
覆盖索引:
使用count(*):内部有优化
使用isNull判断null:null参与运算的值都是null
分页:使用延迟关联或者子查询(join时小——>大)
禁用外键:给数据造成压力
explain+filesort:type,extra
结果:查询结果使用ResultMap做映射
数据库设计(E-R)
名词——实体,属性
动词——实体间关系