如果WHERE子句中包含更多条件,则SQL查询的性能

时间:2017-02-14 18:58:21

标签: sql

如果我们在Where子句中包含更多条件,那么有人可以回答如何影响SQL的性能吗?

例如,我有一个表TABLE1,其中包含15列Column1Column2,...,Column15。在这15列中,column1(主键)和column7被编入索引。

现在,如果我想从我的应用程序(hibernate ORM)中检索基于COLUMN1COLUMN7COLUMN10的数据,那么查询

是否合适
SELECT * 
FROM TABLE1 
WHERE COLUMN1 = ? AND COLUMN7 = ? AND COLUMN10 = ?

SELECT * 
FROM TABLE1 
WHERE COLUMN1 = ? AND COLUMN7 = ? 

并过滤应用程序端COLUMN10的结果?

WHERE子句中包含更多过滤器可以提供更好的性能,还是对SQL查询的性能有害?

1 个答案:

答案 0 :(得分:2)

您应该在WHERE子句中添加更多条件。让数据库完成工作。这有两个很好的理由:

  • 它减少了数据库和应用程序之间传递的数据量。数据越少,表现越好。
  • 它允许数据库优化查询,可能使用更好的索引。更多优化更具性能。