V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
aibuzhe
V2EX  ›  Django

django 水平分表,如何将多个表的数据进行汇总分页?

  •  
  •   aibuzhe · 2019-12-02 18:56:38 +08:00 · 3945 次点击
    这是一个创建于 1812 天前的主题,其中的信息可能已经有所发展或是发生改变。
    另外,水平分表后,filter 要从多张表查询,不仅增加了查询次数,还要对结果进行合并。性能上是否可取?
    12 条回复    2020-04-09 16:15:24 +08:00
    aibuzhe
        1
    aibuzhe  
    OP
       2019-12-02 19:02:01 +08:00
    有经历过的吗?
    aibuzhe
        2
    aibuzhe  
    OP
       2019-12-02 19:02:46 +08:00
    有了两条回复后,主题是否可以修改
    aibuzhe
        3
    aibuzhe  
    OP
       2019-12-02 19:03:41 +08:00
    实测 V2EX,不论是问题还是主题,只要有了 2 条回复,变不可修改
    NaVient
        4
    NaVient  
       2019-12-02 19:08:21 +08:00   ❤️ 1
    数据库层面做分表逻辑,不牵扯业务层
    zhoudaiyu
        5
    zhoudaiyu  
       2019-12-02 19:51:00 +08:00 via iPhone
    OneToOneField ?
    wuwukai007
        6
    wuwukai007  
       2019-12-02 21:51:28 +08:00 via Android
    写原生 sql 吧
    wzwwzw
        7
    wzwwzw  
       2019-12-02 21:56:00 +08:00
    写原生 sql 吧。
    dusu
        8
    dusu  
       2019-12-02 21:59:35 +08:00 via iPhone
    有个东西叫索引表
    Jemini
        9
    Jemini  
       2019-12-02 22:00:49 +08:00 via iPhone
    union all 可以联表
    SmiteChow
        10
    SmiteChow  
       2019-12-04 10:32:45 +08:00
    水平分表实质上是把需要查询的字段归集到一张表 A,其他额外信息字段归集到额外表 B.C..X,业务请求时查询 A 表拿到所有主键,再根据主键拉去 B.C..X 表中额外信息,通常分页情况下主键数量是可控的,性能没问题。
    SmiteChow
        11
    SmiteChow  
       2019-12-04 10:34:59 +08:00
    性能当然没问题,分表不就是为了解决性能问题吗?差点被你绕进去
    aibuzhe
        12
    aibuzhe  
    OP
       2020-04-09 16:15:24 +08:00
    @SmiteChow 你这个是垂直分表吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1261 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:36 · PVG 01:36 · LAX 09:36 · JFK 12:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.