Mysql数据库开发36条军规
数据库
2018-05-31 19:20:28
阅读次数: 0
第一部分:核心军规
- 尽量不在数据库做运算
- 控制单表数据量
- 保持表身段苗条
- 平衡范式与冗余
- 拒绝3B(大SQL、大事物、大批量)
第二部分:字段类军规
- 用好数值字段类型
- 将字符转化为数字
- 优先使用ENUM或SET
- 避免使用NULL字段
- 少用并拆分TEXT/BLOB
- 不在数据库里存放图片
第三部分:索引类军规
- 谨慎合理添加索引
- 字符字段必须建立前缀索引
- 不在索引列做运算
- 自增或全局ID做INNODB主键
- 尽量不用外键
第四部分:SQL类军规
- SQL语句尽可能简单
- 保持事务短小
- 尽可能避免使用SP/TRIG/FUNC
- 尽量不用SELECT *
- 改写OR语句<br>
- 避免负向查询和%前缀模糊查询<br>
- 减少COUNT(*)
- LIMIT高效分页
- 用UNION ALL而非UNION
- 分解联接保证高并发
- GROUP BY去掉排序
- 同数据类型的列值比较
- Load data导入数据
- 打散大批量更新
- Know Every SQL!
第五部分:约定类军规
- 隔离线上线下
- 禁止未经DBA确认的子查询
- 永远不在程序端显示加锁
- 统一字符集为UTF8
- 统一命名规范<br>
转载自oaksun.iteye.com/blog/1931166