解析xml并且导入mysql
https://www.zhihu.com/question/28139319
解析超过500G的xml 写入mysql,如何尽快写入?
解析超过500G的xml 写入mysql,如何尽快写入?
1. 用最笨的方法逐行解析写入,好几天不见完。
2. 合并insert value,没100条进行事务写入,还是很慢。
有什么好的建议能尽快将数据导入数据库?
4 个回答
1个xml解析线程,N个insert线程(建议N=32),生产者-消费者模型
每条insert语句插入多条记录
方法(二)
解析xml文件,根据取模写到100个文件中
100个load data infile
读取xml就用一个thread好了,反对上面说多线程读的方案,你的硬盘只有一个读入点,并行读有什么好处?
然後把xml丢到一个pool里去解析xml,每解析一个就丢到存储db的pool里。
根據我的知识,你分多个表是沒有意义的,连续写入一定比random写入快很多阿。
还有,先去掉所有的index,全写完再加回来。
有两种方案
- 可以用解析生成insert batch 语句,再来执行这些语句。
- 解析组装成对象集合,再按阈值进行批量插入。(堆要开大)
以偶的实践来看
- 解析倒不是问题。(2G xml 的解析2-3min) i5 8G
- 性能点是数据库,一定要把索引建好。
如果你的xml 不是特别复杂。可以参照如下脚本分割成100m一个的文件来操作:
shell script:
split -C 100m [filename]
分成多个小型XML, 分开单线程读。照最上方的方案。
解析xml并且导入mysql的更多相关文章
- 解析csv数据导入mysql的方法
mysql自己有个csv引擎,可以通过这个引擎来实现将csv中的数据导入到mysql数据库中,并且速度比通过php或是python写的批处理程序快的多. 具体的实现代码示例: 代码如下: load d ...
- Java中实现SAX解析xml文件到MySQL数据库
大致步骤: 1.Java bean 2.DBHelper.java 3.重写DefaultHandler中的方法:MyHander.java 4.循环写数据库:SAXParserDemo.java ① ...
- python提取xml属性导入Mysql
xml文档来自ganglia-gmond端telnet localhost 8649产生出来的文档,由于ganglia每隔一段时间就更新数据,为了永久保存数据到MySQL中,就用python写了最开始 ...
- SpringMVC文件上传 Excle文件 Poi解析 验证 去重 并批量导入 MYSQL数据库
SpringMVC文件上传 Excle文件 Poi解析并批量导入 MYSQL数据库 /** * 业务需求说明: * 1 批量导入成员 并且 自主创建账号 * 2 校验数据格式 且 重复导入提示 已被 ...
- javaEE学习笔记-利用DOM4J解析xml至数据库
xml代码文件名:test02.xml <ACCESOS> <item> <SOCIO> <NUMERO>00045050</NUMERO> ...
- XML基础+Java解析XML +几种解析方式的性能比较
XML基础+Java解析XML 一:XML基础 XML是什么: 可扩展的标记语言 XML能干什么: 描述数据.存储数据.传输(交换)数据. XML与HTML区别: 目的不一样 XML 被设计用来描述数 ...
- 导入libxml.dylib用Google的GDataXML解析XML数据
1.用Google的GDataXML来解析XML数据,导入libxml.dylib 2.导入libxml.dylib的操作实现,一开始自己总是找不到libxml.dylib文件. 选择其他文件,到路径 ...
- java使用sax解析xml
目的:解析xml文件,并存入mysql,并且要解析的字段能一一对应.这里解析的是微博的文件,想要利用里面的article和person_id字段. 思路: 为了能得到person_id和article ...
- CSS控制XML与通过js解析xml然后通过html显示xml中的数据
使用CSS控制XML的显示 book.css bookname{ display:block;color:Red} author{ display:block;font-style:italic} p ...
随机推荐
- jquery复习笔记
Jquery基础 让一个按钮灰掉 $("button").("disabled","true"); ance desc选择器(ance代表祖 ...
- createjs学习二之flash转canvas学习1
设置发布 或者 导出参数设置 c_lib_main c_images_main/ 导出之后的文件 打开导出的html文件可以看到如下,,可以正常显示的,,只是stop了还不能动 给舞台上某一元素添加点 ...
- JMeter学习-040-JMeter图形化 HTML 报表概要说明
JMeter 3.0开始支持动态生成图形化 HTML dashboard报告,当前生成报告有一下两种方式: 1.脚本测试执行结束后,即生成HTML测试报告 2.通过之前生成的测试结果,生成HTML测试 ...
- Java web学习filter (1)
一.概念:Filter也称之为过滤器,它是Servlet技术中比较激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源: 例如Jsp, Servlet, 静态图片文件 ...
- 关于移动app开发的一些不错的站点
1. http://www.androiddevtools.cn Android Dev Tools官网地址:www.androiddevtools.cn 收集整理Android开发所需的A ...
- iOS duplicate symbol 变量 in 类名 报错
该错误信息是我在一个.h文件里申明了公共变量,然后在其他类里重复使用. Build Settings ->No Common Blocks默认为YES,编译器就报错了,需要修改Build Set ...
- Linux下查看某进程相关进程
1- ps -T <pid> ###pid表示进程号 或者ps -T -p <pid> 2- top -H -p <pid> ###pid表示进程号 3- ...
- [PCL]点云渐进形态学滤波
PCL支持点云的形态学滤波,四种操作:侵蚀.膨胀.开(先侵蚀后膨胀).闭(先膨胀后侵蚀) 在#include <pcl/filters/morphological_filter.h>中定义 ...
- 手机端页面自适应解决方案—rem布局
只需在页面引入这段原生js代码就可以了 (function (doc, win) { var docEl = doc.documentElement, resizeEvt = 'orientation ...
- 1393: Robert Hood 旋转卡壳 凸包
http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1393 http://poj.org/problem?id=2187 Beauty Contest ...