项目SSH架构,数据库mysql5,单表没有关联,没有建索引,表有10个字段。现在插入120W左右的List,很慢。每秒大概插入50条。这是BaseDao方法。
public List saveList(List list) {
this.getHibernateTemplate().saveOrUpdateAll(list);
return list;
}这是C3P0池配置
public List saveList(List list) {
this.getHibernateTemplate().saveOrUpdateAll(list);
return list;
}这是C3P0池配置
我也尝试过save(),没有多少提升,治标不治本啊。
或者不用hibernate
这玩意就是比普通的jdbc慢
我用PreparedStatement的时候,设置到200条executeBatch();
然后我去查看数据库,以跟hibernate saveList()相同的速度写入数据。然后继续200-400,400-600.
是我哪里设置的不对吗?
而我修改后同样用PreparedStatement 十万数据要用20多秒。这是什么情况?
请教你个问题,如果我写存储过程交给数据库处理的话,想在有个疑问。这个存储过程不是需要传参数赋值吗?是不是我的dao层,要循环List,去调用存储过程。这样岂不是调用了很多次存储过程?速度能快吗?
例如我的List有100条。调用了100次这个存储过程呀CREATE DEFINER=`root`@`localhost` PROCEDURE `pr_insertSea`(IN guid VARCHAR(64),IN datatime DATETIME,id3 DATETIME,id4 DOUBLE,id5 DOUBLE,id6 VARCHAR(16),id7 VARCHAR(16),id8 VARCHAR(16),id9 DOUBLE,id10 DOUBLE)
BEGIN
INSERT INTO sea VALUES (guid,datatime,id3,id4,id5,id6,id7,id8,id9,id10);
END$$DELIMITER ;