mysql插入大量数据

寒熊 发布于 2013/09/12 09:25
阅读 1K+
收藏 0
问下大家,现在想测试一下数据库的性能,希望在数据库中插入大量数据比方说100万条, 插入数据不需要意义,请问如何进行插入
加载中
0
酒逍遥
酒逍遥
生成100w条sql 语句...一条一条执行.
0
backtract
backtract
可以用java语言写个jdbc小程序,分次批量插入。
0
小神混混

可以用load data命令批量导入,首先建立表,然后批量化数据

寒熊
寒熊
是这样的,我现在手头上么现成的数据,能用什么方法随机生成数据到mysql中
0
黑man巴

大量数据插入用 jdbc  preparestatement  batch

数据生成要看你建的表咯, 你建一个表 id字段 int型自动增长  再来一个int型的字段,用for循环100W次的 i 代替

0
黑man巴
public static void saveArticleList(List<ArticleBean> list) {
		Connection connection = DBUtil.getConnection(url,username,password);
		PreparedStatement ps = null;
		String sql = "insert into XXX(number) values(?)";
		try {
			int i = 0;
			connection.setAutoCommit(false);
			ps = connection.prepareStatement(sql);
			while (i<1000000) {
				i++;
				ps.setInt(1,i);
				ps.addBatch();
			}
			ps.executeBatch();
			connection.commit();
			ps.clearBatch();
			System.out.println("已经插入"+i+"条数据");
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		try {
			if (ps != null) {
				ps.close();
			}
		} catch (Exception e) {
			System.out.println("ps close exception: " + e.getMessage());
		}
		try {
			if (connection != null) {
				connection.close();
			}
		} catch (Exception e) {
			System.out.println("connection close exception: " + e.getMessage());
		}		
	}
0
梅开源
梅开源

以前弄过

赞成黑man巴,要用prepare

0
wgzh159
wgzh159

写个存储过程:

DELIMITER $$

USE `test`$$

DROP PROCEDURE IF EXISTS `proc_data`$$

CREATE PROCEDURE `proc_data`(IN iteme INT)
BEGIN
DECLARE var INT DEFAULT 0;
START TRANSACTION;
WHILE var<iteme DO
INSERT INTO table_name(dealerid,NAME,brand,TYPE,kinds,quantity,price,publishday,limitdays,days,province_name) VALUES (4,'测试用户一','奥迪','A3',2,23,22,'2013-05-19 17:51:15','2013-05-20 17:51:15',1,'北京市');
SET var=var+1;
END WHILE;
COMMIT;
END$$

DELIMITER ;

调用方式:

call proc_data(10000)

0
魔力猫
魔力猫
不需要意义?直接来个卡笛尔积就能出来好多好多
0
wgzh159
wgzh159

引用来自“魔力猫”的答案

不需要意义?直接来个卡笛尔积就能出来好多好多
这个怎么弄呢?
魔力猫
魔力猫
你说了,不需要意义那么,insert... select就是。select查询几个表,连接无过滤条件,那么就是全交集了。
0
Ryan-瑞恩
Ryan-瑞恩
使用batch当达到1000条或者更多的时候,再进行提交!!!
返回顶部
顶部