当前位置: 首页 > news >正文

自己做网站 教程中企动力科技股份有限公司佛山分公司

自己做网站 教程,中企动力科技股份有限公司佛山分公司,手机网站欢迎页面设计,网站速度怎么提升背景 最近在做Mongo上的表数据的迁移,原本应该是DBA要干的活,但是想着DBA排期比较长,加上我们开发的权限又非常有限,而且数据量又没有多少,就想着自己开发个小小的程序从旧实例上查,写到新实例上去算了。于…

背景

最近在做Mongo上的表数据的迁移,原本应该是DBA要干的活,但是想着DBA排期比较长,加上我们开发的权限又非常有限,而且数据量又没有多少,就想着自己开发个小小的程序从旧实例上查,写到新实例上去算了。于是就遇到了今天要分享的这个坑。

有问题代码

这个方法目的是查询表的所有数据,但是返回的结果实际会有问题,返回来的并非全量数据。原因是分好页之后,在去查询每页的数据的时候都重新再查询了下集合,然后再取分页数据,这个过程中有其他的线程也去修改这个集合的数据,集合数据变化了就会导致查询到的分页数据不正确。

   /*** 这个方法目的是查询表的所有数据,但是返回的结果实际会有问题,会出现数据不完整* 原因是分好页之后,查询每页的数据的时候都重新查询了集合,这个过程中有其他的线程也去修改这个集合的数据,* 集合数据变化了就会导致查询到的分页数据不正确。* @param dbName* @param tableName* @return*/public List<Document> queryCollections_Error(String dbName, String tableName) {List<Document> result = new ArrayList<>();long count = this.count(dbName, tableName);int pageSize = 1000;for (int idx = 0; idx < count; idx += pageSize) {result.addAll(this.queryCollectionsByPage(dbName, tableName, idx, pageSize));}return result;}

改正后的代码

改正后的代码,是只能保证了在程序开始运行的这一刻mongo表的快照的数据同步到新表是准确的,但是同步程序运行过程中如果表数据发生了变更,这部分数据是没有变更到新实例上面去的,这个大家需要注意。我们的业务是对内的业务,而且数据量不大,因此在同步的时候禁写掉这个服务中断时间可以接受。如果是不可接受服务中断,那么应该要考虑下全量+增量的方案。

    public List<Document> queryCollections(String dbName, String tableName) {List<Document> result = new ArrayList<>();MongoCollection<Document> mongoCollection = this.mongoClient.getDatabase(dbName).getCollection(tableName);long count = mongoCollection.countDocuments();int pageSize = 1000;for (int idx = 0; idx < count; idx += pageSize) {FindIterable<Document> iterable = mongoCollection.find().skip(idx).limit(pageSize);iterable.forEach(new Block<Document>() {@Overridepublic void apply(Document document) {result.add(JSON.parseObject(JSON.toJSONString(document), Document.class));}});}return result;}

完整代码

下载

http://www.yayakq.cn/news/136106/

相关文章:

  • 网站背景怎么设置德州seo优化
  • 有没有必要给企业做网站布吉网站设计
  • 各种购物网站大全济宁市住房和城乡建设局网站
  • 广州建网站哪里比较好体验好的网站
  • 网站网页设计项目计划书wordpress josn查询
  • 成都网站游戏设计长沙智能建站模板
  • 神华集团两学一做网站手机 网站开发aspx
  • 电子商务网站建设项目服饰网站建设 e-idea
  • 宁波网站建设官乐清网站优化推广
  • 邢台网站优化建设做视频网站需要多少带宽
  • 兰州网站seo优化公司谷歌seo文章
  • 江西省城乡建设厅网站查询证件vps如何搭建网站
  • 沈阳手机端建站模板wordpress微信服务号登录
  • 湖南企业网站制作济宁网站建设第一品牌
  • 装修网站开发思路潍坊医院网站建设
  • 重庆梁平网站建设费用开源微信商城源码
  • 南京建设网站维护网站后台上传图片步骤
  • 东营做网站seo的百度智能创作平台
  • 天津哪里有做网站的网站开发哪种语言比较好
  • 大屏网站模板网络推广软件排行
  • 淘宝网站750海报怎么做河南做网站的公司有哪些
  • 四线城市做网站建设怎么样设计说明怎么写200字
  • 商城网站制作公司怎么样模仿一个网站做简历
  • 查网站域名备案做电脑系统的网站
  • 沧州网站建设开发服务网站正能量晚上在线观看
  • 网站做cdn服务流量wordpress 作者名称
  • 网页设计茶叶网站建设网站制作一般怎么收费
  • 石家庄开发网站爱上链外链购买交易
  • 彩票网站开发解决方案百度手机提高关键词排名
  • 莱州做网站建站工作室 网站建设工作室