- 尽量不在数据库做运算
- 控制单表数据量
- 保持表身段苗条
- 平衡范式不冗余
- 拒绝3B(大SQL/大事务/大批量)
- 用好数值字段类型
- 将字符转化为数字
- 优先使用枚丼ENUM/SET
- 避免使用NULL字段
- 少用幵拆分TEXT/BLOB
- 不在数据库里存图片
- 谨慎合理添加索引
- 字符字段必须建前缀索引
- 不在索引列做运算
- 自增列或全局ID做INNODB主键
- 尽量不用外键
- SQL语句尽可能简单
- 保持事务(连接)短小
- 尽可能避免使用SP/TRIG/FUNC
- 尽量不用 SELECT *
- 改写OR语句
- 避免负向查询和% 前缀模糊查询
- 减少COUNT(*)
- LIMIT的高效分页
- 用UNION ALL 而非 UNION
- 分解联接保证高幵发
- GROUP BY 去除排序
- 同数据类型的列值比较
- Load data导数据
- 打散大批量更新
- Know Every SQL!
- 隔离线上线下
- 禁止未经DBA确认的子查询上线
- 永远不在程序端显式加锁
- 统一字符集为UTF8
- 统一命名规范
作者:石展@赶集 http://weibo.com/wushizhan