分布式数据库查询优化技术

合集下载

如何优化分布式数据库的查询性能(系列三)

如何优化分布式数据库的查询性能(系列三)

分布式数据库是指将数据库分布在多个物理或者虚拟的计算节点上,通过网络连接形成一个逻辑上的整体。

随着互联网的迅猛发展,分布式数据库在大规模数据处理和存储方面有着重要的应用。

优化分布式数据库的查询性能对于提高系统的响应速度和用户体验至关重要。

本文将从多个角度探讨如何优化分布式数据库的查询性能。

1. 数据划分和分片在分布式数据库中,将数据水平划分到多个服务器上是提高查询性能的关键。

通过将数据按照规则划分成多个分片,可以使查询时只涉及到相关分片,从而减少网络传输和计算开销。

在划分数据时,可以根据业务需求和查询频率进行灵活的优化。

2. 建立索引索引是数据库查询性能的重要因素。

在分布式数据库中,合理建立索引可以避免全表扫描,提高查询效率。

根据业务需求和查询频率,可以选择适当的字段建立索引,如主键、外键和经常被查询的字段等。

同时,保证索引的更新和统计信息的及时更新也非常重要。

3. 数据冗余和缓存数据冗余和缓存是提高查询性能的常用策略。

分布式数据库中,可以将热点数据冗余到多个节点上,从而减少查询时的网络传输开销。

同时,在查询频率较高的场景中,可以使用缓存技术,将查询结果缓存在内存中,提高响应速度。

根据实际应用情况,可以结合使用持久化缓存和分布式缓存,实现最佳的性能优化效果。

4. 查询优化查询优化是一个复杂的过程,可以通过多个方面进行优化。

首先,尽量减少查询的数据量,只查询所需的字段和记录,避免全表扫描和不必要的计算。

其次,合理使用分布式查询语句,如跨节点的关联查询和子查询等,从而减少数据传输和节点间的交互。

同时,选择合适的查询算法和数据结构,如哈希连接、索引连接和排序等,可以进一步提高查询性能。

5. 负载均衡和故障恢复分布式数据库中,负载均衡和故障恢复是提高查询性能的重要手段。

通过动态调整数据分片和节点的负载,可以实现资源的均衡利用,避免单个节点负载过重。

同时,实现自动化的故障恢复机制,如数据冗余和备份,可以保证系统的高可用性和容错性。

分布式数据库查询优化策略研究

分布式数据库查询优化策略研究
维普资讯

数 据 库 与 信 息 管 理 ・ ・ ・ ・ ・ ・
电 脑 知 识 与 技 术
分布式数据库 查询优 化策略研 究
聂 林 娣
( 南京 工 业 大 学 信 息 科 学 与 工程 学 院 , 苏 南 京 2 00 ) 江 10 9
摘 要 : 布 式 数 据 库 系统 由于数 据 的 分布 和 冗余 使 得 分 布 式 查 询 处 理 增 加 了许 多新 的 内容 和 复 杂 性 , 分 因此 分 布 式 查 询 处 理 的 优 化 显
Ka r S d s iu e a b eds i u e u r ;e y o t iai n I GI ES ag r h ; s m * a g t h ;DD—1 a r h y we d : i r td d t a ; i r td q ey u r p i z t ; tb a s tb m o N L oi m s t I l t y e L l oi m S t — g i m l o t
得 尤 为重 要 。 本 文 简要 介 绍 分 布 式查 询 优 化 的 目标 、 略 , 针 对 分 布 式 数 据 库 系统 的 查 询优 化 , 述 三 个典 型 的 算 法 : 策 并 讲 I IE NGL S算 法 、 Ss m *算 法 、DD- yt I e L S 1算 法 。 进 行 对 比 、 化 、 结 。 后 对 S D- 并 优 总 最 D 1算 法进 行 改 进 。 关 键 词 : 布 式 数 据 库 ; 布式 查询 ; 分 分 查询 优 化 ; I IE NGL S算 法 ;yt I*算 法 ;DD- Ss m e L S 1算 法
1引 言
分 布 式 数 据 库 系统 是 数 据 库 系统 与 计 算 机 网 络 系 统结 合 的 产 物。 具有 数 据独 立 性 、 中 与 自制 相结 合 的控 制 机 制 、 在适 当的数 集 存 据冗 余 度 、 务 管理 的分 布性 等特 点 。 分 布式 数据 库 系统 中 , 据 事 在 数

