Sql 简单的select查询的曲线是什么?

Sql 简单的select查询的曲线是什么?,sql,Sql,这是一个概念性问题 假设,当从表_name中选择*时,该表有100万条记录,大约需要3秒 类似地,当我选择1000万条记录时,所用的时间约为30秒。但我被告知,选择记录并不是与时间成线性比例的。经过一定数量后,选择记录所需的时间呈指数级增长 请帮助我了解这是如何工作的?有些事情会使一个查询比另一个查询花费更长的时间,即使是没有where子句或联接的简单选择 首先,返回查询的时间取决于运行查询时网络的繁忙程度。它还可能取决于数据上是否有锁,或者有多少内存可用 它还取决于表的宽度,以及通常单个记录的

这是一个概念性问题

假设,当从表_name中选择*时,该表有100万条记录,大约需要3秒

类似地,当我选择1000万条记录时,所用的时间约为30秒。但我被告知,选择记录并不是与时间成线性比例的。经过一定数量后,选择记录所需的时间呈指数级增长


请帮助我了解这是如何工作的?

有些事情会使一个查询比另一个查询花费更长的时间,即使是没有where子句或联接的简单选择

首先,返回查询的时间取决于运行查询时网络的繁忙程度。它还可能取决于数据上是否有锁,或者有多少内存可用

它还取决于表的宽度,以及通常单个记录的字节数。例如,我希望一个1000万条记录的表只有两列,两个int都有,它的返回速度会比一个100万条记录的表快得多,这个表有50列,其中包括一些大列,特别是当它们是像存储为数据库对象的文档或包含太多文本而无法放入普通varchar或sql server中的nvarchar字段,例如,这些字段将是nvarcharmax或文本。我认为这是因为即使有更多的记录,返回的总数据也会更少


当您开始添加where子句和联接时,当然还有更多的事情会影响独立查询的性能。如果您查询数据库,您应该阅读一本关于特定数据库性能调优的好书。您可以在没有意识到的情况下做很多事情,这可能会导致查询的运行速度比需要的慢。您应该学习创建最有可能执行的查询的技术。

我认为这对于每个数据库服务器都是不同的。尝试在发出查询时监视性能内存和CPU发生了什么变化


最终,所有硬件组件都会遇到瓶颈。如果您接近这一点,服务器可能会“窒息”。

向提供该信息的人询问更多详细信息。一般来说,从一个表中进行选择是一个线性时间操作。对于一百万条记录,还是十亿条记录,这是真的?如果可能的话,请提供一个详细解释这个概念的文章链接。