【发布时间】:2013-08-27 09:18:52
【问题描述】:
如果我有一个包含 100 行的表(每行的大小或多或少是恒定的),并且 SELECT WHERE 1=1 查询平均需要 0.004 秒才能完成,那么可以假设使用相同的 SELECT WHERE 1 =1 但需要 1M 行
totalTime = 1.000.000*0.004/100
【问题讨论】:
-
你想达到什么目的?看来
BENCHMARK对你有用。 -
@AlmaDoMundo 只是理论上的好奇心
-
一般来说,假设计算机时间是线性的并不安全。小查询可能能够将所有数据保存在内存中,大查询可能需要分页,这将导致性能曲线出现拐点。
-
@DomingoSL - 不,它不完全是线性的。请记住,每次执行都有自己的开销(网络是其中最糟糕的一个)。而且,当然,不要忘记一旦构建了查询计划,下一个查询将使用它(从缓存中)并且时间会减少。
-
首先询问,如果我重复运行相同的查询,是否总是需要 0.004 秒才能完成,显然不是。然后考虑并行性的影响。由于需要更多结果,因此有更多机会进行并行处理。