分布式数据库中的查询优化

分布式数据库中的查询优化
行 了分 析 、 结 。 总
关键词 分布式数据库 ; 查询优化; 基本方法
中图分类 号 : P 1.3 . T 31131
文献标 识码 : 文 章编号 :09 13 (060 - 09 0 A 10- 0320)3 02 - 3
分 布 式数 据 库 系统 是 数 据 库 系统 与计 算 机 网 络 系统 结 集 中式 查 询 处 理 有 质 的 不 同 。 合 的产 物 , 有 数 据 独 立 性 、 中 与 自治 相 结 合 的 控 制 机 具 集
系 统 大 都 运行 在 单 个 处 理 器 的 计 算 机 上 , 以 查 询 执 行 总 的性 能 有 重 要 影 响 。 在 多 站 点 下 , 询 转 化 可 以 减 少 通 信 所 查 代 价 为 C U 代 价 + IO 代 价 。 而 在 分 布 式数 据 库 系统 中 , 量 , 而 达 到 减 少 查 询 代 价 的 目的 。查 询 映 射 则 是 针 对 关 P / 从
由于数据的分 布和冗 余 , 使得 查询处理 中需要考虑 站点间 系的 存 取 方 法 和 操 作 的执 行 算 法进 行 决 策 。
传 输 数 据 的通 信 费 用 , 以除 了考 虑 C U 代 价 和 IO 代 价 所 P /
2 1 查 询 转 化 的 处 理 过程 .
之外 , 还应该包括数据在 网络上 的传输代价 。即 : 总代价=
维普资讯
20 0 6年第 3期 桂 林航天 工业 高等专科 学校 学报 ( 总第 4 3期 ) J U N LO ULN C L E EO E O P C E H O O Y 计 算机 技 术及 应用 O R A FG II O L G FA R S A ET C N L G

分布式数据库中的查询策略与查询优化

分布式数据库中的查询策略与查询优化

