0

所以我有这个 cron 脚本,它在主机上使用 Cron 部署和运行,并为数据库表中的所有记录编制索引 - 该索引稍后用于站点的前端和支持的操作。

操作后,索引大约为 3-4 MB。

问题是它需要大量资源(CPU:30+ 和大量内存)并减慢机器速度。我的问题是关于如何优化下面描述的操作:

首先有一个使用 Zend Framework API 构建的选择查询,然后将该查询传递给一个分页器工厂,该工厂返回一个分页器,我用它来平衡当前被索引的项目数,而不是迭代太多的项目。该脚本使用 foreach 循环遍历分页器对象中的当前项目,直到到达末尾,然后在获取下一页的项目后从头开始。

我怀疑这种开销是由 Zend_Lucene 引起的,但不知道如何改进。

4

1 回答 1

1

请参阅我对Can I predict 我的 Zend Framework 索引有多大的回答?

我测试了 Zend_Search_Lucene 与 Apache Lucene(Java 版本)。在我的测试中,Java 产品索引 150 万份文档的速度比 PHP 产品快 300 倍。

使用 Apache Solr(Apache Lucene 的 Tomcat 容器)您会更开心。Solr 包含一个名为DataImportHandler的工具,它直接从 JDBC 数据源中提取数据。

使用 PECL Solr扩展从 PHP 与 Solr 进行通信。如果您无法安装该 PHP 扩展,请使用Curl,它应该在 PHP 的默认安装中可用。

于 2010-04-24T19:03:39.593 回答