检测语言; CakePHP updateAll 性能不佳

Detect Languages; CakePHP updateAll Bad Performance

更新:我认为 cakePhp updateAll 是问题所在。如果我取消注释 updateAll 并 pr 结果,我会在 1-2 秒内得到如此多的语言检测,就像在 5 分钟内!!!!我只需要更新一行,就可以确定那一行的作者和标题……有没有更好更快的方法???

我正在使用 detectlanguage.com 来检测我的 sql 数据库中的所有英文文本。我的数据库包含大约 500.000 行。我尝试了很多方法来更快地检测所有文本的语言。现在需要很多天... :/

我只能同时 运行 6 个功能...(本地主机)...我在新选项卡中尝试了第 7 个功能,但是

Waiting for available socket....

     public function detectLanguageA()
{
    set_time_limit(0);
    ini_set('max_execution_time', 0);

    $mydatas = $this->datas;

    $alldatas = $mydatas->find('all')->where(['SUBSTRING(datas.title,1,1) =' => 'A'])->where(['datas.lang =' => '']);

    foreach ($alldatas as $row) {
    $text = $row->text;
    $textLength = round(strlen($text)*0.2);
    $text = substr($text,0,$ltextLength);
        $title = $row->title;
    $author = $row->author;
            $languageCode = DetectLanguage::simpleDetect($text);

    $mydatas->updateAll(
                ['lang' => $languageCode], // fields
                ['author' => $author,'textTitle' => $title]); // conditions*/

    }
}

我希望有人对我的问题有所了解...现在我所有文本的语言检测将花费一周以上的时间:/ :/

我的电脑 运行 超过 20 小时,几乎没有中断......但我只检测到大约 13.000 条文本的语言......而在我的数据库中有 500.000 条文本......

难不成cakePhp 3.X updateAll-function做的这么慢吗?

问题出在 CAKEPHP updateAll

现在我正在使用:http://book.cakephp.org/3.0/en/orm/saving-data.html#updating-data 和 for 循环,一切都又快又好

use Cake\ORM\TableRegistry;

 $articlesTable = TableRegistry::get('Articles');

    for ($i = 1; $i < 460000; $i++) {
        $oneArticle = $articlesTable->get($i);

        $languageCode = DetectLanguage::simpleDetect($oneArticle->lyrics);

        $oneArticle->lang = $languageCode;
        $articlesTable->save($oneSong);
    }