mysql 存储过程循环插入数据
2015-07-23 14:40
645 查看
DELIMITER $$ USE `test`$$ DROP PROCEDURE IF EXISTS `test_insert`$$ CREATE DEFINER=`root`@`localhost` PROCEDURE `test_insert`() BEGIN SET @i=1; SET @value='值'; SET @max=10000000; SET autocommit=0;-- 禁止自动提交 START TRANSACTION; WHILE (@i<=@max) DO INSERT INTO t_part_test VALUES (@i,CONCAT(@value,@i)); IF (@i%10000=0) THEN COMMIT; END IF; SET @i = @i + 1; END WHILE; COMMIT; SET autocommit=1;-- 禁止自动提交 END$$ DELIMITER ;
插入一千万条数据 16分钟
调用存储过程:call test_insert
2. loaddata加载数据
java生成导入文件
File file2 = new File("D:\\localdata2.txt"); try { if (file2.exists()) { System.out.println("文件存在"); boolean deleteFlag = file2.delete(); if (deleteFlag) { System.out.println("文件删除成功"); } } file2.createNewFile(); // 文件的创建,注意与文件夹创建的区别 } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } /** * 最简单的文件读写方法是使用类FileWriter * (它的父类依次是java.io.OutputStreamWriter——>java.io. * Writer——>java.lang.Object ); */ // 下面是向文件file2里面写数据 try { FileWriter fileWriter = new FileWriter(file2); StringBuilder sbStr = new StringBuilder(); int maxValue = 10000000; for (int i = 1; i <= maxValue; i++) { if (i == maxValue) { sbStr.append(i + "," + "值" + i); }else{ sbStr.append(i + "," + "值" + i + "/n"); } } fileWriter.write(sbStr.toString()); fileWriter.close(); // 关闭数据流 } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
loaddata 执行耗时10分钟
LOAD DATA LOCAL INFILE 'D:\\localdata.txt' INTO TABLE t_part_test3(id,detail) FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';
相关文章推荐
- MySQL创建Function时报的1418错误代号解决办法
- MySQL Cluster: Two webserver setup
- MySQL存储过程中的3种循环
- MySQL存储过程详解 mysql 存储过程
- MySql可视化工具MySQL Workbench使用笔记
- mysql -- 预处理语句
- [转发] 老叶观点:MySQL开发规范之我见
- Mysql slave 状态之Seconds_Behind_Master
- Mysql查询大表出现的一个错误
- Mysql大量插入随机数据方法--存储过程
- MySQL分组排序
- MySQL Study之--MySQL普通用户无法本地登陆
- MySQL先进的技术-存储引擎
- mysql中kill掉所有锁表的进程
- MySQL的InnoDB和MyISAM区别
- MySQL Study之--MySQL普通用户无法本地登陆
- MySQL函数总结
- mysql导出和导入数据库
- mysql的master和slave同步方案
- MySQL日期数据类型、时间类型使用总结