假设我的数据库中有一个包含1.000.000
记录的表。
如果我执行:
SELECT * FROM [Table] LIMIT 1000
这个查询是否会花费与我有1000
记录的表相同的时间,然后执行以下操作:
SELECT * FROM [Table]
?
我不是在寻找是否需要完全相同的时间。我只想知道第一个是否会比第二个花费更多的时间来执行。
我说1.000.000
记录,但它可能是20.000.000
。那只是一个例子。
编辑:
当然,当使用 LIMIT 并且不在同一个表中使用它时,使用 LIMIT 构建的查询应该执行得更快,但我不是在问...
为了使其通用:
Table1
:X
记录
Table2
:Y
记录
(X << Y)
我要比较的是:
SELECT * FROM Table1
和
SELECT * FROM Table2 LIMIT X
编辑2:
这就是我问这个的原因:
我有一个数据库,有 5 个表和其中一些表之间的关系。其中一张表将(我 100% 确定)包含大约5.000.000
记录。我使用 SQL Server CE 3.5、Entity Framework 作为 ORM 和 LINQ to SQL 来进行查询。
我基本上需要执行三种非简单查询,并且我正在考虑向用户显示记录的限制(就像很多网站一样)。如果用户想查看更多记录,他/她可以选择限制更多的搜索。
所以,问题出现了,因为我正在考虑这样做(限制X
每个查询的记录),或者如果只在数据库中存储X
结果(最近的结果),这将需要在数据库中进行一些删除,但我只是在想...
因此,该表可能包含5.000.000
记录或更多记录,而我不希望向用户显示1000
左右,即使这样,查询仍然像返回5.000.000
行一样慢。