2017-02-14 56 views
0

任何人都可以回答如果我们在Where子句中包含更多条件时SQL的性能会受到影响吗?如果更多条件包含在WHERE子句中,则SQL查询的性能

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

现在,如果我想要检索基于COLUMN1,从我的应用程序COLUMN7COLUMN10数据(休眠ORM),所以是好与

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

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

和查询在应用端过滤COLUMN10的结果?

WHERE子句中包含更多筛选器会提供更好的性能,或者对SQL查询的性能不利?

+0

还有其他的考虑。将过多的数据带到应用程序可能会导致服务器RAM问题。 –

+0

检查执行计划 –

回答

2

您应该在WHERE条款中加入更多条件。让数据库完成这项工作。以下是两个很好的理由:

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