• 请不要在回答技术问题时复制粘贴 AI 生成的内容
jwh199588
V2EX  ›  程序员

寻求一个好的方案

  •  
  •   jwh199588 · May 7, 2023 · 3393 views
    This topic created in 1277 days ago, the information mentioned may be changed or developed.
    现在有两张表
    ```mysql
    表 1: 用户表 2W 条数据
    手机号
    姓名

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

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

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