教程目录
分库分表有哪些策略?
一、垂直拆分 垂直分库:按业务拆分库,如用户库、订单库、商品库。 垂直分表:按字段拆分表,如主表存常用字段,扩展表存大字段。 解决:单库压力、单表字段过多。 二、水平拆分 水平分库:同一张表数据按规则分到多个库。 水平分表:同一张表数据按规则分到多张表。 解决:单表数据量过大。 三、分片规则 范围:
如何选择分片键?
一、选择原则 查询频率高:最常用的查询条件字段,如 user_id、order_id。 分布均匀:避免数据倾斜,如不要用性别(只有两个值)。 业务关联:关联表用相同分片键,减少跨库 join。 不可变:分片键值一旦确定不能改。 二、常见分片键 用户 ID:用户相关数据,如订单按 user_id 分片
分布式 ID 生成方案有哪些?
一、UUID 优点:本地生成,无网络开销,唯一。 缺点:无序,索引效率低;太长。 二、数据库自增 优点:简单,有序。 缺点:单库瓶颈;分库后不全局唯一。 三、号段模式 从数据库批量获取 ID 段(如 1-1000),在内存中使用。 优点:性能高,减少数据库压力。 缺点:服务重启可能断号。 四、Sno
分库分表扩容如何平滑迁移?
一、取模扩容问题 user_id % 4 改为 % 8,大部分数据需要迁移。 二、方案一:停机迁移 停机,写脚本把数据按新规则重新分配。 简单但有停机时间。 三、方案二:双写 + 迁移 新数据同时写旧分片和新分片。 后台把旧数据迁移到新分片。 校验一致后,切读到新分片。 停写旧分片。 - 不停机但复
ShardingSphere 的核心功能?
一、定位 ShardingSphere 是分布式数据库中间件,提供分库分表、读写分离、数据加密等能力。 二、三种模式 ShardingSphere-JDBC:嵌入应用,JAR 包方式,性能好但只支持 Java。 ShardingSphere-Proxy:独立部署代理,支持多语言,有网络开销。 Sha