事务提交大量sql与合并提交大量sql效率对比
来源:互联网 发布:淘宝9.9元特价专区在哪 编辑:程序博客网 时间:2024/06/15 09:39
事务提交5000条update,耗时:13.79 秒,内存占用:17.88 MB(大量时间消耗在Query生成sql语句上)
$startTime = microtime(true);$startMemory = memory_get_usage();$transaction = \Yii::$app->db->beginTransaction();for($i=0; $i< 5000; ++$i) { \Yii::$app->db->createCommand()->update(UserMenu::tableName(), ['menu_id' => 4], ['user_id' => $id, 'menu_id' => 3])->execute();}$transaction->commit();$endTime = microtime(true);$runtime = number_format($endTime - $startTime, 2); //秒$endMemory = memory_get_usage();$usedMemory = number_format(($endMemory - $startMemory) / 1024 / 1024, 2); //MBecho("耗时:$runtime 秒,内存占用:$usedMemory MB");
事务提交5000条update,耗时:9.59 秒,内存占用:16.66 MB(一次性生成sql语句)
$transaction = \Yii::$app->db->beginTransaction();$sql = \Yii::$app->db->createCommand()->update(UserMenu::tableName(), ['menu_id' => 4], ['user_id' => $id, 'menu_id' => 3])->getRawSql().';';$startTime = microtime(true);$startMemory = memory_get_usage();for($i=0; $i< 5000; ++$i) { \Yii::$app->db->createCommand($sql)->execute();}$transaction->commit();$endTime = microtime(true);$runtime = number_format($endTime - $startTime, 2); //秒$endMemory = memory_get_usage();$usedMemory = number_format(($endMemory - $startMemory) / 1024 / 1024, 2); //MBecho("耗时:$runtime 秒,内存占用:$usedMemory MB");
合并sql提交5000条update,耗时:13.05 秒,内存占用:0.37 MB(主要时间都耗在Query生成sql语句上了)
$startTime = microtime(true);$startMemory = memory_get_usage();$transaction = \Yii::$app->db->beginTransaction();$sql = '';for($i=0; $i< 5000; ++$i) { $sql .= \Yii::$app->db->createCommand()->update(UserMenu::tableName(), ['menu_id' => 4], ['user_id' => $id, 'menu_id' => 3])->getRawSql().';';}\Yii::$app->db->createCommand($sql)->execute();$transaction->commit();$endTime = microtime(true);$runtime = number_format($endTime - $startTime, 2); //秒$endMemory = memory_get_usage();$usedMemory = number_format(($endMemory - $startMemory) / 1024 / 1024, 2); //MBecho("耗时:$runtime 秒,内存占用:$usedMemory MB");
合并sql提交5000条update,耗时:4.84 秒,内存占用:0.00 MB(一次性生成sql语句)
$transaction = \Yii::$app->db->beginTransaction();$sql = '';for($i=0; $i< 5000; ++$i) { $sql .= \Yii::$app->db->createCommand()->update(UserMenu::tableName(), ['menu_id' => 4], ['user_id' => $id, 'menu_id' => 3])->getRawSql().';';}$startTime = microtime(true);$startMemory = memory_get_usage();\Yii::$app->db->createCommand($sql)->execute();$transaction->commit();$endTime = microtime(true);$runtime = number_format($endTime - $startTime, 2); //秒$endMemory = memory_get_usage();$usedMemory = number_format(($endMemory - $startMemory) / 1024 / 1024, 2); //MBecho("耗时:$runtime 秒,内存占用:$usedMemory MB");
阅读全文
0 0
- 事务提交大量sql与合并提交大量sql效率对比
- sql postgres 事务提交
- SQL 事务提交
- Gerrit如何提交大量代码
- ajax post 提交大量数据
- QT中sql事务提交
- sql大量数据分页
- Sql 查看未提交事务 未提交事务
- SQL SERVER的事务未提交与死锁问题。
- 在进行INSERT INTO大量数据时,删除日志可以提交效率
- FORM表单提交大量数据溢出问题
- AJAX大量数据xml格式提交
- Flex 用 POST 提交大量数据
- st大量参数提交方案参考
- Hibernate 事务提交sql语句的顺序
- Hibernate 事务提交sql语句的顺序
- SQL查询未提交事务的方法
- Hibernate 事务提交sql语句的顺序
- css3提示文字弹窗代码
- 安装VirtualBox的时候遇到的问题
- Java实现矩形覆盖
- 虚析构函数
- SQLServer中char、varchar、nchar、nvarchar的区别:
- 事务提交大量sql与合并提交大量sql效率对比
- 液压油缸修复时对液压油选择的要求
- 随机抽奖
- SpringMVC自学系列(1)——入门了解
- 设计模式之模板方法模式
- SDE For PostgreSQL数据库改名方法
- Debian8.8开发环境(二)安装程序设置
- ACM:K: 抛硬币
- pytorch 入门