说说对SQL 语句优化有哪些方法?
- 只SELECT用到的字段,不必要的字段不要查询
- WHERE子句中:WHERE表之间的连接必须写在其他WHERE条件之前,那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾.HAVING最后
- 使用EXISTS 替代IN、NOT EXISTS 替代NOT IN
- 为避免全表扫描,首先应考虑在WHERE及ORDER BY涉及的列上建立索引
- 避免使用IN、LIKE、DISTINCT和UNION关键字
- 避免在索引列上使用IS NULL、IS NOT NULL和计算
- 避免在WHERE子句中对字段进行NULL值判断, 否则将导致引擎放弃使用索引而进行全表扫描
- 避免在WHERE子句中对字段进行表达式操作,这将导致引擎放弃使用索引而进行全表扫描
- 多张表JOIN关联时,需考虑关联字段是否是同一类型,是否是索引字段,能否用索引字段进行关联
- 避免在视图中进行嵌套!!!