分布式数据库系统之【存取优化】

content

  1. 理论基础
  2. 半连接优化算法
  3. 直接连接优化算法

 
 
 

理论基础

理解

查询优化主要是说查询分解(查询重写)和数据本地化(片段优化); 存取优化主要是考虑的是在实际物理层面(场地)的优化。

场地分工

  • 查询场地:发出查询命令和存储最终查询结果的场地(注意是两个方面)
  • 源数据场地:需要访问的数据(及副本)所在的场地(可能不止一个)
  • 执行场地:查询操作实际执行所在的场地

在这里插入图片描述

优化目标

  • 广域网(Wide Area Network,WAN):主要考虑通信开销
  • 局域网(Local Area Network,LAN):都要考虑(Commuicate、IO、CPU)

指标

  • 总时间(Total Time):所有组件时间的和
  • 响应时间(Response Time):从查询开始到结束所用的时间

在这里插入图片描述

总时间  =  2 * 启动时间 + 单位传输时间 * (x + y)
响应时间 =  启动时间 + 单位传输时间 * max(x, y)

代价模型

Total Cost = com + IO + cpu
 
参数

Card(R)			关系R的基(所包含元组的个数)
Length(A)		属性A的长度(字节数)
Length(R)		关系R的长度(字节数)
Size(R)			关系R的大小(Card(R) * Length(R)Val(A)			属性A的特征值(关系R中属性A的不同的属性值的个数)
Dom(A)			属性A的值域
Max(A)/Min(A)	属性A的最大值/最小值

 
 
 
 

半连接优化算法

典例

在这里插入图片描述

首先明确:EMP位于场地1;DEPT位于场地2;查询场地为场地2(发出命令+存储结果)


策略1------将EMP{Eno, Ename}拉取到场地2进行连接、操作(执行场地在S2)
COST = [Length(Eno) + Length(Ename)] * Card(EMP)
	 = (4 + 35) * 10000 = 390000

策略2------将DEPT{Dname, Eno}拉取到场地1执行,再将结果Res{Ename, Dname}拉回到场地2
COST1 = [Length(Dname) + Length(Eno)] * Card(DEPT) = (35 + 4) * 100 = 3900
COST2 = [Length(Ename) + Lenghth(Dname)] * Card(Res) = (35 + 35) * 100 = 7000
COST = COST1 + COST2 = 10900

策略3------将DEPT{Eno}拉取到场地1实现半连接,中间结果集Res再拉取到场地2进行全连接,然后投影得到最终结果
COST1 = Length(Eno) * Card(DEPT) = 4 * 100 = 400
COST2 = [Length(Eno) + Length(Ename)] * Card(Res) = (4 + 35) * 100 = 3900
COST = COST1 + COST2 = 4300

 
半连接优化算法

输入信息:位于不同场地的两个关系R和S(假设R的尺寸大于S)
输出信息:实现R ∞ ∞ S(R.A = S.B)

算法步骤(🌟重点 + 理解)

  1. 在S场地上计算S‘ = ЛB(S)
  2. 传送S‘到R场地
  3. 在R场地计算R’ = R ∞ ∞ S‘ = R ∝ ∝ S
  4. 将R‘传回S场地
  5. 在S场地计算R’ ∞ ∞ S = (R ∝ ∝ S) ∞ ∞ S = R ∞ ∞ S

优化前后代价比较

假设: 关系R和S在不同的场地;c0为启动代价,c1为单位传输代价

优化前: C = c0 + c1 * (Length(R) * Card(R)) = c0 + c1 * Size(R)
优化后: C = [c0 + c1 * Length(S’) * Card(S‘)] + [c0 + c1 * (Length(R‘) * Card(R‘)] 
		 = 2c0 + c1 * (Size(S‘) + Size(R‘))

 
 
 
 

直接连接优化算法

半连接的不足

半连接优化算法的本质是,通过缩减场地之间传送的关系的数据量,来减少整个系统的传输代价。

那么代价是什么呢?增加了系统的局部处理代价
 
使用场景

  • 取决于数据传输局部处理的相对费用:
  • 如果传输花费是主要的,则采用半连接
  • 如果本地话费是主要的,则采用直接连接

直接连接算法

  • 站点依赖算法
  • 分片和复制算法
  • Hash划分算法

 
 
 
 
 
 
 
 
 
 
 
 

M o r e More More

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值