[求助]JavaWeb项目 两个大表 互导
有一张大表,数据量很多。另有一张新表,需要从那个大表把数据导入新表,新表中的个别字段要进行算术运算后再导入。由于特殊原因,要用spring做定时任务,每半小时更新少许数据,以保证服务器的正常运行,求指导,谢谢~ 建议用存储过程,类似于mysql和oracle都有定时器,可以执行存储过程。使用存储过程的好处是
数据库是集合运算,你用java从数据库查出数据,再一条条计算,再插入回去太慢了。
像你这种情况可以这样
例如
A,B表是id int,name varchar(20),age int
我要从A里提取新增的记录到B中,并且age要加1mysql> create table a (id int,name varchar(20),age int);
Query OK, 0 rows affected (0.01 sec)
mysql> create table b (id int,name varchar(20),age int);
Query OK, 0 rows affected (0.02 sec)
mysql> insert into a (1,'a',20);
是一个数据库吗?如果是一个数据库的话直接使用存储过程设置时间调度就行
如果不是同一个数据库,就写一个同步程序,使用SPring调度一下就行(分批处理) yifangyou 发表于 2012-07-25 16:50 static/image/common/back.gif
建议用存储过程,类似于mysql和oracle都有定时器,可以执行存储过程。
使用存储过程的好处是
数据库是集合 ...
谢谢啊!
领导要求不用存储过程,后台分批insert ,但数据太多,慢了急人,快了我担心服务器挂掉。有没有什么优化的办法,struts+ibatis+string架构的项目 回复 4# 709900560
不用存储过程也可以啊,就是用java执行sql时,尽量使用集合操作(可以使用临时表),减少一条条操作,也不要把数据取出来,这样会快很多,担心快而把数据库弄挂完全没有必要
用etl工具,kettle,无需编程。
页:
[1]