4. 系统架构
客 户 机(Client) 数 据 流
应用程序 控 制 流
C/P ython /
P H P/J a v a/...
客 户 机(Client)
J a v a程 序
查 询 服 务 器(Q S) D D B JD BC 管理服务器 D BA
QuryServer D BI Ma ste r 管理工具
数 据 库 节 点(D B N) 数 据 库 节 点(D B N) 数 据 库 节 点(D B N)
M yS Q L/ M yS Q L/ M yS Q L/
O ra c le O ra c le O ra c le
5. Sharding实现
Sharding实现
• 均衡字段:用来定位记录所在DBN的表字段。
• 均衡策略:均衡函数、桶、存储映射表。
• 表 --> 均衡策略:多对一
哈希函数 存储映射表
均衡函数
(固 定) 桶
哈 希 表 (可 调 整)
逻 辑I D
均衡字段值 H SD B1N1
N
S NB 2
D N2
负载信息
6. 查询处理流程
SELECT * FROM T 查询结果
WHERE a = 1 语 法
ORDER BY b
LIMIT 100 OFFSET 1 0 0
解 析
LIMIT 1 0 0
存储映射表 LIM IT OFFSET 1 0 0
发送给后台的
T, a=1 查 询 计 划 S Q L 句,可 能
L语
计 划 MERGE
ORDER BY b 与 原 语 句 不 同
生 成 SOR T
S N1, S N2
SELECT * F R OM T SELECT * F R OM T
WHERE a = 1 WHERE a = 1
ORDER BY b LIMIT 2 0 0 ORDER BY b LIMIT 2 0 0
根 据“存 储 映 射 表” 计 划
与 查 询 条 件,可 决 定 执 行 各后台数据库查询结
相关存储节点 果,按b排 好 序
b
D B N1
SN 1 D B N2
SN 2
10. 读写分离
• 支持对Master和各Slave节点的读操作设置权重
• 限制从延迟过大的Slave上读取数据
• 通过hint指定select语句的数据来源和延迟限制
D BI
– MasterOnly:只在Master上执行(默认)
– SlaveOnly:只在Slave上执行
Write
Read
R e
d
R ea
– SlavePerfer:优先在Slave上执行
ad
– LoadBalance:根据权重选择节点执行
Master
/*LOADBALANCE(TYPE=slaveonly,DELAY=60)*/ select …
S la ve1 S la ve2