当前位置: 首页 > news >正文

mysql的单表多大要考虑分库分表

一、问题背景

第一个问题,mysql的话,一般单表行数达到多少性能会开始明显下降,然后一般推荐单表行数到多少建议做分库分表呢;第二个问题,mysql的单库最大可支持的qps是多少,一般qps到了多少之后,会推荐进行分库呢

 

二、问题分析

1. 单表行数多少开始明显下降?

  • 官方理论

    • InnoDB 本质上可以支撑 亿级行数(单表 10 亿行甚至更多,取决于存储和索引设计)。

    • MySQL 官方 InnoDB 限制 并没有给出硬性“最大行数”,而是说由 页大小、索引树高度、磁盘空间 决定。

    • 阿里的开发手册中有条建议,单表行数超500万行或者单表容量超过2GB,就推荐分库分表
  • 实践经验(互联网公司)

    • 千万级行数以内(1,000 万–5,000 万):只要索引合理,性能基本稳定。

    • 过亿行:查询/更新延迟会开始明显上升(B+ 树层级增加、缓存命中率下降、主从复制压力大)。

    • 正常是应该像阿里这样的,然而理想和实现总是有差距的,阿里这种体量的公司不差钱当然可以这么用,实际上很多公司单表数据几千万、亿级别仍然不选择分库分表。
    • 电商/支付系统常规推荐

      • 单表 <5,000 万 行是安全区。

      • 接近 1 亿行时,通常会提前分表。


2. 单库最大可支持的 QPS?

  • 官方角度

    • MySQL 官方不会给具体 “QPS 上限”,但 Performance Schema 指南 推荐通过 压测评估

  • 实践经验(单机 MySQL 8.0 + InnoDB,SSD 环境)

    • 读为主(主从架构 + 只读从库):单库 QPS 可达 5 万–10 万

    • 写为主(事务型,电商/支付常见):单库 QPS 通常在 2 千–5 千 区间更稳健。

    • 峰值案例

      • 阿里双 11:单库写 QPS 稳定在 3 千–5 千,读 QPS 借助读写分离 + 缓存可以到 10 万。

      • PayPal/Stripe:支付交易库单实例写 QPS 通常不超过 2 千–3 千,超过就会水平拆分。

  • 常见分库阈值

    • 写 QPS > 3 千–5 千 → 考虑分库分表。

    • 存储容量 > 200GB/单库单表 > 5,000 万行 → 也会触发拆分。


3. 官方文档 & 实际案例

  • 官方

    • InnoDB 限制:https://dev.mysql.com/doc/refman/8.0/en/innodb-restrictions.html

    • 性能 Schema:https://dev.mysql.com/doc/refman/8.0/en/performance-schema.html

    • MySQL 8.0 Capacity Planning(存储 & 索引参考):https://dev.mysql.com/doc/refman/8.0/en/optimizing-innodb.html

  • 案例

    • 阿里巴巴(双 11 架构分享):单表超过 5000 万 行会触发自动分表,单库写 QPS 稳定不超过 5000

    • 美团(技术博客):单库写压测 QPS 在 3000–4000 左右,超过会拆分。

    • 京东:单表 1 亿行以内仍能跑,但复杂查询会明显变慢,因此通常 5000 万行以内就切分


总结

  1. 单表行数:<5000 万推荐,过亿要分表。

  2. 单库 QPS:写 3000–5000 是常见上限,读 5 万–10 万。

  3. 触发拆分条件

    • 单表 >5000 万行

    • 单库存储 >200GB

    • 写 QPS >3000–5000


 

 

http://www.rkmt.cn/news/13189.html

相关文章:

  • 无刷电机速度闭环控制
  • 微信小程序云开发 授权手机号快捷登陆
  • newDay05
  • AtCoder Beginner Contest 425 ABCDEF 题目解析
  • maven打包依赖
  • 对话汇总:从东方哲学到可计算架构的演进
  • 25.9.27 继续MyBatis
  • MoeCTF 2025 二进制漏洞审计:boomboom_revenge
  • 威联通 NAS Docker 容器更新详解:从备份、推送到重建的全流程指南
  • UNIQUE VISION Programming Contest 2024 Autumn (AtCoder Beginner Contest 425)
  • loguru 日志库快速入门
  • 内存访问流程
  • NOIP模拟赛 十七
  • 2025 丹东店推荐:丽格门窗,用 20 年技术沉淀守护家的舒适
  • 2025 宁波门窗店推荐:丽格门窗,甬城品质家居的安心之选
  • 移动硬盘上的文件消失了?以下是Mac电脑解除方法
  • 2025 济南门窗店选购指南:丽格门窗凭硬实力圈粉品质家庭
  • 服务器系统时间不对?Linux系统时间修改与同步全面指南
  • 2025 常熟门窗店优选:丽格门窗,20 年技术沉淀的品质之选
  • 2025上海门窗店选购选丽格!20 年系统门窗经验,徐汇宜山路店品质之选
  • python+uniapp基于微信小程序美食点餐实用的系统
  • AI智能体框架怎么选?7个主流工具详细对比解析
  • 《深入浅出WPF》:8.3.2 自定义路由事件 事件注册类型为 EventHandlerReportTimeEventArgs,但.NET 事件包装器类型为 RoutedEventHandler
  • 2025 自动售货机工厂推荐 配备 Bystronic 激光切割机,快速周转准时交货
  • (基于江协科技)51单片机入门:1.LED - 指南
  • C# WPF实现ComboBox实时搜索与数据绑定 - 教程
  • 学术写作
  • 深入解析:用 Spring Boot 打造 Docker 和 K8s 部署的硬核指南
  • 9.27(课后作业
  • 生成算数问题*30