MySQL - 过滤条件的增加会增加查询执行时间吗?

时间:2015-07-13 02:53:37

标签: mysql

WHERE - 子句中提供多个过滤条件是否会减少搜索时间或类似,因为它一次处理多个过滤器,它会增加所需的处理量,从而增加执行时间?

E.g。

  

从table_name中选择*,其中this = foo和that = bar

VS

  

从table_name中选择*,其中this = foo

1 个答案:

答案 0 :(得分:1)

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

这是一般概述。如果你有where子句的索引,那么这两个结构基本相同。对于第二个密钥的比较,可能会有非常非常少量的额外开销,但这对现实世界的应用程序没有任何影响。

与一般情况的另一个区别是比较需要很长时间。这可能是由于大文本字段上的like或复杂的用户定义函数造成的。在这种情况下,比较可能会产生影响。

但是,从根本上说,查询会做不同的事情。在担心晦涩的性能特征之前,您应该表达您真正需要的查询。例如,在数据库中进行过滤通常比将数据带回应用程序并在那里进行过滤要好得多。