假设我有一个很大的数据库,如果我直接执行搜索查询,然后计算返回的行,会更快吗?或者使用COUNT(searchquery(,然后开始执行类似->
SELECT *
FROM TABLE
WHERE bla='blabla'
OFFSET 0 FETCH NEXT 20 ROWS ONLY
我找了一下,但找不到任何解决办法。
在数据库中进行计数!它会快得多。
首先,count(*)
只返回一行和一个值。这比返回所有行要少得多,速度也快得多。
其次,count(*)
不引用select
中的任何列,因此可以更好地优化查询。也许可以在不查看数据页的情况下获得计数。
看起来您正在进行分页。你需要总计数来显示总计数并向用户计算总页数,是吗?
Than Gordon的答案是可以使用的。