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

寻求一个好的方案

  •  
  •   jwh199588 · 2023-05-07 16:22:07 +08:00 · 1976 次点击
    这是一个创建于 573 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现在有两张表
    ```mysql
    表 1: 用户表 2W 条数据
    手机号
    姓名

    表 2: 休假表 10W 数据(一直增长中)
    申请人(手机号)
    交接人(手机号)
    ```
    现在呢,导出休假表全量数据的时候,需要获取到申请人和交接人的姓名,导出格式如下
    `申请人 申请人姓名 交接人 交接人姓名`

    目前我想到两种方案:
    第一种:每获取休假表 1000 条数据,然后去用户表获取对应手机号的的姓名
    第二种:使用 mysql ,用休假表的申请人关联用户表,在用休假表的交接人关联用户表,意思就是连续关联两次休假表

    但是我觉得这两种方案都不怎么好,请问大家还有其他好的方案吗
    14 条回复    2023-05-08 15:25:28 +08:00
    renmu
        1
    renmu  
       2023-05-07 16:26:08 +08:00 via Android
    就这点数据直接都拿出来放到内存处理应该也没啥问题,全量导出也不是啥频繁操作的东西
    iOCZ
        2
    iOCZ  
       2023-05-07 16:26:41 +08:00
    联表查询不是一般操作么?
    aru
        3
    aru  
       2023-05-07 16:29:09 +08:00
    直接 join 就行了,有性能问题再说
    yinmin
        4
    yinmin  
       2023-05-07 17:27:31 +08:00 via iPhone
    2 次 join 是正解。
    taotaodaddy
        5
    taotaodaddy  
       2023-05-07 19:09:50 +08:00
    join
    oneisall8955
        6
    oneisall8955  
       2023-05-07 19:31:05 +08:00 via Android
    做好覆盖索引(手机号+姓名),不回表,这点数据量没问题
    qIssac
        7
    qIssac  
       2023-05-07 19:31:57 +08:00
    这数据量太小了,mysql 两次 join 一点问题没有
    ql562482472
        8
    ql562482472  
       2023-05-07 19:51:33 +08:00
    内存处理 这点东西。。
    xwayway
        9
    xwayway  
       2023-05-07 20:11:26 +08:00 via iPhone
    这点数据量,直接 join 不会有任何问题……
    xuanbg
        10
    xuanbg  
       2023-05-07 20:26:21 +08:00
    就这点数据还不直接 join 么?而且你这个 join 都不会产生笛卡尔积的,怕什么。
    user9121
        11
    user9121  
       2023-05-07 20:54:43 +08:00
    把用户表全部读入到内存,然后轮询休假表?个人想法。
    azui999
        12
    azui999  
       2023-05-08 10:13:37 +08:00
    就这点东西,量级再乘以 100,单机也足够操作
    humbass
        13
    humbass  
       2023-05-08 14:15:21 +08:00
    又不是几个亿的数据,速度没要求直接 join ,有要求的话通过 redis 处理
    jwh199588
        14
    jwh199588  
    OP
       2023-05-08 15:25:28 +08:00
    这个任务的数据量确实不大,我只是想通过这个做一个延伸,如果在后面遇到了大数据量,该如何处理
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1067 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 18:58 · PVG 02:58 · LAX 10:58 · JFK 13:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.