() 1查询分解 : 对全局查询语句 进行 词法分析 、 法分析并转 化为 语 棵全局查询树 , 再将全局查询树转化为段查询树。 () 2 数据本地 化 : 对查询所要访 问的每一个关 系进 行具体化 , 落实 到合适( 使尽可能做到本地化或近地化) 片段上的查询。如果查询所访问 的关系只有一个副本 , 则称为非冗余具体化 , 否则称 为冗余具体化。 () 3 全局优化 : 全局优化是指 找到分片查询 的最佳 操作次序 , 使得 代价最小 。 代价一般是指 I , P / C U和通信代价之和。 O 全局优化输 出的是 个优化的关系代数查 询 , 要的信息来 自数据库的统计信息 , 所需 包括 各站点片段统计信息 、 资源信息和通信信息等。 ( ) 部优 化 : 部优 化在各 个本 地站 点执 行 , 4局 局 由各 个 站点上 的 D M 进行优化 , BS 采用集中式数据库 的优化算法。 3全局查询 处理策略 . 为 了执行全局查询和确定一个好的查询策略 ,一般应该从以下三 方 面来考虑 : () 1确定具体副本 : 在分布式数据库中一个关系可分为若干逻辑片 段, 这些片段又可 以在 系统的多个节点上存放 , 所以 , 对于一个 查询所 涉及 的关系需要确定一个物理片段 ,选择不 同的物理片段执行查询操 作会直接影响查询执行的效率 ,因此必须选择查询开销最省的那些物
0 引言 .
化 、 部 优 化 I 局 3 1 。
目前 ,分布式数据库广泛应用于各个领域 ,因此分布式数据库的 查询优化 , 是具有重要的意义的。在分布式数据库中 , 由于数据的分布 与冗余 , 使得查询处理中一般需要站点间的数据传递及通信费用 , 成为 查询优化 的主要矛盾 ; 另一方面 , 数据的分布与冗余也增加了查询的并 发处 理 的 可 能 性 , 而 可 以 缩 短 查 询 处 理 的 响应 时 间 , 高 处 理 速 度 。 从 提 因此 ,查询优化是整个分布式构数据库集成系统的关键。查询优化的 好, 就可以使查询 的时间缩短 , 系统响应快 , 用户可 以在最 短的时间内 获得 自己想要的信息。 如果查询优化的效果不好 , 随着查询联结数 目的 增长查询代价将成指数增长 , 于用户来说是不能忍受 的。 这对 因为这样 的查询优化将会导致查询代 价过大 , 响应时间过长 , 使整个系统的使用 性能下降 , 甚至导致系统的废弃 。 1分 布 式 数 据库 . 分布式数据库系统是物理上分散而逻辑上集中的数据库系统” 分 l 。 布式数据库系统使用计算机网络将 地理位置分散而管理和控制又需要 不同程度集 中的多个逻辑单位连接起来 ,共同组成一个统一的数据库 系统 。因此 , 分布式数据库 系统可 以看成是计算机 网络与数据库系统的 有机结合 。一个分布式数据库 系统应该具有如下特点[ 2 1 : () 1数据的物理分布性 : 分布式数据库系统中的数据不是集 中存储 在一个站点上 , 而是分散存储 在由计算 机网络连接起 来的多个站点上 , 而且这种分散对用户来说是感觉不到 的。 所以 , 分布式数据库系统的数 据具有物理分布性 , 这是与集中式数据库系统的最大差别之一 。 () 2 数据的逻辑整体性 : 分布式数据库系统中的数据物理上是分散 在各个站点 中, 但这些分散的数 据逻辑上却构成一个整体 , 它们被分布 式 数 据 库 系 统 的 所 有 用 户 共 享 ,并 由一 个 分 布 式 数 据 库 管 理 系 统 统 一 管理 , 它使得“ 分布” 对用户来说是透明的。这是分布式数据库的“ 逻辑 整体性 ” 特点 , 也是与分散式 数据库 的最大区别。 ( ) 点 自治性 : 3站 系统 中的每个站点都具有独立性 , 能执行 局部的 应用请求 , 每个站点又是整个系统的一部分 , 可通过网络处理全局的应 用请求 。 分布式查询技术主要把用户提交的全局查询请求翻译为几个相关 节点都可 以识别的本地查询请求 ,以及把各个节点的查询结果汇总返 回的问题 。 它包括分布式查询处理和分布式查询优化。 布式查询处理 分 研究整个分布式查询处理的过程和策略。分布式查询优化研究查询策 略的优化 问题 , 即如何从多种方案 中选择查询代价最少的方案 。 2分 布 式 查 询 的 层次 结 构 . 分 布式查询技术主要把用户提交的全局查询请求翻译为几个相关 节点都 可以识别的本地查询请求 ,以及把各个节点的查询结果汇总返 回的问题 。 它包括分布式查询处理 和分布式查询优化。 分布式查询处理 研究整个分布式查询处理的过程和策略 。分布式查询优化研究查询策 略的优化 问题 , 即如何从多种方案中选择查询代价最少的方案。

分布式数据库设计与优化

分布式数据库设计与优化

分布式数据库设计与优化随着互联网的发展和数据量的不断增长,传统的单机数据库已经无法满足大规模的数据存储和访问需求。

为了解决这一问题,分布式数据库被广泛采用。

本文将着重介绍分布式数据库的设计和优化策略。

一、分布式数据库设计1. 数据划分在分布式数据库中,数据划分是非常重要的一步。

好的数据划分可以提高系统的并发性能和可伸缩性。

其思路是将数据按照某种规则分散到不同的节点上,实现负载均衡和数据的并行处理。

常见的数据划分策略有两种,即垂直划分和水平划分。

垂直划分指的是将一个表按照列进行拆分,将不同的列存储在不同的节点上。

水平划分则是根据某个条件将表中的数据分散到不同的节点上。

2. 数据复制为了保证分布式数据库的高可用性和容错能力,数据复制是必不可少的。

通过将数据复制到多个节点上,可以避免单点故障,提高系统的可靠性。

数据复制有两种方式,即主备复制和多库复制。

主备复制是将一个节点作为主节点,其他节点作为备节点。

主节点负责处理用户的读写请求,备节点则负责同步主节点的数据。

当主节点发生故障时,可以通过自动切换备节点来保证系统的正常运行。

多库复制是将数据复制到多个节点上,每个节点都可以处理用户的读写请求。

通过多库复制可以提高系统的读取性能,但写入操作需要同步到所有节点,对于写入性能有一定的影响。

3. 数据一致性在分布式数据库中,数据一致性是一个复杂而重要的问题。

由于数据被分散存储在不同的节点上,数据的一致性需要得到保证。

在设计分布式数据库时,需要考虑如何解决数据一致性的问题。

常见的保证数据一致性的方法有两种,即强一致性和最终一致性。

强一致性要求所有节点在同一时刻看到的数据是一致的,但会影响系统的性能和可伸缩性。

最终一致性则允许在一段时间内存在数据不一致的情况,但能够保证最终数据的一致性。

二、分布式数据库优化1. 查询优化查询优化是提高分布式数据库性能的关键。

在设计查询时,应尽量减少数据的传输和节点间的通信开销。

可以通过以下方法来进行查询优化:- 使用索引:在查询中使用索引可以加快数据的查找速度,降低系统的负载。

分布式数据库查询优化方法

分布式数据库查询优化方法
q u e y r p r o c e s s i n g .
【 K e y w o r d s ] D i s t i r b u t e d d a t ba a s e ; D i s t r i b u t e d q u e y; r Q u e y r o p t i m i z a t i o n ; Q u e y r p r o c e s s i n g s t r a t e y; g A l g o i r t h m 0 引 言
容和复杂性. 对 于一个给定的查询. 通常会有 多种可能的策略. 查询优化就是从这许 多策略 中 找 出最有效查询计划的一种处理过程。并针对分布 式数据库 系统的查询优化。 讨论 了三个典型的算法: I N GR E S算 法、 S y s t e m R 算法、 S D D 一1算法 【 关键词 】 分布式数据库; 分布式查询 ; 查询优化 ; 查询 处理策略 ; 算法
近年来 . 随 着 计 算 机 网络 和数 据 库 技 术 的 发 展 . 对 分 布 式 数 据 库 的应用越来越广泛 : 随着应用不断扩大, 数据 的查询也越来越 复杂 , 对 查询的效 率要求也越来越高 , 因此查询处理成为分布式数据库系统中 的一个关键性 的问题【 1 j 。在分布式数据库中. 由于数据的分布与冗余 . 使得查询处理中一般需要站点问的数据传递及通信费用 . 成为查询优 化 的主要矛盾 : 另一方面 . 数据 的分布与冗余也增加 了查询 的并 发处 理 的可能性 . 从而可 以缩短查询处 理的响应时间 , 提高处理 速度。总 之. 分布式查询的规模 与优化 的因素 . 都与集中式查询优化不同 . 因此 许 多 数 据 库 专 家 学 者 致 力 于研 究 分 布 式 数 据 库 查 询 优 化 技 术 这 一 重 要课题 . 并 且 己 经 在这 一领 域 作 了大 量 的 工作 . 也 找 到 了规 律 . 包 括 一 些大 家公认 的经典算法 : 然 而由于分布式数据库本身 的灵活性 , 要想 设计一个算法对于各种情况都是最优的几乎不太现实 . 只能说设计一 个较优的优化算 法 . 它可以解决某一类型的问题[ 2 3 分布式数 据库 中查 询优 化是一项复杂问题 . 已经被证 明属 于 N P完全问题 . 至今 都没有 得到彻底地解决 . 里面尚有许 多问题值得研究 和探讨

分布式数据库技术的研究与应用

分布式数据库技术的研究与应用

分布式数据库技术的研究与应用一、概述随着物联网、大数据和云计算等技术的不断发展,数据的存储和管理变得越来越困难。

在这种背景下,分布式数据库技术逐渐成为了解决数据处理问题的重要手段。

本文主要介绍分布式数据库技术的研究现状及其在实际应用中的表现。

二、分布式数据库技术的基本原理1. 数据分片数据分片是分布式数据库技术的基础,它将数据库中的数据按照一定的规则分成多个片段,将这些片段分别存储在不同的节点上。

在数据查询时,分布式数据库系统通过查询每个节点上的数据片段,最终将结果集合并返回。

2. 数据复制为了保证数据的可靠性和高可用性,分布式数据库系统一般会将数据进行复制。

将每个分片的数据分别复制到多个节点上,以提高系统的数据可靠性和可用性。

3. 数据同步数据同步是分布式数据库系统中的一个核心问题。

在每个节点的数据进行修改、添加、删除操作时,需要将这些变更操作同步到其他节点,以保证所有节点的数据一致性。

4. 数据查询优化分布式数据库系统的数据查询需要涉及多个节点,因此在查询优化方面需要考虑多个节点中数据的分布和不同节点之间的通讯成本等因素。

三、分布式数据库技术的研究现状目前,国内外学者已经对分布式数据库技术进行了广泛的研究,并提出了多种不同的解决方案。

其中,以下几种方案是比较典型的:1. 垂直分片在垂直分片方案中,将不同的数据表分得很细,并将其存储在不同的节点上。

此方案适用于各个节点上的数据结构差异较大的情况,例如OLAP(On-Line Analytical Processing)场景中的数据仓库。

2. 水平分片在水平分片方案中,将同一个数据表中的数据分为多个片段,每个片段存储在不同的节点上。

此方案适用于各个节点上的数据结构基本相同的情况,例如OLTP(On-Line Transaction Processing)场景中的电子商务系统。

3. 数据复制方案数据复制方案将每个分片的数据复制到多个节点上,以提高系统的数据可靠性和可用性。

分布式数据库查询优化

分布式数据库查询优化

分布式数据库查询优化分布式数据库查询优化是指在分布式数据库环境下提高查询性能和效率的一系列技术和方法。

由于分布式数据库分布在多台计算机上,并且存储和处理海量数据,查询性能优化是分布式数据库设计和管理中的关键问题之一、以下是几个关键的查询优化技术:1.数据划分和分片技术:将数据划分成多个分片,并将这些分片存储在不同的节点上。

这极大地提高了查询性能,因为查询只需要在相关分片上进行操作,而不需要遍历整个数据库。

2.数据冗余和复制:在分布式数据库中,使用冗余和复制技术可以提高查询性能和可用性。

数据冗余可以在多个节点上存储相同的数据,从而减少查询的路由时间。

数据复制可以保证当一些节点故障时,仍然可以通过其他节点查询相关数据。

3.查询优化器和执行计划:分布式数据库的查询优化器可以根据查询的特征和数据的分布选择最优的执行计划。

执行计划可以决定查询的执行顺序和并行度,以提高查询性能。

4.索引设计和优化:在分布式数据库中,索引设计和优化是提高查询性能的重要手段。

合理的索引设计可以减少数据的读取和扫描次数,从而提高查询性能。

索引的选择和大小也需要根据数据的分布和查询的特性进行优化。

5.数据局部性和缓存技术:在分布式数据库中,由于数据分散在多个节点上,查询时需要跨越网络进行数据读取。

为了减少网络IO和提高查询性能,可以使用数据局部性和缓存技术。

数据局部性可以将相关的数据存储在相邻的节点上,从而减少网络传输。

缓存技术可以将查询结果缓存在节点的内存中,以快速响应相同查询。

6.并行查询和分布式计算:在分布式数据库中,可以利用多个节点的计算资源和存储能力进行并行查询和分布式计算。

并行查询将查询分成多个子查询,并分配给不同的节点并行执行,从而加快查询速度。

分布式计算可以将复杂的查询任务划分成多个子任务,并分配给不同的节点进行计算,以降低整体计算时间。

综上所述,分布式数据库查询优化是提高查询性能和效率的关键问题,涉及到数据划分、数据冗余、索引设计、查询优化器、数据局部性、并行查询和分布式计算等多个方面。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

分布式数据库查询优化技术摘要在分布式数据库中,由于高可靠性和高速度性是其重要特点,所以对查询执行的要求也就更高。

而查询执行中查询优化是执行的关键环节,查询优化在很大程度上决定查询的效率或快慢。

本文讨论的重点是对分布式查询执行的全局处理策略进行优化,尽可能避免通信代价的开销,并着眼于查询执行的实际代价,从分布式系统中选出一个最优的执行节点。

从查询执行的效果出发,通过统计的方式,不断从最近的查询执行代价学习纠正最近查询执行的统计代价,为查询的全局处理提供参考,以达到优化执行、提高执行效率和速度的目的。

1 分布式数据库概述1.1 分布式数据库的定义所谓分布式数据库系统就是由分布于多个计算机结点上的若干个数据库组成, 每个子数据库系统都是一个独立的数据库系统,它们都拥有各自的数据库、中央处理机、终端,以及各自的局部数据库管理系统,分布式数据库在使用上可视为一个完整的数据库,而实际上它是分布在地理分散的各个结点上。

当然,分布在各个结点上的子数据库在逻辑上是相关的。

简单的说,分布式数据库系统是一系列集中式数据库系统的联合。

它们在逻辑上属于同一系统,但在物理结构上是分布式的[1]。

1.2 分布式数据库系统的组成如图1-1所示,分布式数据库系统由以下述成分组成:(1)多台计算机设备,并由计算机网络连接。

(2)计算机网络设备,网络通讯的一组软件。

(3)分布式数据库管理系统,它包括GDBMS、LDBMS、CM,除了具有全局用户接口由GDBMS连接外,还可以具有自治场地用户接口,由场地DBMS,并持有独立的场地目录。

(4)分布式数据库管理者(DDB),包括全局数据库(GDB)和局部数据库(LDB)以及自制场地的自治场地数据库。

(5)分布式数据库管理者(DDBA),它可分为二级,一级为全局数据库管理者(GDBA),另一级问局部或自治场地数据库管理者,统称为局部数据库管理者(LDBA)。

(6)分布式数据库系统软件文档,这是一组与软件相匹配的软件文档及系统各种使用说明和文件。

图1-1 分布式数据库系统的结构1.3 分布式数据库系统的功能通常的集中式数据库管理系统应具备以下几个基本的功能[2]:(1)数据库定义功能;(2)数据存取功能;(3)数据库运行管理;(4)数据库的建立和维护功能。

分布式数据库除了须具备以上集中式数据库的功能外,一般还须具有以下几个方面的功能:(1)分布在网络中的各节点的数据库,其物理位置对用户透明;在用户眼里见到的只是整个系统中有哪些数据库,无论是本地还是远程数据库,用户操纵某一数据库就像操纵本地数据库一样。

(2)处于网络中的各数据库共享的数据应保证一致性:当用户操纵(查询、更新、删除等)某一数据库时,整个网络中的各节点如果有该数据库的副本或备份数据库,应进行相应的更新操作,以保持数据一致性。

(3)系统的可靠性应比集中式数据库系统的可靠性更高:如果因为某种原因,使系统中某一节点数据库崩溃,系统会自动选择另一具有该数据库的节点继续提供原来的服务。

(4)支持多用户的并行访问,或者操作的并行性;(5)数据的安全性和完整性比集中式数据库要求更高;由于分布式数据库系统中各节点数据库处于网络环境中,数据受到破坏和窃取以及丢失的可能性大大增加。

2 数据库查询优化技术2.1 查询优化技术数据库系统研究的主要目标是尽可能的对用户隐藏数据结构的细节,使数据库系统的应用更能面向各个领域。

同样,分布式数据库研究的主要目标之一是隐藏分布式环境的细节,使系统用起来更加简单、有效[3]。

关系数据模型可以为集中式数据库提供一个数据无关的接口关系数据库语言是关系演算,使用该语言进行数据查询时,只需对要查询的数据进行简单的描述,而无须说明如何获取这些数据,SQL 语言就是其中之一。

但是,使用这种语言,也要对搜索、存取操作以及数据传输过程进行说明,因此,相应的查询优化技术的研究和发展也在不断进行。

所谓查询优化,就是要保证查询总开销和总时间为最小。

查询优化器的主要任务是控制和加快查询的执行和数据的传输过程。

查询优化器(如图2-1)首先以查询的某种表示作为输入,这种表示是查询处理器的语法分析子模块的输出,查询优化器为查询选择一种适当的数据存取策略。

然而,查询优化一直是个复杂的问题,理想的全面的查询优化几乎是不可能的,许多专家和学者在这一领域曾做出过不少的研究和探讨,但总的说来,不尽人意,往往只能达到局部目标的查询优化效果,甚至有些理论并不适用。

查询优化的基本类型通常包括两类:针对查询执行代价的优化和针对查询响应时间的优化。

针对查询执行代价进行优化的目标是,使查询执行所使用的系统资源(总和)尽量地少,从而降低系统开销,整个系统的开销可以从单个系统资源的开销表达式中推出。

针对查询响应时间优化的目标是尽量减少查询的响应时间,而不计较系统资源的耗费。

2.2 分布式数据库优化设计分析在分布式数据库系统中,一方面,许多相对独立的处理器可能参与数据库操作。

分布式数据库可能提供若干机会[3]:1)由于在处理一个问题时可以使用多台机器,并行以及加快查询反应速度的可能性增大。

