【发布时间】:2013-07-02 19:45:39
【问题描述】:
我的组件的数据库中有超过 10,000,000 条记录,我认为 getItems/getListQuery 正在尝试将它们中的每一条加载到内存中。网站上的搜索表单非常缓慢或返回说 php 内存不足。
phpMyAdmin 似乎能够处理显示这些数据 - 为什么不是 Joomla?
奇怪的是,然后使用全局设置的列表限制 5 到一页正确显示项目。
我刚刚看了看,Joomla 的缓存被禁用了——这是把我搞砸了吗?
非常感谢!
【问题讨论】:
-
您的查询是否设置了限制?
-
我认为限制是由全局配置设置的,它似乎可以工作 - 事情是分页的。
-
实际上,我一直在查看
/libraries/legacy/model/list.php和getItems似乎使用getListItems并将结果保存在$this->cache[$store]中。这是否意味着 joomla 会尝试将搜索结果中的所有项目保存在缓存中? -
我尝试放弃除了 100 万条记录之外的所有记录,但它仍然在苦苦挣扎。这是在本地开发机器上运行的,所以它不是服务器的问题。该数据库每行只有 7 个字段,带有一个主键 (id)。我刚刚决定 Joomla 对于记录超过 500k 的网络应用程序不太有用。我什至尝试将 php 中的内存限制提高到荒谬的程度,但它仍然非常缓慢或超时。我正在努力将这个应用程序与 Joomla 集成,但我现在认为这不值得......
-
您使用的是什么版本的 Joomla? (我们部署了 Joomla 扩展,可以从数千个表单提交中生成动态报告,这些表单提交会导致数十万条记录,并且没有发现这个问题)。
标签: caching joomla custom-component records large-data