php - PHP/MySQL 查询速度慢。重新考虑请求的帮助。 (160k 和 300 行表长度)

标签 php mysql performance refactoring timeout

所以我有一个“注释”字段,该字段将一行(分配的用户 ID)更新为新的 ID。注释大约是。长度为160k。 users 表大约有 300 个。

对于每个注释行,我将分配的用户 ID 与用户表进行比较,如果找到匹配项,则获取新的用户 ID 并更新注释表。重复冲洗:

//dis-allow timeout. Was timing out consistently under 100 rows changes.
set_time_limit(0);
ignore_user_abort(1);

//foreach note
$counter = 0;
foreach ( $msCRMAnnotations as $key=>$value)
{

    //foreach user, check for match between assigned_user_id and id_mscrm
    foreach( $sugarCRMUsers as $key2=>$value2 )
    {
        if($value['assigned_user_id'] == $value2['id_mscrm'] )
        {
            //give some output as to what is changing...
            echo("Note #"  . $counter++ . " - Note id " . $value['id'] . "  is assigned to user " . $value2['user_name'] . ".<br />" );

            $query = "
                UPDATE `notes`
                SET `assigned_user_id` = '" . $value2['id'] . "'
                WHERE `id` = '" . $value['id'] . "' AND
                `assigned_user_id` = '" . $value['assigned_user_id'] . "'
            ";
            $DB->query($query);
            //unset($query);
        }
    }
}

具体来说,我们正在将选定的数据从 MsCRM 迁移到 SugarCRM。这是项目的帐户/注释/用户阶段。

现在的问题是......我怎样才能最好地重构上面的代码以提高性能?非常感谢任何和所有的帮助。

最佳答案

根据评论假设:

尝试为这些列设置索引,以加快搜索速度。

关于php - PHP/MySQL 查询速度慢。重新考虑请求的帮助。 (160k 和 300 行表长度),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12164172/

相关文章:

mysql - : ADDTIME or plain INTERVAL to create time? 用什么比较好

android - 缓存数据android应用程序的最佳方法

PHP 从两个不同的表中选择 *?

php - Mysql每次执行选择切换行

php - 导出为 CSV 也会导出页面代码

php - 通过 jQuery Ajax 传递用户输入的文本,然后将结果输出给用户

sql - 如何在 MySQL 中执行 FULL OUTER JOIN?

php - 如何使用相同的 APC 缓存运行多个 PHP 站点?

python - Numpy 舍入性能

performance - for 循环 : why is i++ slower than i = i + 1 in swift