1、尽量不要使用%前缀的LIKE模糊查询
使用全文索引”
2.避免在WHERE查询时对字段进行表达式操作
14、减少不必要的排序
排序操作会消耗较多的CPU资源,所以减少不必要的排序可以在缓存命中率高等I/O足够的情况下,会降低SQL的响应时间。
14、建议用JOIN代替子查询
15、避免发生隐式类型转换
16、避免多表查询字段类型不一致
在遇到需要多表联合查询的时候,我们设计表结构的时候,尽量保持表与表的关联字段一致,并且都要设置索引。同时,多表连接查询时,尽量把结果集小的表作为驱动表。
7、建议开启查询缓存
大多数的MySQL服务器都开启了查询缓存,这是提高性能最有效的方法之一,因为查询缓存由MySQL数据库引擎自动处理,当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存中,这样,后续的相同的查询就不用操作表,而直接访问缓存结果了。
18、使用UNION代替临时表
UNION查询可以把两条或更多的SELECT查询结果合并到一个查询中,从而不再需要创建临时表来完成。需要注意的是,使用UNION的所有SELECT语句中的字段数目要相同
19、慎用IN查询
IN以及NOT IN查询都要慎重,因为可能会导致全表扫描,而对于连续的数值,能用BETWEEN就不要用IN了