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

2026 年了,还有老架构坚持 MySQL 单表数据不能超过 2000 万行

  •  
  •   summertimesad · 3h 47m ago · 2628 views
    问他为什么,张口闭口就是:“单表过 2000 万,B+ 树就从 3 层变成 4 层了,多一层就多一次磁盘 I/O ,多的我不想说了 你自己问 AI”

    我寻思现在生产环境服务器 256G 内存,给 Buffer Pool 分 200G 。

    Buffer Pool 看着 200G 空间表示:“我管你这那的,非叶子节点全都给我常驻内存!多出来的一层不过是几十纳秒的内存二分查找,哪来的这么多废话”

    业务场景如果是因为备份恢复 SLA 扛不住、在线 DDL 风险大、或者热数据 Working Set 超出内存导致离散回表击穿,那该分分、该归档归档,这叫架构治理;
    但如果不看硬件规格和查询场景,纯拿“B+ 树长到 4 层就会性能崩塌”当圣经到处念咒,AI 的回复直接输出本帖
    Supplement 1  ·  1h 53m ago
    关于 256G 机器“性价比”的:
    这台是公司自建云物理机,前阵子老库故障紧急顶上去的,之前生产环境是 64G 的虚拟机。

    就算是 64G 内存的数据库,4 层的目录页顶多几个 G ,早就全在内存里了,对比 3 层多出来的只是 CPU 几十纳秒的内存寻址而已。

    吐槽的初衷是:现在都什么年代了,系统架构什么都不管,直接奉为圭臬“2000 万行是 B+ 树的性能死线”,让我对抱残守缺的老教条有种无力感。
    33 replies  •  2026-10-13 17:41:39 +08:00
    liaohongxing
        1
    liaohongxing  
       3h 23m ago
    256G 内存不现实,大部分就部署在阿里云这类云平台,你看下 256G 内存多少钱?
    OctopusGO
        2
    OctopusGO  
       3h 22m ago
    是的 我们的高配数据库 单表已经 200G 了 一点问题没有 大概五六亿的数据
    bbao
        3
    bbao  
       3h 21m ago
    服务器 256G 内存,你花钱买么?哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
    JeffWalker
        4
    JeffWalker  
       3h 19m ago
    有人知道 256g 的内存要多少钱吗
    wudaye
        5
    wudaye  
       3h 17m ago
    @bbao 去年涨价前 256G 服务器内存也没多少钱
    seedhk
        6
    seedhk  
       3h 13m ago
    阿里云上,对大公司来说 256g 没什么。对小公司来说,从 2g 升到 8g 都要思考一下
    bbao
        7
    bbao  
       3h 5m ago
    @wudaye 贵司目前服务器以及 mysql 的配置是怎样的?刚查询阿里云最高 ecs104G ; mysql 高可用型号最高 128G (单价 12.8W/月);其他型号没有超过 64G 的;

    所以你们的 256G 内存是怎么来的?没多少钱是多少钱?
    ntdll
        8
    ntdll  
       3h 2m ago
    @seedhk >> 从 2g 升到 8g 都要思考一下

    这可能是真的有点小了,家庭作坊,出来做生意也不至于差一个月这几百块钱的差价。
    526457385
        9
    526457385  
       2h 55m ago
    你给他整一个超过 2000w 的表并且没有什么问题的 甩过去就行了,其他废话不要多说
    tutusolo
        10
    tutusolo  
       2h 40m ago
    你要不要先想想你在说什么,256g 内存的服务器去解决 mysql 单表 2000 万的问题,你可真是人才。
    gfreezy
        11
    gfreezy  
       2h 39m ago
    一般云厂商都有物理机的,1T 内存都有
    nunterr
        12
    nunterr  
       2h 37m ago
    我们公司的一个订单表单表数据已经快 2 亿了,还改不了😂,就这样持续增加中,系统还很稳定
    azkaban
        13
    azkaban  
       2h 28m ago
    你用这个钱用啥都行啊,直接云厂商的商用数据库,全进内存都行
    maocat
        14
    maocat  
       2h 22m ago
    你想尽办法优化的 SQL 不如给服务器的磁盘换成 SSD
    JYii
        15
    JYii  
       2h 17m ago
    @ntdll #8 集团利润高的时候,你想升级什么都是一路畅通。这两年再提 OA ,部门领导就给退回了,理由是经费不足
    fionasit007
        16
    fionasit007  
       2h 15m ago
    @ntdll #8 我们公司产品日活百万,但是服务器数据库大多数都是 1h1g 的,少数撑死 8h8g ,不过我们产品主要是客户端功能居多,服务器交互少,很多服务我们都是 1h1g 起步不够在加
    adoal
        17
    adoal  
       2h 12m ago
    OP 有一种经济上行期的美感
    winnerczwx
        18
    winnerczwx  
       2h 9m ago
    @JYii 一个月几百块钱经费都不足可以直接申请破产了吧, 2g 升 8g 一个月可能都用不到几百块
    refear99
        19
    refear99  
       2h 7m ago
    阿里云 polarDB 和类似产品,单表 20 亿都不是问题
    cslive
        20
    cslive  
       2h 1m ago
    现在都是集群,没有单机了
    ShinichiYao
        21
    ShinichiYao  
       1h 57m ago
    看了一眼,1 亿多点吧,内存 8G
    Sezxy
        22
    Sezxy  
       1h 55m ago
    我寻思之力发动
    Zhuzhuchenyan
        23
    Zhuzhuchenyan  
       1h 54m ago
    这个论断在现在的硬件平台确实不适用了
    从存储的角度来说,自从我们托管的机器换了 NVME ,面对 10000 倍性能提升的 4K 随机读,和 1000 倍性能提升的 4K 随机写,感受到的差异是巨大的
    JYii
        24
    JYii  
       1h 43m ago
    @winnerczwx #18 有没有可能不是一台,1 主 N 从。还有没有可能下个季度部门预算已经花完了。

    问题的点不在于几百块还是几千几万,是当下"开源节流"
    junkk
        25
    junkk  
       1h 34m ago
    检测不能超过不重要,但机器性能有限的情况下,2kw 确实是一道坎,当然可能也不一定,不过八股文答案就是这个,别人问了你说加钱加机器,那很可能就挂了
    OctopusGO
        26
    OctopusGO  
       1h 31m ago
    @nunterr 这才哪到那 我们都快十亿了
    skuuhui
        27
    skuuhui  
       1h 18m ago
    我更建议你自己问一下 ai
    cvbnt
        28
    cvbnt  
       59 mins ago
    实际 B+树高度可以通过工具或 page 分析看,索引合理+Buffer Pool 够用+查询写法正确,2000 万远远不是上限
    lxc404
        29
    lxc404  
       58 mins ago
    反驳不能超过 2000 万行的理由可以有很多,但不该是 256G 内存
    你们生产服 mysql 就一个节点?不做灾备?十几台机器都给升到 256G 就为了单表超过 2000w?
    selfly
        30
    selfly  
       57 mins ago
    @OctopusGO mysql 单表十亿?有对接前端精确查及分页查功能吗,如果有且速度在 ms 级确实牛,如果只是做历史库没啥参考性
    OctopusGO
        31
    OctopusGO  
       51 mins ago
    @selfly 有精确查找 但是都有时间范围的查询 分业也都有时间范围 而且做了分区
    kandaakihito
        32
    kandaakihito  
       41 mins ago
    看具体的表结构和业务吧,之前见过最牛逼的一种玩法:弄个字段存 json ,json 还贼大,然后每次查询都是全表加载 json 到内存搜索

    磁盘都给擦出火星子了
    MoozLee
        33
    MoozLee  
       10 mins ago
    加钱能解决 99%的业务问题,但是最大的问题是不能加钱啊
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4935 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 93ms · UTC 09:52 · PVG 17:52 · LAX 02:52 · JFK 05:52
    ♥ Do have faith in what you're doing.