开发者社区> 问答> 正文

Why so many getmore operations in mongodb when use mongo_fdw?

发帖怎么这么麻烦,编辑10次了,也没成功。
我们线上业务使用pg + mongo,使用mongo_fdw从pg访问mongo。
有这么一个外部表"wb_Cands",对应mongo中的Cands表。
我们有一个业务,就是通过客户id找到对应自己的一条记录: s e l e c t * f r o m "wb_Cands" w h e r e id = 123445;
id字段在mongodb中有索引,且并发量大概几十个。
业务运行时发现,mongo出口流量特别高,但是query个数特别少,cpu占用也低。通过查询mongo日志,发现,每个上述sql执行后,都会伴随一个对Cands表的全表扫描,并getmore获取全表数据,我在业务逻辑中从来没有对Cands表有全表扫描的逻辑。

各位大牛有解决办法吗,占了好几百兆的mongo出口流量啊?

这个发帖框有问题,我发点日志,就说我攻击,这个帖子我已经发了5次了,每次说攻击,回去后又得重写内容。
具体见github吧。
https://github.com/EnterpriseDB/mongo_fdw/issues/63

展开
收起
lifubang 2016-09-22 10:21:48 3912 0
2 条回答
写回答
取消 提交回答
  • nodejs mongodb

    explainverbose


    e1


    Foreign Scan on public."wb_Cands_Writeable" (cost=0.00..0.00 rows=1000 width=4)
    Output: "confirmState"
    Filter: ("wb_Cands_Writeable".id = 4392325::bigint)
    Foreign Namespace: hello-world.Cands


    Foreign Scan on public . "wb_Cands_Writeable" (cost=0.00..0.00 rows=1000 width=4)
    Output: "confirmState"
    Filter: ("wb_Cands_Writeable" . id = 4392325::bigint)
    Foreign Namespace: hello-world . Cands


    e1

    2019-07-17 20:11:14
    赞同 展开评论 打赏
  • 公益是一辈子的事, I am digoal, just do it. 阿里云数据库团队, 擅长PolarDB, PostgreSQL, DuckDB, ADB等, 长期致力于推动开源数据库技术、生态在中国的发展与开源产业人才培养. 曾荣获阿里巴巴麒麟布道师称号、2018届OSCAR开源尖峰人物.

    explain verbose s e l e c t * f r o m "wb_Cands" w h e r e id = 123445;
    看看remote query是什么

    2019-07-17 20:11:14
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
MongoDB Best Practice 立即下载
ApsaraDB for MongoDB 立即下载
HTAP DB HTAP DB —System : ApsaraDB HBase Phoenix and Spark 立即下载