说说对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关联时,需考虑关联字段是否是同一类型,是否是索引字段,能否用索引字段进行关联
  • 避免在视图中进行嵌套!!!
posted @ 2020-03-26 18:40  自然去留  阅读(338)  评论(0编辑  收藏  举报