易学笔记-系统分析师考试-第5章 数据库系统/5.6 分布式数据库系统/5.6.3 分布式数据库查询优化

  • 查询优化对比
  1. 集中式数据库:主要考虑CPU和I/O代价
  2. 分布式数据库:除了考虑CPU和I/O代价,还要考虑通讯代价
  • 分布式查询分类
  1. 局部查询:类似于集中式数据库查询,可用集中式数据库查询方法优化
  2. 远程查询:用户查询只涉及到网络中单个场地的数据, 选择距离应用场地最近的副本,其余就类似于集中式数据库查询,选择
  3. 全局查询:用户查询涉及到多个场地的数据,具体优化技术比较复杂,见下面说明
  • 全局查询优化
  1. 全局查询树的变换
    1. 用片段查询替换全局关系
    2. 合并公共子查询
    3. 消除空关系和冗余度
    4. 移去无用的垂直叶片
    5. 举例

   

  1. 副本选择和多副本的更新策略
    1. 副本选择原则
      1. 尽可能提高访问的局部性,减少远距离访问
      2. 尽可能减少通信开销,减少大数据量的传输
      3. 考虑节点的负载平衡
    2. 副本更新策略
      1. 在事务提交前更新全部副本,只要一个副本没更新则事务失败
      2. 立即更新所用可用副本,对于失效副本等恢复后再更新
      3. 主副本法
        1. 指定一个副本为主副本,事务提交时先更新主副本,其它的副本在事务提交后再由主副本统一更新
        2. 缺点:主副本和其它副本可能存在读不一致问题,可以通过设计版本号解决,如果副本的版本号与主副本版本号不一致,则改为读主副本或者等待更新后再读
      4. 快照法
  2. 查询树的分解
  3. 半连接与直接连接
    1. 半连接:在做连接时,不需要把整个关系或者片段送到对方,只需要传送与连接相关的元组即可,目的是减少节点之前的数据传输量和运算量,缺点是增加了连接次数
      1. 举例:
    2. 直接连接
      1. 嵌套循环法
      2. 排序归并法
      3. 全送与按需取数两种传输方式

猜你喜欢

转载自blog.csdn.net/u011830122/article/details/84478706
今日推荐