假设我有一个包含 100 条记录的表 X,并且运行 aselect * from X
需要 100 秒。
我应该期望查询需要多长时间select top 10 * from X
?
我希望这种关系或多或少是线性的,所以 10 秒。这是正确的,还是关系在某种程度上是非线性的?
假设我有一个包含 100 条记录的表 X,并且运行 aselect * from X
需要 100 秒。
我应该期望查询需要多长时间select top 10 * from X
?
我希望这种关系或多或少是线性的,所以 10 秒。这是正确的,还是关系在某种程度上是非线性的?
您的性能成本在两个不同的领域:
通常,查询会很快,但返回结果会很慢,因为它受 I/O 限制。如果是这种情况,那么您将通过返回更少的结果看到近似线性的加速。
但是,如果查询本身很复杂,情况就不同了。如果不只是select * from X
, 而是select * from X where [complicated-expression]
,那么数据库实现之间的结果可能会有很大差异。在这种情况下,您的性能可能会受到查询复杂性的支配,在这种情况下,仅返回较少的结果不会给您带来太多好处。