所以基本上问题在于在activedataproviderSELECT COUNT(*)
的函数中执行的查询。calculateTotalItemCount
据我了解,它需要对$itemcount
变量进行分页。问题是这个查询对于大表来说很慢。对于我的 ~30m 表,它执行 5 秒。所以有两种方法可以解决这个问题: 1.禁用分页('pagination'=>'false'
)并编写自己的分页。2.重写AR计数功能。
我没有足够的经验/知识来完成这个。也许有人以前遇到过同样的问题,可以分享他的解决方案。
至少totalItemCount
我们可以使用EXPLAIN SELECT *
. 它的方式更快。
我很感激任何帮助。谢谢你。