使用web方式导入如果导入大量数据
2008-01-12 17:16
288 查看
在一些大型的可运行,可维护的系统中,经常需要具备大量导入数据的功能,而因为不同的应用,使用的方法和技术可能也不尽相同,下面,我从开发的几个项目中,来总结一些应该注意的方法和问题。
1 使用同步的方式,该方式是,当导入数据的时候,就同步完成和导入相关的一切事情,该方式的优点是,可以在一次中,做完所有的导入工作,效果非常明显。
但是缺点也非常明显,就是数据导入速度可能非常慢(一般导入数据后,需要做一些相应的处理)
如果该导入中,不仅仅是涉及到一个DB,那么问题可能更复杂,因为不同的数据,一个使用hibernate进行持久化,另外一个数据库,使用JDBC连接,最后,因为这两种连接方式的不提交数据的机制不一样,非常容易出现,使用hibernate已经提交了,但是使用JDBC无法查询的现象。
2 分步式处理,就是,导入数据,如果需要做3件事情,那么,第一步是写入到相应的table里面,第二步是把和他相关的数据,根据状态,发布到另外一个DB或者是需要进行处理,第三步是结果输出。在这样的一个导入流程中,我们使用分步的方式将是非常合理的,这样,用户在导入原始数据将会非常的块,并且,不会因为网络的延时或者DB的重负荷,出现失败的数据。
使用该方式,必须合理的切分步骤,使得运行效率达到最优。
1 使用同步的方式,该方式是,当导入数据的时候,就同步完成和导入相关的一切事情,该方式的优点是,可以在一次中,做完所有的导入工作,效果非常明显。
但是缺点也非常明显,就是数据导入速度可能非常慢(一般导入数据后,需要做一些相应的处理)
如果该导入中,不仅仅是涉及到一个DB,那么问题可能更复杂,因为不同的数据,一个使用hibernate进行持久化,另外一个数据库,使用JDBC连接,最后,因为这两种连接方式的不提交数据的机制不一样,非常容易出现,使用hibernate已经提交了,但是使用JDBC无法查询的现象。
2 分步式处理,就是,导入数据,如果需要做3件事情,那么,第一步是写入到相应的table里面,第二步是把和他相关的数据,根据状态,发布到另外一个DB或者是需要进行处理,第三步是结果输出。在这样的一个导入流程中,我们使用分步的方式将是非常合理的,这样,用户在导入原始数据将会非常的块,并且,不会因为网络的延时或者DB的重负荷,出现失败的数据。
使用该方式,必须合理的切分步骤,使得运行效率达到最优。
相关文章推荐
- 在Web界面中实现Excel数据大量导入的处理方式
- 为什么在Cassandra版本0.6.1中不适合使用Binary Memtable的方式导入大量的数据。
- 使用JS代码把WEB页面的数据导入Excel,代码如下:
- ORCLE数据库 使用数据泵方式导入导出数据的误区分析
- 关于Webdriver自动化测试时,页面数据与数据库id不一致的处理方式,需要使用鼠标事件
- Oracle导入大量数据时使用控制文件导入数据的方法
- java使用copy in 的方式把数据导入postgres或greenplum
- SQL使用bcp方式导入,导出数据2
- oracle使用impdp方式导入数据
- SqlBulkCopy使用心得 (大量数据导入)
- 使用Echarts制作散点图(Excel导入数据方式)
- 在非英文字符集的页面上,如果使用Ajax方式进行数据交互的话,就必须要注意保证前后端数据的统一编码,否则,很容易就出现乱码!
- 使用SQL Loader导入大量数据,避免使用SQL频繁写库
- C#使用oledb方式将excel数据导入到datagridview后数据被截断为 255 个字符
- oracle使用impdp方式导入数据
- 使用SQL Loader导入大量数据,避免使用SQL频繁写库
- 在c#中使用HttpWebRequest时的几种提交数据方式学习和分析
- 在oracle中 生成大规模数据 500万条 (使用导入数据方式 sqlldr 导入命令 *.ctl文件)
- 使用管道的方式导入导出数据