高并发 mysql 优化
核心原则
- 不在 db 做运算
- cpu 计算放到业务层
- 控制字段数量
- 平衡范式和冗余
- 拒绝大 sql
- 拒绝大事务
- 拒绝大批量
- 传输有上限
字段设计原则
- 用恰当的数据类型
- 字符转化为数字
- 节约空间,提高查询性能
- 避免使用 null 字段
- 难以查询优化
- 索引需要额外空间
- 符合索引无效
- 少用 text 类型
- etc.
索引设计原则
- 合理使用索引
- 长字符串必须建立前缀索引
- 不在索引做列运算
- 使用逻辑外键
sql 语句设计原则
- sql 语句尽量简单
- 使用简单的事务
- 避免使用触发器和存储过程
- or 改为 in
- or 改为 union
特殊语法
INSERT [IGNORE] INTO
…
- 如果违反了主键约束或者唯一性约束,放弃数据写入,返回 0 ,且不会报错
减少没必要的 sql
- 比如校验用户是否存在,可以直接唯一索引报错来提示