1 基本概念
1什么是Sharding Sphere 21) 一套开源的分布式数据库中间件解决方案 32) 有三个产品: ShardingSphere-JDBC、ShardingSphere-Proxy、ShardingSphere-Sidecar 43) 定位为关系型数据库中间件, 合理在分布式环境下使用关系型数据库操作
2 分库分表
11) 分库分表有两种方式: 垂直切分和水平切分 22) 垂直切分: 垂直分表和水平分表 3 a) 垂直分表: 表中一些字段放在一个表里, 另一些字段放在另一个表里 4 b) 垂直分库: 单一数据库, 按照业务进行划分, 订单一个库, 用户一个库 5 63) 水平切分: 水平分表和水平分库 7 a) 水平分库: 将单张表的数据切分到多个服务器上去, 每个服务器具有相应的库与表, 只是表中数据集合不同. 8 水平分库分表能够有效的缓解单机和单库的性能瓶颈和压力, 突破IO、连接数、硬件资源等的瓶颈 9 b) 水平分库: 针对数据量巨大的单张表(比如订单表), 按照某种规则(RANGE,HASH取模等), 切分到多张表里面去. 10 但是这些表还是在同一个库中, 所以库级别的数据库操作还是有IO瓶颈, 不建议采用 11 124) 分库分表应用 13 a) 在设计数据库时考虑垂直分库和垂直分表 14 b) 随着数据库量的增加, 不要马上考虑做水平切分, 首先考虑缓存处理、读写分离、使用索引等方式, 如果这些方式 15 不能解决根本问题了, 再考虑做水平分库、水平分表 16 175) 分库分表问题 18 a) 跨节点连接查询问题分页排序 19 b) 多数据源管理问题