EXPLAIN SQL语句中IN包含的值不应过多 SELECT语句务必指明字段名称 当只需要一条数据的时候,使用limit 1 如果排序字段没有用到索引,就尽量少排序 如果限制条件中其他字段没有索引,尽量少用or 尽量用union all 代替 union 不使用ORDER BY RAND() 区分in和exists, not in 和not exists 使用合理的分页当时以提高分页的效率 分段查询 避免在where子句中对应字段进行null值判断 不建议使用%前缀模糊查询 避免在where子句中对字段进行表达式操作 避免隐式类型转换 对于联合索引来说,要遵守最左前缀法 必要时可以使用force index来强制查询走某个索引 注意范围查询语句 关于JOIN优化