pudgedoor
V2EX  ›  问与答

MySQL 是单进程多线程,那么在单台服务器上进行分库有意义吗?分库是怎么提升并发处理能力的呢?

  •  1
     
  •   pudgedoor · Nov 15, 2018 · 4520 views
    This topic created in 2799 days ago, the information mentioned may be changed or developed.

    刚刚在看 MySQL 的分库分表博客有感,网上大部分只说了分库就能提升并发处理能力,但是查了半天也没发现有人说为什么,在同一个服务器上 IO 不是由机器限制了吗,那么在同一个服务器上,提升 database 的数量有什么用呢?

    10 replies    2018-11-16 01:27:37 +08:00
    glacer
        1
    glacer  
       Nov 15, 2018   ❤️ 1
    分库后单库数据量变小,下推到分库的 SQL 查找的数据量也变小了,减少了 CPU 的使用量。
    pudgedoor
        2
    pudgedoor  
    OP
       Nov 15, 2018 via Android
    @glacer 谢谢,不过还是不太理解。数据量变小那不是和分表一样吗?为什么分库就能提升并发性能呢,分表就只能加快查询速度呢?
    xttanwei
        3
    xttanwei  
       Nov 15, 2018
    因为分表分库后,单次查询效率提升了,所以并发性能也有提升撒。
    wly19960911
        4
    wly19960911  
       Nov 15, 2018
    锁的问题吗,不熟悉数据库锁的路过,如果是考虑到锁机制的话,还是有影响的,毕竟不同的等级对库的性能都影响很大
    pudgedoor
        5
    pudgedoor  
    OP
       Nov 15, 2018
    @wly19960911 锁这个概念应该是对 table 而言吧
    pudgedoor
        6
    pudgedoor  
    OP
       Nov 15, 2018
    @xttanwei 我可以理解分表可以提升单次查询效率,毕竟单表数据少了,但是为什么分库也可以提升单次查询效率?比如说根据 id 查询,分表后,单表数据少了,根据 id 检索当然更快了,但是为什么分库可以更快呢?
    xttanwei
        7
    xttanwei  
       Nov 15, 2018
    @pudgedoor 大部分的分库都是进行了业务或者数据上的区分,对应的业务实现也会有相应的模块化,所以降低了业务复杂度,最终提升了查询效率
    autogen
        8
    autogen  
       Nov 15, 2018
    mysql,单表 1000 万条记录就是极限了。。。
    ETiV
        9
    ETiV  
       Nov 15, 2018 via iPhone
    当木桶看

    - IO 短板的时候,再怎么分也没用
    - 需要处理的数据量短板的时候,分就有用了
    msg7086
        10
    msg7086  
       Nov 16, 2018
    你可以看看是谁说的,然后问他们?我是没觉得分库比分表有太大的优势……
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5422 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 08:24 · PVG 16:24 · LAX 01:24 · JFK 04:24
    ♥ Do have faith in what you're doing.