SQL查询结果大小 - 这是否重要?

时间:2010-10-27 10:01:15

标签: mysql runtime

我有一个返回数据集的SQL查询(MyQSL DB,使用.Net的SqlClient)。如果数据集的大小为4000行或20,那么运行时是否存在显着差异?
此外,与填充结果表的时间相比,查询的执行时间花了多少时间来打开连接等?

感谢。

澄清(编辑):
4000行中的每一行代表文件夹的名称。我想过滤它们,这样用户就不必再看到所有这些,只有那些对它们感兴趣的东西 我不确定什么更好:过滤之前从DB获取名称(它在不同的计算机上),这可能会使我的查询更复杂,或者只过滤视图(树的那个用户看到)。 那4,000行可能会变成40,000行,但我不确定它是否与此问题相关。 再次感谢。

再次编辑:
数据库在网络上,但连接速度很快,比方说100Mbit。

5 个答案:

答案 0 :(得分:1)

不,没有显着差异。选择4000行不会花费200倍选择20行的持续时间 - 差异很小,我想你无论如何都不会注意到它。

但是:如果您的网络连接太慢,可能会出现问题,所以您应该看一下。

答案 1 :(得分:0)

打开连接或建立连接所花费的执行时间可以忽略不计。此外,我不认为按照thosands的顺序获取记录会花费任何特别大的时间,因为数据库经过高度优化以便为数百万条记录提供服务。但是,随着数据集大小的增加,应用程序在运行时会出现一些性能滞后,而不是查询获取时间。

答案 2 :(得分:0)

是或否。忘记执行 - 没有。它是关于网络传输速度(如果数据库在另一台计算机上)和您自己的本地行为。不是数据集本身,而是你用它做什么。浏览器需要更长的时间来渲染4000行而不是20行的表

这些限制影响应该很低。如果4000变成40.000会变得更有趣。

答案 3 :(得分:0)

问问自己这个。如果你必须从Web服务器获得200倍的大文件需要更长的时间吗?我认为db差异取决于db设计,但不会成为问题。将数据放入客户端行的代码性能几乎不是问题。但问题是通过网络传输数据。

当然,您的网络连接速度可能非常快,因此仍然无法实现。

答案 4 :(得分:0)

首先,存在网络I / O成本,它与结果的大小完全成线性关系。

然后有缓冲区大小和数据包大小以及缓存大小等内容,一旦达到一定的大小,就会使查询从非线性悬崖上掉下来。

然后,如果您的表格可以快速找到前20个匹配行,而第21行仅在经过漫长的扫描过程后出现,那么将结果限制为20行将会产生更快的结果。

您需要做的是描述您的特定设置。这是唯一确定的方法。