gpt4 book ai didi

mysql - Yii 框架——InnoDB 与 MyISAM

转载 作者:可可西里 更新时间:2023-11-01 06:38:36 25 4
gpt4 key购买 nike

我有一个问题:我用 Yii 和 InnoDB 构建了一个大型应用程序并遇到了问题,插入/更新持续时间真的很长,这是我的 php 报告:

创新者:admin 用户更新 55.247464895248 秒ekuskov 用户更新 13.282548904419 秒doriwall 用户更新0.002094030380249秒

MyISAM:admin 用户更新 7.8317859172821 秒ekuskov 用户更新 1.6304929256439 秒doriwall 用户更新0.0020859241485596秒

谁能提出一些解决方案来加快插入/更新速度?

编辑--------------------------------------------

现在我使用了一些非常简单的插入循环:

public function run($args) {
$time = -microtime(true);

$begin = DateTime::createFromFormat('Y-m-d H:i:s', '2010-01-01 00:00:00');
$end = DateTime::createFromFormat('Y-m-d H:i:s', '2013-01-01 00:00:00');
$end->add(new DateInterval('P1D'));
$interval = DateInterval::createFromDateString('1 day');
$days = new DatePeriod($begin, $interval, $end);


foreach ( $days as $day ) {
echo "i";
$track = new TimeTracking();
$track->user_id = 25;
$track->date = $day->format('Y-m-d H:i:s');
$track->active = 4;
$track->save(false);
}

$time += microtime(true);
echo count($days)." items insert - $time seconds\n";
}

现在插入时间如下:

InnoDB:项目插入 - 72.269570827484 秒

MyISAM:项目插入 - 0.87537479400635 秒

[编辑] 现在我正在计算整个 SAVE 方法和 Yii 模型“save()”函数的时间:

更新:模型->保存(假)- 0.1096498966217 秒

更新: Controller 保存功能 () - 0.1302649974823 秒

创建:模型->保存(假)- 0.052282094955444 秒

创建: Controller 保存函数 () - 0.057214975357056 秒

为什么 save() 方法需要这么长时间?

[编辑] 我测试了 save() 与 command(),它们的持续时间相同:

$track->save(false);

$command = Yii::app()->db->createCommand();
$command->insert('timeTracking', array(
'id'=>NULL,
'date'=>$track->date,
'active'=>$track->active,
'user_id'=>$track->user_id,
));

编辑 ------------------------------

这是插入 1,097 个对象的统计数据:

save(): 0.86-0.94, 
$command->insert(): 0.67-0.72,
$command->execute(): 0.46-0.48,
mysql_query(): 0.33-0.36

最终答案:如果您想使用一些大量的 INSERT 或 UPDATE 方法,您应该考虑使用直接 MYSQL 调用创建函数,这样您将节省近 70% 的执行时间。

问候,

埃德加

最佳答案

在插入和更新时对表进行爬行可能表明您对索引有点过头了。请记住,数据库必须在每次提交后停止并重新编译索引。

关于mysql - Yii 框架——InnoDB 与 MyISAM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14932341/

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