在WHERE-clause中提供多个筛选条件是缩短了搜索时间,还是类似于,因为它一次处理多个筛选器,就会增加所需的处理量,从而增加执行时间?
例如。
从table_name选择*,其中this = foo,that = bar
与
从table_name选择*,其中this = foo
发布于 2015-07-13 03:11:31
通常,您所描述的查询所需的时间是基于读取数据的I/O时间和返回结果集的时间。与读取和返回记录的时间相比,判断记录是否在结果集中的时间是可以忽略不计的。
这是一个总体概述。如果对where子句有索引,那么这两个构造基本上是相同的。对于第二个键的比较,可能会有非常、非常小的额外开销,但这对实际应用程序不会有什么影响。
与一般情况不同的是,比较确实需要很长时间。这可能是由于大型文本字段上的like或复杂的用户定义函数造成的。在这种情况下,这种比较可能会产生影响。
不过,更根本的是,查询所做的事情不同。在担心神秘的性能特性之前,您应该表达真正需要的查询。例如,通常在数据库中进行筛选要比将数据带回应用程序并在那里进行筛选要好得多。
https://stackoverflow.com/questions/31374791
复制相似问题