2)由于数据可以在多个节点上存在副本,系统可能不会仅仅由于一个节点或部件发生故障而不得不停止处理。

另一方面,分布式处理增加了分布式系统各个方面的复杂性,因此即使是DBMS中最基本的组成部分的设计,也得重新考虑。

通信开销可能远大于处理开销,因此的问题是消息如何传送。

比如分布式提交和分布式封锁。

影响通信开销的因素主要是由于带宽开销迅速减小。

某些类型的数据属于电子方式管理的大对象,因此即使在通信开销较小时,以太字节的数据传输开销也是不能忽视的。

此外,通信开销常常不仅仅涉及数据传送,还有为数据传送做准备的各层协议、在接受方重建数据以及通信的管理。

这些协议各自都需要大量的计算。

尽管计算开销也在减小,与数据与关键数据库操作的传统单处理器操作相比,进行通信所需的计算可能仍不能忽视。

分布式数据库查询处理如图2-5,分布特性的存在除带来通信开销外还影响到物理查询计划设计的复杂性和可选方案。

在选择物理查询计划时必须考虑的问题包括:如果某个所需关系R 有多个副本,那么应该从那个副本中获得R 的值。

当在两个关系R 和S 上实施某个操作例如连接时,有多个可选方案而且必须选择其中之一时,一些可能的选项如下:a)可以将S 复制到R 所在节点,并在该节点执行计算。

