首页 > 代码库 > mysql

mysql

核心原则

• 尽量不在数据库做运算
• 控制单表数据量
• 保持表身段苗条
• 平衡范式不冗余
• 拒绝3B

字段

• 用好数值字段类型
• 将字符转化为数字
• 优先使用枚丼ENUM/SET
• 避免使用NULL字段
• 少用幵拆分TEXT/BLOB
• 不在数据库里存图片

索引

• 谨慎合理添加索引
• 字符字段必须建前缀索引
• 不在索引列做运算
• 自增列或全局ID做INNODB主键
• 尽量不用外键

SQL

• SQL语句尽可能简单
• 保持事务(连接)短小
• 尽可能避免使用SP/TRIG/FUNC
• 尽量丌用 SELECT *
• 改写OR语句
• 避免负向查询和% 前缀模糊查询
• 减少COUNT(*)
• LIMIT的高效分页
• 用UNION ALL 而非 UNION
• 分解联接保证高幵发
• GROUP BY 去除排序
• 同数据类型的列值比较
• Load data导数据
• 打散大批量更新
• Know Every SQL!

约定

• 隔离线上线下
• 禁止未经DBA确认的子查询上线
• 永远丌在程序端显式加锁
• 统一字符集为UTF8
• 统一命名规范

mysql