V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐工具
RoboMongo
推荐书目
50 Tips and Tricks for MongoDB Developers
Related Blogs
Snail in a Turtleneck
oyosc
V2EX  ›  MongoDB

mongodb 大量数据查询涉及到多表关联怎么破?

  •  
  •   oyosc · 2017-07-01 09:48:53 +08:00 · 9718 次点击
    这是一个创建于 2687 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想问下大家 mongodb 大量数据查询的时候,可能会有 10 多个表关联,这个应该怎么办呢?试过 lookup,视图,但都只是两两关联,而且查询速度可想而知会非常慢,这个有什么好的办法解决吗?

    8 条回复    2017-07-01 17:37:18 +08:00
    gouchaoer
        1
    gouchaoer  
       2017-07-01 09:56:56 +08:00 via Android
    换 mysql
    reus
        2
    reus  
       2017-07-01 10:00:15 +08:00   ❤️ 1
    换关系数据库。非关系数据库难当复杂查询的大任,尽早弃用才是。
    推荐 postgresql
    markocen
        3
    markocen  
       2017-07-01 10:09:29 +08:00 via Android
    非关系型数据库应避免多表关联,建议与 ES
    配合使用,或者将查询结果做缓存
    t6attack
        4
    t6attack  
       2017-07-01 10:17:26 +08:00
    因为很多项目根本用不到复杂的关联查询,才有了 nosql 数据库。可以大大提高效率。
    如果涉及到复杂的多表关联,那就老老实实用关系数据库呗。
    billion
        5
    billion  
       2017-07-01 13:22:23 +08:00
    专业的工具做专业的事情,多表关联查询本来就不是 MongoDB 的强项。如果你强行要关联查询,那不如上 Pandas
    zhpech
        6
    zhpech  
       2017-07-01 13:36:05 +08:00
    其实数据库关联无论在关系型数据库还是非关系型数据库都是一个比较慢的操作……

    NoSQL 在设计时就不应该存在太多的关联,如果存在,则应该选择关系型数据库,在设计时一部分可以设计成 subdocument

    之前做过一点微小的总结: https://codesky.me/archives/talk-about-mongodb-collection-design.wind
    pathbox
        7
    pathbox  
       2017-07-01 17:31:01 +08:00 via iPhone
    多查几次呗
    abcfyk
        8
    abcfyk  
       2017-07-01 17:37:18 +08:00
    看用途,如果是 OLAP,建议用 mongoDB 的 sub document 来实现。如果是 OLTP...那还是用回 Mysql 吧,还不行的话就上 Impala。我们就是这么干的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5202 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 09:21 · PVG 17:21 · LAX 01:21 · JFK 04:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.