浅显易懂之MYSQL开发使用规范

 【开源中国】:浅显易懂之MYSQL开发使用规范

  • 一、表规范
  1. 库名、表名、字段名必须使用小写字母,“_”分割,做到见名知意,建议使用名词
  2. 表必须定义主键,默认为ID,整型自增,ID字段作为自增主键,禁止上下文作为条件进行数据传
  3. 整形定义中不添加长度,比如使用INT,而不是INT(4),短数据类型使用TINYINT,比如status字段。
  4. VARCHAR(N),根据业务实际需要进行长度控制,N表示的是字符数不是字节数,比如VARCHAR(255),可以最大可存储255个汉字。
  5. 存储时间建议使用TIMESTAMP类型。
  6. 字段推荐定义为NOT NULL,设置默认值。
  7. 拒绝使用外键、推荐适当添加索引、聚集索引,索引列必须定义为not null,并设置default值;
  8. 多表中的相同列,必须保证列名定义一致
  9. 存储引擎推荐使用InnoDB,字符集选用utf8
  10. 表必须包含created、modified字段,表示必须包含记录创建时间和修改时间的字段
  11. 拒绝把图片流、大文本直接存入mysql,MySQL只保存索引信息
  12. 数据更新建议使用二级索引先查询出主键,再根据主键进行数据更新
  13. 不推荐使用procedure、function、触发器、视图、事件等MySQL高级功能
  14. 单表数据超过500万条记录,即可考虑拆库拆表

 

  • 二、索引规范

 

  1. 索引名必须使用小写。非唯一索引推荐使用“idx字段名称字段名称[字段名]”进行命名,唯一索引推荐使用“uniq字段名称字段名称[字段名]”进行命名。
  2. 索引列必须not null
  3. 聚集索引字段数不超过3个,单边索引数不超过3个。
  4. 合理创建聚集索引(避免索引冗余),(a,b,c) 相当于 (a) 、(a,b) 、(a,b,c)
  5. 对过长VARCHAR字段建立索引时,建议使用CRC32或者MD5散列,散列值再建立索引
  •  三、SQL规范
  1. 拒绝硬编码,防止sql注入
  2. 拒绝select *,拒绝查询冗余
  3. 尽量减少SQL的IO交互
  4. WHERE条件中的非等值条件、会引起全表扫描(IN、BETWEEN、<、<=、>、>=)所以不推荐使用非等值条件,若使用放在where条件最后。
  5. 复杂sql书写完后,推荐EXPLAIN查看执行计划,优化后再使用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值