Php Zend框架:大型数据库的问题

Php Zend框架:大型数据库的问题,php,zend-framework,memory-management,Php,Zend Framework,Memory Management,我正在做一个关于个性化搜索引擎的项目。 我在寻找优化搜索结果时间的方法时遇到了Zend框架 我正在处理一个包含5000000行和3个字段的数据库,并且我正在尝试使用索引对其进行索引 我是这样做的 使用Zend_Search_Lucene::open()打开索引后;我[正确地]查询数据库, 然后将结果放入$result1中,获取查询结果并使用以下循环处理它们: while( ($row1 = mysql_fetch_array($result1,MYSQL_NUM)) ) {

我正在做一个关于个性化搜索引擎的项目。 我在寻找优化搜索结果时间的方法时遇到了Zend框架

我正在处理一个包含5000000行和3个字段的数据库,并且我正在尝试使用索引对其进行索引

我是这样做的 使用Zend_Search_Lucene::open()打开索引后;我[正确地]查询数据库, 然后将结果放入$result1中,获取查询结果并使用以下循环处理它们:

    while( ($row1 = mysql_fetch_array($result1,MYSQL_NUM)) ) {
                $doc = new Zend_Search_Lucene_Document();           
                $doc->addField(Zend_Search_Lucene_Field::UnIndexed('catid',$row1[0]));
                $doc->addField(Zend_Search_Lucene_Field::Text('topic',$row1[1]));
                $doc->addField(Zend_Search_Lucene_Field::Text('title',$row1[2]));

                $index->addDocument($doc);

    }
$index->optimize();
$index->commit();   

问题是我从来没有得到超过3000个addDocuments来工作,每次程序在
$index->addDocument($doc)上“暂停”从未访问超过5000个文档,更不用说提交索引了。有什么想法吗?

将评论移至答案


@Faidon Passias您是从命令行运行的吗

如果是,则默认情况下的最大执行时间为0

否则您可能需要设置


我猜脚本将在特定时间后停止。

是否记录了任何错误?也许您需要增加php.ini中的内存限制……您是从命令行运行的吗?如果是,则默认情况下的最大执行时间为0。否则,您可能需要设置或。我猜脚本在一定时间后会停止。您也可以从表中查询5000000行,例如
select*from tbl limit%u,10000
,而不是
select*from tbl
@Hari K T。伙计,您是史诗般的黄金(:。就是这样!我现在正在运行索引!Thx@azat和抱歉@StarsInMyPocket没有关于错误的更多信息。下次我会有一个更好的问题报告!祝你一切顺利!