cakephp中不需要的计数(*)查询

cakephp中不需要的计数(*)查询,cakephp,Cakephp,正如您所知,在cakephp中,每个find select查询都会生成一个自动计数*查询,cakephp将其用于分页 我正在一个有200万条记录的表中运行一个查询,查询运行时间为0.0016秒。但是cakephp生成的计数*需要几秒钟 有没有办法阻止cakephp运行此查询?我可以禁用或禁用它吗? 我的cakephp版本是1.3 编辑解决: 我发现,当我在查询中使用手动连接时,cakephp find count查询将非常昂贵。因此,解决方案是删除所有手动联接,然后在cakephp pagina

正如您所知,在cakephp中,每个find select查询都会生成一个自动计数*查询,cakephp将其用于分页 我正在一个有200万条记录的表中运行一个查询,查询运行时间为0.0016秒。但是cakephp生成的计数*需要几秒钟 有没有办法阻止cakephp运行此查询?我可以禁用或禁用它吗? 我的cakephp版本是1.3

编辑解决:
我发现,当我在查询中使用手动连接时,cakephp find count查询将非常昂贵。因此,解决方案是删除所有手动联接,然后在cakephp paginate函数中将recursive of find count设置为-1。从现在起,您应该能够找到答案。

您可能还想看看计数*花费太长的原因,一般来说,这些查询不应该太昂贵,表是否正确索引?是的,表已被索引,我已尝试在cakephp core的paginate函数中将count query recursive设置为-1。是否可以直接在数据库中运行查询?如果响应时间没有太大差异,那么您的表设计肯定有问题。@GuillemoMansilla我曾尝试将查询递归设置为-1,并使用手动联接来加快查询速度。这就是导致count*查询速度变慢的原因。手动连接将影响count查询,即使我将其递归设置为-1,在编写单独的paginate函数之前,我可以使用cakephp查询格式运行查询,因此不会生成count*查询。但这不是我想要的。为什么使用自定义分页计数对您来说不是一个可接受的解决方案?你需要一些与众不同的东西,所以需要一些额外的编码。