mysql优化存储过程中批量插入的速度
来源:互联网 发布:淘宝联盟pc客户端 编辑:程序博客网 时间:2024/05/21 06:43
- 第一次操作,每一条数据执行一次插入操作。
一万条数据花费34s,太慢。
CREATE PROCEDURE insertPro(in sum INT)BEGINDECLARE count INT DEFAULT 0;DECLARE i INT DEFAULT 0;set count=0;set i = rand() * 10000;while count<sum do insert into csvimp(name,age,sex) value(i,i+1,i+2); set count=count+1; set i=i+1; commit;end while;end;
- 第二次操作,1000条数据提交一次
一万条数据花费33s多,情况没有改善。
while count<sum do insert into csvimp(name,age,sex) value(i,i+1,i+2); set count=count+1; set i=i+1; if i%1000=0 then commit; end if;end while;commit;
- 第三次操作,一千条数据拼成一个insert
一万条花费0.17s,这速度,直接是原来的200倍。
set @exesql = concat("insert into csvimp(name,age,sex) values ");set @exedata = "";while count<sum do set @exedata = concat(@exedata, ",('", i, "','", i+1, "','", i+2, "')"); set count=count+1; set i=i+1; if i%1000=0 then set @exedata = SUBSTRING(@exedata, 2); set @exesql = concat("insert into csvimp(name,age,sex) values ", @exedata); prepare stmt from @exesql; execute stmt; DEALLOCATE prepare stmt; set @exedata = ""; end if;end while;if length(@exedata)>0 then set @exedata = SUBSTRING(@exedata, 2); set @exesql = concat("insert into csvimp(name,age,sex) values ", @exedata); /* set @exesql = concat("select \"", @exesql, "\" from dual"); */ prepare stmt from @exesql; execute stmt; DEALLOCATE prepare stmt;end if;
1 0
- mysql优化存储过程中批量插入的速度
- MySQL存储过程-批量插入
- MySQL 存储过程 批量插入
- MYSQL批量插入数据存储过程
- MySQL存储过程实现批量插入数据
- mysql利用存储过程批量插入数据
- MySql批量插入数据--存储过程
- 存储过程实现mysql批量插入实例
- mysql存储过程批量插入数据
- 批量插入数据的存储过程
- 批量插入数据的存储过程
- Mysql存储过程批量写入 通过MySQL存储过程、函数来批量插入记录
- mysql批量插入优化
- mysql批量插入优化
- 使用存储过程向MySQL批量插入数据
- mysql存储过程,批量插入10000条数据
- 利用mysql存储过程向数据库批量插入数据
- MYSQL存储过程:批量更新、插入数据、游标
- bootstrap 模态对话框使用帮助及下载
- Linux环境安装mysql后/usr/include/目录下没有mysql目录
- build gradle project info很久
- Mongodb启动命令mongod参数说明
- 需求调研
- mysql优化存储过程中批量插入的速度
- svn使用手册
- UITableView-FDTemplateLayoutCell 与Masonry 一起解决不定高度的cell
- Redis搭建(三)
- RXjava基本操作符
- 大型网站技术架构(二):架构体系的技术介绍
- Material和Shader是什么,两者有什么关系?
- 算法导论2.2-2selection-sort(选择排序)
- c++中Cstring和int相互转换