gpt4 book ai didi

php - MySQL 插入查询进度变慢

转载 作者:行者123 更新时间:2023-11-29 22:29:55 26 4
gpt4 key购买 nike

我使用 Yii createCommand QueryBuilder 并构建下面的插入查询,下面的代码工作起来就像魅力(在 3 秒内插入 6000 条记录),但一段时间后它的速度变得非常慢。

我的代码:

$taskmodel = TaskModel::model()->findAll($cri); // filtering using some criteria
$now = new DateTime();

foreach( $taskmodel as $tsk ) {
$recall_date = $tsk['recall_date'] == "" ? "null" : '"'.$tsk['recall_date'].'"';
$recall_agent = $tsk['recall_agent_id'] == "" ? "null" : $tsk['recall_agent_id'];
$next_date = $tsk['next_action_date'] == "" ? "null" : '"'.$tsk['next_action_date'].'"';
$pc_color = $tsk['postcode_color'] == "" ? "null" : '"'.$tsk['postcode_color'].'"';
$cpc_id = $tsk['crm_campaign_post_code_id'] == "" ? "null" : $tsk['crm_campaign_post_code_id'];
$priority = $tsk['priority'] == "" ? 10 : $tsk['priority'];
$field1 = "null" ;
$field2 = "null"
$field3 = "null"
$field4 = "null" ;
$contact_timezone = $tsk['contact_timezone'] == "" ? "''" : '"'.$tsk['contact_timezone'].'"';

$sql[] = '('.$tsk['crm_task_id'].', '.$tsk['crm_campaign_id'].', "'.$tsk['crm_contact_id'].'", "'.$now->format('Y-m-d H:i:s').'", "'.$now->format('Y-m-d H:i:s').'
", '.$tsk['crm_filter_id'].', '.$tsk['current_status'].', '.$priority.', '.$recall_date.', '.$recall_agent.', '.$next_date.
', '.$pc_color.', '.$cpc_id.', '.$sort.', '.$field1.', '.$field2.', '.$field3.', '.$field4.', '.$contact_timezone.', '.$tsk['is_active'].')';
}

if(sizeof($sql) > 0){
$ins ='INSERT INTO crm_pending_task (crm_task_id, crm_campaign_id,crm_contact_id,created,updated,crm_filter_id,
current_status,priority,recall_date,recall_agent_id,next_action_date,postcode_color,crm_campaign_post_code_id,sort,
field1,field2,field3,field4,contact_timezone,is_active) VALUES '.implode(',', $sql);
Yii::app()->db->createCommand($ins)->execute();
}

我发现了一些有趣的东西,插入50000条记录后它变得很慢!为什么会这样???

如何提高插入查询速度直到完成所有插入?

最佳答案

我认为是因为您的请求占用了太多内存并且您正在交换。

要释放一些内存,您不应该尝试启用 Gc 并在 foreach 中启动它(也许不是在每次迭代时)

    gc_enable();
gc_collect_cycles();

关于php - MySQL 插入查询进度变慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29896063/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com