SQL计数-大于某个数字而不必获取确切的计数



https://github.com/amatsuda/kaminari/issues/545谈到Ruby分页gem遇到大表时的问题。

当记录的数量很大时,分页将显示类似以下内容:

[1] [2][3][4][5][6][7][8][9][10][…][end]

当记录数量巨大时,这可能会导致性能损失,因为准确计数50M以上的记录需要时间。然而,在这种情况下,只需要知道计数大于the number of pages to show * number of records per page

有没有比获取精确的COUNT更快的SQL操作,后者只会断言COUNT大于某个值x

您可以尝试

SQL Server:

SELECT COUNT(*) FROM (SELECT TOP 1000 * FROM MyTable) X

MySQL:

SELECT COUNT(*) FROM (SELECT * FROM MyTable LIMIT 1000) X

如果运气好的话,SQL Server/MMySQL会优化这个查询。很明显,您应该输入所需的最大页数*每页的行数,而不是1000。

相关内容

最新更新