b)可以将R 复制到S 所在节点,并在该节点执行计算。

c)可以将R 和S 复制到二者各自所在节点之外的第三个节点,并在该节点执行计算。

哪种选择最好,这依赖于多个因素,其中包括哪个节点上有可用的处理时间以及操作结果是否需要与第三个结点上的数据相结合等。

如果关系R 有分布在若干节点上的片断nR R R ,...,,21,构成,那么在选择逻辑查询计划时,还应该考虑用n 21...R R R ⋃⋃⋃替代查询中使用的R ,替代后的查询或许能很大程度的简化表达式。

3)对局域网来说,通讯代价有着跟数据库的磁盘I/O 代价相比拟的重要性。

网络通信代价会随着用户数或负载的变化而改变,所以网络情况变化的随机性对分布式查询处理来说,更应该考虑通信代价。

但当某个数据库的查询负载过高时,需要牺牲一定的通讯代价来提高执行的并行度。

此外局域网络的广播能力可以用于全局优化更新、收集信息。

图2-5分布式查询处理的通用层级方案3 分布式数据库查询优化技术研究3.1 基于分布式数据库分布特点的优化分布式并行系统处于网络中,处于网络中的各个节点具有单个服务器系统所没有的特性,所要考虑的因素和重点也将有所不同。

