MySQL 数据库设计规范

1、表名、字段名必须使用小写字母,不能以数字开头,不要使用数据库关键字和保留字;多个单词之间用下划线连接,不要在两个下划线之间只出现数字。

2、表名不能使用复数。

3、表示是否概念的字段,使用 is_field 形式命名,类型为 unsigned tinyint,例如是否已删除,使用 is_deleted 命名,1表示是,0表示否。

4、索引命名,主键命名 pk_ 开头, 唯一索引命 uk_ 开头,普通索引命名 idx_ 开头。

5、数字类型使用 decimal,禁止使用 float 和 double,如果需要存储的数值范围超过 decimal 范围,将整数和小数部分拆分存储。

6、varchar 可变长度字符串,不预先分配存储空间,但不要超过5000个字符。

7、存储数据如果超过varchar 最大长度,放在独立表中存储,防止影响其它字段索引性能,使用 text 类型,通过主键和主表关联。

8、允许字段冗余,以提高查询性能,需要保持数据一致性,冗余字段不能为 text类型字段,也不能为 varchar 超长字段。

9、单表超过500w行,或者 2GB,建议分库分表。

10、varchar 类型字段上建立索引, 需要根据文本区分度指定索引长度,参考计算公式,count(distinct left(field_name, 索引长度))/count(*) 。

11、建立组合索引,需要将区分度最高的字段放在最前面。

12、如果建立了组合索引,并且对组合索引中第一个字段使用了范围查询条件,根据B-Tree 最左前缀匹配特性,此组合索引失效。

13、SQL性能优化目标:至少达到range 级别,对索引进行范围检索;要求是 ref 级别, 即使用普通索引; 最好是 consts 级别,使用主键或者唯一索引。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值