请解释分库分表的含义,并阐述在实际项目中引入它的原因有哪些?
考察说明
考察对数据库分库分表核心概念的理解及其在真实业务场景中的价值判断。
回答思路
- 【回答框架 1】分库分表是将数据按特定规则分散存储到多个数据库实例或多个表中,以突破单库单表的容量和性能瓶颈。分库侧重分散数据库负载,分表侧重减小单表数据量。
- 【回答框架 2】数据库性能和容量存在上限,当单表数据量过大或并发写入过高时,索引失效、锁竞争和IO压力会显著影响性能。分库分表可将数据分散,提升扩展性。
- 【回答框架 3】核心场景包括数据量过大导致单表操作慢、数据库连接成为瓶颈、需要读写分离或按业务维度隔离资源。
- 【回答框架 4】引入分库分表会带来分布式事务、跨库join、全局ID和扩容复杂度等问题,需要谨慎权衡。
- 【关键点 1】分库分表通过数据拆分提升数据库扩展能力。
- 【关键点 2】主要解决大数据量和高并发下的性能瓶颈。
- 【关键点 3】需要配合路由策略和分布式事务方案。
- 【关键点 4】引入会增加运维和开发复杂度。
- 【易错点 1】分库分表不是万能的,需评估数据量是否确实达到阈值。
- 【易错点 2】忽略分布式事务和跨库查询的改造成本。
- 【易错点 3】未做好数据迁移和扩容预案。