分布式系统中数据的分布性和操作的并行性。

所以既要利用分布并行特点来加快查询执行速度,又要尽量减少分布并行所带来的网络通信延迟代价[3]。

3.1.1 系统环境和约束条件及设计目标 (1)设计目标与系统环境本分布式数据库管理系统是针对局域网环境,分布式数据库是指分布于局域网络,而非广域网络,分布粒度为库一级,并且基于Mysql 开源数据库来设计。

目的是尽量避免数据库分布给查询执行带来的通信开销。

(2)约束条件在此前提下,须考虑以下一些约束因素: 1.通信代价分布式数据库不同于集中式数据库,所以通信代价不得不考虑;但同时它又没有广域网环境中的分布式数据库的通信开销那么大。

所以既不能只考虑磁盘输入输出I/O和CPU计算代价的开销,也不能只考虑通信代价的开销,通过参考权威文献和对单机查询代价与数据通信代价的试验分析,二者都应考虑,且同时并重。

由于是库级分布,不是表级分布,所以跨表操作始终只会在一个节点中进行处理。

而跨库操作,目前Mysql数据库系统还不支持此种操作。

因此,不存在查询时的服务器节点之间通信,因而省去对查询执行时通信代价的考虑。

但是,当处理来自本节点没有的数据库时,就有可能了。

