数据库"/>
10万+条Json数据写入到数据库
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
这个是那个网络请求数据 =1&rows=20 page表示请求的第几页,rows表示每页多少条数据;大家可以请求一下,一共有101254条数据;有谁有更好的解决方法,请发我邮箱1072307340@qq,谢谢。
更多推荐
10万+条Json数据写入到数据库
发布评论