分表分库高频面试题及详细真实答案(生产实战版).docxVIP

  • 0
  • 0
  • 约3.87千字
  • 约 8页
  • 2026-07-07 发布于河北
  • 举报

分表分库高频面试题及详细真实答案(生产实战版).docx

分表分库高频面试题及详细真实答案(生产实战版)

一、基础概念篇(入门必问)

1、为什么要做分表分库?单表到底多少数据量需要拆分?

参考答案:

核心原因就两个:单表数据量大导致性能下滑、单库连接数/IO达到瓶颈。

MySQL并不是数据一多就崩,而是数据量大了之后:

索引层级变深,查询变慢

页分裂、页合并频繁,写入性能下降

备份、DDL、锁等待、事务开销变大

行业通用阈值(生产真实标准,不是理论值):

单表数据500万~1000万:开始考虑分表

单库整体数据量过大、QPS1万+:考虑分库

如果字段多、索引多、查询复杂,300万就可以拆

简单总结:单表千万级是警戒线,高并发业务五百万就要动手拆分。

2、分表和分库的区别是什么?各自解决什么问题?

参考答案:

分表:同一个数据库里,把一张大表拆成多张结构一样的小表。

解决:单表数据量过大、查询慢、写入锁竞争激烈的问题。

分库:把原本一个库的数据,拆分到多个独立数据库实例。

解决:单库CPU、IO、连接数、TPS瓶颈,支持更高并发。

通俗理解:

数据太多→分表

并发太高→分库

3、水平拆分和垂直拆分的区别?分别用在什么场景?

参考答案:

垂直拆分(纵向)

按字段拆分,把一张宽表拆成多张表,或者拆到不同库。

场景:

表字段非常多,几十个字段

大文本、日志、备注等低频字段和核心查询字段混在一起

冷热数据字段混杂,影响查询效率

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档