在这种情况,传统的方式转发查询命令到其它节点上执行,这就要考虑通信代价的额外开销了2.查询分解由于是库级分布,某个数据库在某个节点存在,那么这个数据库的所有表都在这个节点上存在(主本或副本),所以不考虑查询分解。

3.透明访问。

用户访问本分布式数据库系统感觉不到数据库物理位置位于何处,就像访问本地数据库(或集中式数据库)一样。

4.Mysql不支持的特性Mysql不支持视图、子查询、存储过程和触发器、外键。

(3)优化目标强调查询快捷,着眼于查询时间的开销;注重整体查询(整个分布式局域网系统和多路多线程的总体查询)效率和吞吐率,而非单机或具体某一条查询语句的执行效率。

系统合理假设主要针对上层进行优化,而不针对下层,并假定已对查询语句进行了优化。

因此,要考虑的关键问题便落在通信代价上,而其它磁盘输入输出I/O 和CPU计算代价的开销,是由下层查询优化去处理。

3.1.2 优化策略研究与设计下面对启发式查询路径选择的优化策略进行详细探讨和设计。

(1)基本思想根据最近一段时间的查询代价,推断局域网络中分布式数据库各节点当前的查询处理能力,实质上还是根据资源占用状况来选择一台较优的节点去执行查询处理。

在实现策略上,属于不断学习优化的过程。

基于一条基本思想:最近访问的表格,在最近一段时间,仍处于同一状态(忙),即很可能被再次访问。

假如这种判断出现错误,也会仅仅因为一次的查询操作,而只误导一次,在下一次同样的查询,又会转入正确的优化判断。

这样的“误判”,仅仅造成一次慢速的查询,不会有太大的损失。

优化的另一策略是尽量避免通信代价的开销,使一个查询尽量不经过查询中转,避免查询结果数据的通信。

(2)优化设计1.节点代价信息表为了记录上次访问表的查询代价,及其通信代价,需要设计以下一些表格如表3-1,以记录如下一些上次访问的历史信息:说明:(此处的通信代价不是指一次查询的所有数据的通信代价,是单位数据在当时的通信代价) 节点IP:指示局域网中分布式数据库所在的节点的IP地址数据库:指该节点中存在有哪些数据库关系表:指该数据库中存在有哪些表用户数:指该表中当时有几个用户查询的计数为使各节点便于查询,该表存在于局域网中每一个节点中,而且为了提高查询速度,更快的执行优化选择,该表必须常驻存。

相关文档
最新文档