gy123
V2EX  ›  问与答

关于单线程串行操作 mysql 或 redis 改为多线程并行操作是否提升性能

  •  1
     
  •   gy123 · Mar 19, 2022 · 1213 views
    This topic created in 1520 days ago, the information mentioned may be changed or developed.
    现有一个业务方法,包含了 mysql 查询更新和 redis 查询更新操作等,没有其他的例如网络请求等 io 阻塞操作~然后现在需要批量处理;
    以每次 200 条数据进行操作:
    (1)直接循环单线程串行操作,耗时 5s;
    (2)使用多线程执行,耗时 2s;线程数上下微调后,最优大概是这个耗时;

    经网上查询,类似的问题,比如单线程查询大量 mysql 操作和将任务分解并发查询的性能差异:结合网上和分析大概是要看瓶颈所在,如果在于 mysql 服务的磁盘瓶颈或宽带,则不会带来什么提升等;

    (前提) 带宽没到瓶颈,使用内网;观察数据库服务的指标,也是都没到瓶颈
    大佬们分析下,多线程并发的操作 mysql 或 redis,真的会带来性能提升吗?
    (1)比如说多线程执行,会调动 mysql 的多线程执行?redis 的网络模块多线程执行?带来的性能提升?
    (2)还是说由于使用多线程,本地多核心使用带来的提升?
    3 replies    2022-03-20 19:39:45 +08:00
    gy123
        1
    gy123  
    OP
       Mar 20, 2022 via iPhone
    大佬们呢
    EscYezi
        2
    EscYezi  
       Mar 20, 2022 via iPhone
    优化一下减少查询次数,可能比上多线程提升更大
    gy123
        3
    gy123  
    OP
       Mar 20, 2022 via iPhone
    @EscYezi 是的。不过想要的就是不改变现有方法逻辑的前提,进行对比
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3088 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 12:43 · PVG 20:43 · LAX 05:43 · JFK 08:43
    ♥ Do have faith in what you're doing.