整理东京服务器 MySQL 分库分表的实战方法。
分库分表解决大数据量问题。以下是实战。
一、分库分表场景 - 单表数据量过大 - 单库压力大 - 查询慢
二、拆分方式 1) 垂直拆分:按业务 2) 水平拆分:按数据
三、分片键 - 用户 ID - 订单 ID - 时间 - 哈希
四、中间件 - ShardingSphere - MyCat - Vitess
五、路由策略 - 范围分片 - 哈希分片 - 一致性哈希
六、分布式事务 - 本地事务 - 分布式事务(Seata) - 最终一致性
七、扩容 - 预分片 - 在线扩容 - 数据迁移
八、问题处理 1) 跨库查询:冗余或聚合 2) 跨库 JOIN:避免或应用层 3) 分布式 ID:雪花算法 4) 分页:游标
总结:分库分表要合理选择分片键,处理好分布式事务和跨库查询。