如何删除或更改postgresql上的cakephp分页计数查询?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何删除或更改postgresql上的cakephp分页计数查询?相关的知识,希望对你有一定的参考价值。
我正在使用带有postgresql的cakephp。我的一些表非常大。当使用cakephp的分页时,它在大表上运行COUNT()
然后查询实际结果。计数查询需要2.5分钟,而返回数据的实际查询需要95毫秒。
是否有可能不需要计数,或用可能更快的东西替换它?我不需要返回确切的行数,就像Google搜索返回约765,000的结果1-10的方式一样。
编辑:或者,有没有办法可以完全禁用计数?通常会有很多结果知道不需要多少页面。我需要的是一个“下一步”按钮,它增加了像蛋糕分页已经拥有的SQL OFFSET,如果下一页没有返回任何行,那就没问题了。
答案
我找到了绕过cakephp中的分页计数查询的方法。在要分页的模型中,您可以覆盖运行计数查询的函数,函数是paginateCount($conditions = null, $recursive = 0, $extra = array())
我使用以下代码来解决我的问题:
function paginateCount($conditions = null, $recursive = 0, $extra = array()) {
return 0;
}
然后我在视图中编辑了分页以始终显示下一个按钮。转到没有结果的页面只会显示任何内容。
另一答案
官方文档使您能够强制蛋糕获取实际结果:http://book.cakephp.org/2.0/en/core-libraries/components/pagination.html#custom-query-pagination
我希望它有所帮助:-)
以上是关于如何删除或更改postgresql上的cakephp分页计数查询?的主要内容,如果未能解决你的问题,请参考以下文章