【关系型数据库】水平拆分

水平拆分是优化大表的有效策略,包括库内分表、分库等方法。拆分原则需谨慎选择,避免跨分片事务。优点是提高系统负载能力和稳定性,但存在事务一致性、跨节点Join等问题。解决方案包括客户端模式(如Sharding-JDBC)和代理模式(如MyCat),前者降低集成成本,后者处理复杂需求。
摘要由CSDN通过智能技术生成

 

水平拆分是优化数据库大表的常见方式。

 

拆分方式

水平拆分的一种实现方式是使用数据库本身支持的分区表特性,即多个物理子表组成一个逻辑总表。

也可以显式地 (库内)分表,或 分库。

库内分表 可以缓解单表数据量过大的问题,但对于减轻数据库服务器压力的作用不大,因为所有请求还是在争用同一服务器的资源。这时可以采用 分库。

实际使用时也可以与 垂直拆分 结合。

 

(《MySQL大表优化方案》)

按照用户名首字母将用户分表分为两份:A~M 和 N~Z

 

数据拆分原则

  • 能不分就不分!

  • 分片规则要慎重选择,提前规划。数据的 增长模式、访问模式、数据分片关联问题 和 扩容问题 都需认真考虑。

    按数据范围分片、枚举分片、一致性Hash分片 等都是比较容易扩容的方式。

    对有时效性的数据,按时间范围分片 就是一种典型的策略。

  • 分片尽量少;分片尽量均匀分布在多个数据节点上。

    执行SQL时,涉及的分片越多,跨分片所消

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值