Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL计数-大于某个数字而不必获取准确的计数?_Sql_Ruby On Rails_Ruby - Fatal编程技术网

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

SQL计数-大于某个数字而不必获取准确的计数?,sql,ruby-on-rails,ruby,Sql,Ruby On Rails,Ruby,当Ruby分页gem遇到大表时,有一个线程在讨论它的问题 当记录数较大时,分页将显示如下内容: [1] [2][3][4][5][6][7][8][9][10][完] 当记录数量巨大时,这可能会导致性能损失,因为要准确计算(比如)5000万条以上的记录需要时间。但是,在这种情况下需要知道的是,计数大于要显示的页数*每页记录数 是否有比获取准确的计数更快的SQL操作,它只会断言计数大于某个值x?您可以尝试 SQL Server: SELECT COUNT(*) FROM (SELECT TOP 1

当Ruby分页gem遇到大表时,有一个线程在讨论它的问题

当记录数较大时,分页将显示如下内容:

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

当记录数量巨大时,这可能会导致性能损失,因为要准确计算(比如)5000万条以上的记录需要时间。但是,在这种情况下需要知道的是,计数大于要显示的页数*每页记录数

是否有比获取准确的
计数
更快的SQL操作,它只会断言
计数
大于某个值x?

您可以尝试

SQL Server:

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

SELECT COUNT(*) FROM (SELECT * FROM MyTable LIMIT 1000) X
幸运的是,SQL Server/MySQL将优化此查询。显然,您应该将所需的最大页数*每页的行数*改为1000页。

您可以尝试使用

SQL Server:

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

SELECT COUNT(*) FROM (SELECT * FROM MyTable LIMIT 1000) X
幸运的是,SQL Server/MySQL将优化此查询。显然,您应该将所需的最大页数*每页的行数*改为1000页。

您可以尝试使用

SQL Server:

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

SELECT COUNT(*) FROM (SELECT * FROM MyTable LIMIT 1000) X
幸运的是,SQL Server/MySQL将优化此查询。显然,您应该将所需的最大页数*每页的行数*改为1000页。

您可以尝试使用

SQL Server:

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

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

幸运的是,SQL Server/MySQL将优化此查询。显然,您应该设置所需的最大页数*每页的行数,而不是1000页。

您正在使用的DB client是什么。。Postgresql,MySql。。哪一个?您正在使用的DB客户端是什么。。Postgresql,MySql。。哪一个?您正在使用的DB客户端是什么。。Postgresql,MySql。。哪一个?您正在使用的DB客户端是什么。。Postgresql,MySql。。哪一个?
TOP
功能来自哪个数据库引擎?您是否有一个通用的解决方案,可以在整个数据库中使用?
TOP
功能来自哪个数据库引擎?您是否有一个通用的解决方案,可以在整个数据库中使用?
TOP
功能来自哪个数据库引擎?您是否有一个通用的解决方案,可以在整个数据库中使用?
TOP
功能来自哪个数据库引擎?您是否有一个通用的解决方案,可以在整个数据库中使用?