日期:2014-05-18  浏览次数:20765 次

一个java读写文件的效率问题
20101020061010|808080123100001|1488015462605121|0001|000000001000|1001|20101020|4007|156|20101020|745147|20101020060855|13776413305|A73E0784555C454927D809A3776952114EFCACA0276C6F8B79FDF55558D316021867784F5E08A8143D6B91ACDFD23AC3975A52C52EFB5CA5FD4744227AA4999513324B043D4521F134A787EBD8C67E5023EC63A7CD2C1920A4E04733C4470F2DE757EE9DEE7F34BAA414901BFBB4419E79787CFFD3254B00A9E6985471C0D3ED
20101020064016|808080123100001|1488015462897029|0001|000000001000|1001|20101020|4007|156|20101020|745412|20101020063917|13776413305|8C28C569D19DF848216A8FE00EE5E029F3EC13E5018BDBD0F1CA1C1B80975EE1318E07851516583A894F4D07CF8696FF7E1098ADBBC85E8083E2C99361D476693986F4031A3C9FC9010CF0A34C2CD15551A46D1409DCE365B4FAAFD24DA6073C842865F3B4BBA8DA4F2A0C106F7B618DC9CC5117CAE69099801B226535363C6A
20101020071538|808080123100001|1488015463780929|0001|000000001000|1001|20101020|1023|156|20101020|746973|20101020071458|13705192654|8DFFCA3E5BA75A2A5D02DB69DEF6EF944DE14719B9967D0CF438104A959A3AB8BD8B44FB60D302B0CA56D311BA80951C487D42BBCC2AFD13D783CAD44021DAC3A5E59D28CFD00AB9983D50F71293B56B7894EED16F580378348962C7B14DAB002FE6FEC6EB93F6B8842F4DEC7A9512882DBF358EE2E73425485EBA88E9DCE6E2
。。。。。

一个目录下是多个这文本文件,文件中存的是 上面那样的数据,一条条的,对应着数据库中的一条记录,

现在要把数据写入到库中,请问众神有什么高招,提高效率。。。。

------解决方案--------------------
我觉得你可以对这种文件进行加工

用定时器 定时的去将这些信息组装成SQL语句存储到另一个文件中

另一个定时器只需要读取写着SQL语句的文件 然后将SQL 拼接成程序段 
例如用begin 50个INSERT的SQL end;
这种批量提交执行的SQL来提升 入库的效率
------解决方案--------------------
比如你的文件,如果字段顺序对应没问题的话
LOAD DATA LOCAL INFILE 'C:/abc.txt'
INTO TABLE table
COLUMNS TERMINATED BY '
------解决方案--------------------
'


------解决方案--------------------
引用:
比如你的文件,如果字段顺序对应没问题的话
SQL code
LOAD DATA LOCAL INFILE 'C:/abc.txt'
INTO TABLE table
COLUMNS TERMINATED BY '
------解决方案--------------------
'

原来MYSQL也能实现这样的功能啊,不错
oracle中是使用sqlldr(SQL*LOADER)实现
demo.ctl如下
load data infile datadome.dat "str X'7C'"