2015-07-13 37 views
0

WHERE条款中是否提供了多个过滤条件 - 减少了搜索时间,或者像它一样,因为它一次处理多个过滤器,它会增加所需的处理量,从而增加执行时间?MySQL - 过滤条件增加会增加查询执行时间吗?

E.g.

SELECT * FROM TABLE_NAME其中此= foo和那巴=

SELECT * FROM TABLE_NAME其中此= FOO

+0

取决于很多因素,无论哪种方式都可以。人看到的过滤器可以变成慢速扫描。 – Drew

+0

你能否指点我可以阅读更多内容的资源?感谢您回复:) – Rishant

+0

http://stackoverflow.com/questions/12925140/how-to-estimate-sql-query-timing – Drew

回答

1

一般而言,您描述的查询花费的时间量取决于读取数据的I/O时间和返回结果集的时间。用于确定记录是否在结果集中的时间量与读取和返回记录的时间相比可以忽略不计。

这是一般性概述。如果你在where子句中有索引,那么这两个构造基本上是相同的。对于第二个键的比较,可能会有非常少量的额外开销,但这对于真实世界的应用程序并没有什么不同。

与一般情况的另一个不同点是,当比较需要很长时间。这可能是由于like在大型文本字段或复杂的用户定义函数上造成的。在这种情况下,比较可能会有所作为。

更基本的是,查询做了不同的事情。在担心神秘的表现特征之前,你应该表达你真正需要的查询。例如,在数据库中进行过滤通常要比将数据带回应用程序并在那里过滤好得多。