- union改为or
- 用in查询代替or
- 事务尽可能简单
- 适当的加入冗余
- 避免使用null字段
- 避免使用两表联查
- 不要在索引列做运算
- 分解联接保证高并发
- 不要给性别字段建立索引
- 不要使用order by rand()
- 在查询条件上不能使用函数
- 不要在数据库做运算 (md5)
- 避免负向查询和%前缀模糊查询
- 表字段不能太多,一个库中表不能太多
- 尽量不用select * ,为索引覆盖提供可能
- 用union all 而非 union 【union会有去重的开销】
- 少用text和blob类型,如果需要使用拆分到单独的表中
- 数据类型的选择,尽量选择短的字段类型,能用int就用int
- 拒绝大事务,大批量,大SQL【大SQL拆分成多条简单的SQL】
- 不要让SQL做类型转换【数据库字段是int类型,查询时就用int类型查询】
- 字符字段必须建立前缀索引【选择合适的索引长度,不能给整个字段建立索引】
- 合理创建索引,索引不能创建太多,索引会增加查询速度,但会牺牲了增删改的速度
MySQL优化
最新推荐文章于 2024-05-03 18:15:47 发布