10万+条Json数据写入到数据库

本文分享了将10万余条JSON数据批量插入数据库的过程与经验,包括多种尝试方法及其优缺点,并最终实现近10分钟内完成数据导入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

10万+条Json数据写入到数据库

101254条数据据耗时近10分钟(5677368毫秒)终于插入到数据中了,咳咳,不要问我这10万多条数据从哪儿弄的(当然是从别人网站那了),能一次性或得到这10万多条数据也真不容易啊,等得我都没什么耐心了

苦逼尝试1

一开始想的是,将这10万多条数据分页查询然后插入到数据库中,于是写了一个循环,准备不断访问那个网站分页获得数据;,但由于不能保证每次都能成功请求数据,于是后来就手动的访问该网站,成功插入数据库后,再访问下一页的数据,我竟然傻傻的访问了203次……但由于部分数据,数据库已经插入过了,所以当再次插入的时候就会catch到异常,所以到最后大概有1000+的数据没有成功插入到数据库中,但从这10万+的数据中找到哪些数据没有插入到数据库中,那得累死我……太坑爹了

苦逼尝试2

打算写个多线程,然后当一个子线程成功获取到json数据后,再成功写入到数据库中后,再开一个线程去访问下一页的数据,依次到访问完这10万+数据,哎,只能怪自己太笨了……写了一顿……竟然没成功……

苦逼尝试3

我想一次性的获得到这10万+的json数据,然后将这些数据都插入到数据库中,但存在的问题有以下几个:

  • 1.因为是json格式数据,需要将所有的数据都接收到后,再进行解析。
  • 2.因为是10万+的json数据,光网络访问获得就需要很长时间,当时花了我近30分钟的时间才在网页中获得全这10万+的json数据
  • 3.将这10万+的数据加载到内存中,也很耗时,会卡死你
  • 4.文件输入输出流更耗时间、内存及CPU

以上是我在多次尝试中遇到的多个问题

我花了近半小时的时间在网页上获得到了10万+的数据,然后复制到记事本中,保存成utf-8编码的,文件大小就45M多了。电脑配置低了可真不行,光用代码读取这个文件就把我的MyEclipse累的要死要死的了。

我希望通过优化我的文件输入输出流读取模块代码,来减轻对硬件的损耗,但是因为Json格式数据,数据必须要保证完整性,才能被解析,这是上面遇到的问题,所以将数据进行切割的方式就算是走到头了。

最后受到浏览器对纯文本文件可以直接解析读取数据,所以我将我的json数据文件放到了tomcat下面发布后,再网页中访问,查看一下效果,果然,在10秒左右基本就能加载完12016/6/2 18:13:09 2016/6/2 18:13:12 0万+数据,用Java代码获取自己发布的数据具体就不太清楚用了多长时间了,因为我只测试了从访问开始到全部插入成功所用的时间一共用了5677368毫秒(近10分钟)成功插入到数据库中###(前面用读文件的方式读半小时都没能成功……)

尝试思路:

可以只解析数组中的数据,因为主要就是数组中的数据,只需要把数据的头尾部分删掉,保证json格式的正确性,然后通过逗号然后将数组中的数据分隔开,这样就可以将JSON数据进行分割了,然后就可以一次性的少加载一些数据到内存中了,这样配置哪怕不是很高的电脑应该也可以轻松解决了

10万+json数据下载    访问密码 dfa8

这个是那个网络请求数据 http://www.tngou.net/api/cook/list?page=1&rows=20   
page表示请求的第几页,rows表示每页多少条数据;大家可以请求一下,一共有101254条数据;

有谁有更好的解决方法,请发我邮箱1072307340@qq.com,谢谢。

课程从基础讲起,全课程以实战为主,每个知识点通过实际案例演练讲解理论+实践结合,更容易理解,适合小白,低门槛,快速上手。 课程同时涵盖web端和移动端app测试,同时还加入了抓包工具的使用; 1) 第一阶段为JMETER 5.4.1 (最新版本)工具使用篇,通过Jmeter 介绍和安装、http 取样器、JDBC 取样器、JMETER 组件详细讲解、配置元件、三种参数化方式教你玩转JMETER 参数化、工作过程中间所需的常用函数、聚合报告、察看结果树、汇总报告等监听器知识,后置处理器、后置处理器之正则表达式提取器提取响应内容实践、读取本地JSON格式文件实例、正则表达式操作符、正则表达式工具之Regextester,系统全面学习正则表达式,突破JMETER 知识难点,响应断言、JMETER分布式、分布式原理、搭建JMETER 分布式、WebService协议接口测试。 每一个知识点采用理论加案例的方式,吃透每一个知识点,为性能测试实践奠定基础。 2) 第二阶段为性能测试实践篇1、通过JMETER 实践爬虫技术,爬取第三方平台全网页地址、批量爬取国外网站壁纸10W+图片并保存到本地;2、详细介绍Fiddler 抓包工具,Fiddler 抓包工具原理、Fiddler 抓取PC 端和移动端包信息、JMETER+Fiddler 结合使用对PC 端项目进行性能测试项目实践,提升PC 端性能测试能力;3、JMETER+Fiddler  结合使用对app 项目进行性能测试项目实践,提升app项目性能测试能力4、性能测试常见的业务指标和技术指标、响应时间、TPS、HPS等知识进行讲解5、通过JMETER 对移动端项目进行性能测试实战; 
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值