假设我有一个非常大的数据库,如果我直接执行搜索查询,那么计算返回的行会更快吗?或者使用count(searchquery),然后开始执行查询,如->
SELECT * FROM TABLE WHERE bla='blabla' OFFSET 0 FETCH NEXT 20 ROWS ONLY
我找了一下,但找不到任何解决办法。
k10s72fa1#
在数据库里数数!速度会快得多。首先,一个 count(*) 只返回一行和一个值。这比返回所有行要少得多,而且要快得多。第二,a count(*) 不引用中的任何列 select ,因此可以更好地优化查询。不必查看数据页就可以获得计数。
count(*)
select
egmofgnx2#
你好像在寻呼。你需要总页数来显示总页数并计算给用户的总页数,是吗?戈登的答案才是正确的。
2条答案
按热度按时间k10s72fa1#
在数据库里数数!速度会快得多。
首先,一个
count(*)
只返回一行和一个值。这比返回所有行要少得多,而且要快得多。第二,a
count(*)
不引用中的任何列select
,因此可以更好地优化查询。不必查看数据页就可以获得计数。egmofgnx2#
你好像在寻呼。你需要总页数来显示总页数并计算给用户的总页数,是吗?
戈登的答案才是正确的。