Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
724 views
in Technique[技术] by (71.8m points)

如何将大数组插入到数据库内。

我想将从公众号内获取到的openid插入到数据库内,通过微信接口API获取到的数据格式如下:

{"total":133617,"count":10000,"data":{"openid":["ou9QFwleDwTNW9xqYq1H-HVP0H4k","ou9QFwnwxDTDMcMrw01aPuMG_5ww","ou9QFwp-hUx7EL5-VUEB-mFPwE_4","ou9QFwnRxH92syjD1cc_tmWdqcqQ","ou9QFwkuk6Pbd-DRkD5DB4GcTOb4" ,"....."]},"next_openid":"ou9QFwhAZKQHMD3CdIP5K6uGNSfU"}

我就想将这个json里面openid数组插入到数据库内,每次大概10000多条,我用axios通过post来插入到数据库?如果出错了怎么办,或者产生丢失?
我使用的后端语言是php,没用过node。 有什么好的办法,解决这个问题,谢谢。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

那你这个问题不应该放在 前端这里呀。这摆明是 php 的问题。甚至说是一个数据库问题。

  1. 前端,axios 通过 post 请求。前端来讲是没有数据量的限制。几十兆都不算事。
  2. 服务端,php 通过什么样的方式呢?合并成一个大的sql语句?还是一条一条插入呢?还是?
  3. 数据库,假装你是 mysql 吧。

    1. 如果是一条一条执行,除了慢一点其实没问题。
    2. 如果是批量执行,你需要把你的执行语句的长度改大一点。会抛出一个错误,直接网上搜就好了。

那么来说说丢数据,重复数据的事情。

  1. 主键。保证不重复
  2. 重试机制。保证不丢失。
  3. 核对总数。看结果

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...