高并发 mysql 优化

核心原则

  1. 不在 db 做运算
  2. cpu 计算放到业务层
  3. 控制字段数量
  4. 平衡范式和冗余
  5. 拒绝大 sql
  6. 拒绝大事务
  7. 拒绝大批量
    1. 传输有上限

字段设计原则

  1. 用恰当的数据类型
  2. 字符转化为数字
    1. 节约空间,提高查询性能
  3. 避免使用 null 字段
    1. 难以查询优化
    2. 索引需要额外空间
    3. 符合索引无效
  4. 少用 text 类型
  5. etc.

索引设计原则

  1. 合理使用索引
  2. 长字符串必须建立前缀索引
  3. 不在索引做列运算
  4. 使用逻辑外键

sql 语句设计原则

  1. sql 语句尽量简单
  2. 使用简单的事务
  3. 避免使用触发器和存储过程
  4. or 改为 in
  5. or 改为 union

特殊语法

INSERT [IGNORE] INTO

  • 如果违反了主键约束或者唯一性约束,放弃数据写入,返回 0 ,且不会报错

**

减少没必要的 sql

  • 比如校验用户是否存在,可以直接唯一索引报错来提示