分布式数据库查询
A. 分布式数据库查询优化写这个论文的话有推荐的书吗
Distributed Algorithms An Intuitive Approach.
一个小节的内容就一篇论文至少。作者概括了下算法细节和给了相关举例。有人评价很高,我评价一般,结合具体论文看会效果好,不过略吃力,然而直接看也略吃力,因为作者太高度概括,不好理解,没有大部分原文教材那种怕你不懂的啰嗦的特点。所以书也就挺薄的,才200多页而已。
Distributed Systems concepts and design.
基本上分布式系统的各基本细节都涵盖了。系统级别书籍,略硬,算厚。这本我也还在磕。
Introction to Distributed Algorithms second edition.
这本是祖师爷级别的经典教材。不过我还没读过,评价略高,某些美帝高校课堂参考教材就是这本。没有读是因为网上的pdf都没有索引,所以先读上一本了。
Distributed Computing Principle, Algorithms, and Systems.
第一本算师父带入门,对分布式算法有大致框架和了解的话。这本可以有助于理解得更深。所以建议先读第一本,再这本。
Principles of Distributed Database Systems.
这本是我唯一在America Amazon找到的关于分布式数据库并且评价较高的教材。不过这本还没排上让我读的行程,不知内容如何。
B. 数据库有哪几种
常用数据库有:
1、关系型数据库
关系型数据库是由IBM的E.F. Codd于1970年发明的,它是一个表格数据库,其中定义了数据,因此可以以多种不同的方式对其进行重组和访问。关系数据库由一组表组成,其中的数据属于预定义的类别。每个表在一个列中至少有一个数据类别,并且每一行对于列中定义的类别都有一个特定的数据实例。
2、分布式数据库
分布式数据库是一种数据库,数据库存储在多个物理位置,处理在网络中的不同点之间分散或复制。分布式数据库可以是同构的,也可以是异构的。同构分布式数据库系统中的所有物理位置都具有相同的底层硬件,并运行相同的操作系统和数据库应用程序。异构分布式数据库中的硬件、操作系统或数据库应用程序在每个位置上可能是不同的。
3、云数据库
云数据库是针对虚拟化环境优化或构建的数据库。云数据库提供了一些好处,比如可以按每次使用支付存储容量和带宽的费用,还可以根据需要提供可伸缩性和高可用性。云数据库还为企业提供了在软件即服务部署中支持业务应用程序的机会。
4、Nosql数据库
NoSQL数据库对于大型分布式数据集非常有用。NoSQL数据库对于关系数据库无法解决的大数据性能问题非常有效。当组织必须分析大量非结构化数据或存储在云中多个虚拟服务器上的数据时,它们是最有效的。
5、面向对象的数据库
使用面向对象编程语言创建的项通常存储在关系数据库中,但是面向对象数据库非常适合于这些项。面向对象的数据库是围绕对象(而不是操作)和数据(而不是逻辑)组织的。例如,关系数据库中的多媒体记录可以是可定义的数据对象,而不是字母数字值。
6、图形数据库
面向图形的数据库是一种NoSQL数据库,它使用图形理论存储、映射和查询关系。图数据库基本上是节点和边的集合,其中每个节点表示一个实体,每个边表示节点之间的连接。
C. 如何在分布式查询中查询远程数据库上的xml列
在远程上建存储过程查询,再调存储过程。
D. 如何在分布式数据库中查询数据
分布式数据库的目录中存放了系统为保证正确而有效地访问数据而要使用的全部信息。一般应包括各级模式的描述、访问方法的描述、关于数据库的统计数据和一致性信息等。系统根据这些信息将用户查询转换为物理数据库上的查询,并进行查询优化选择一条最佳的存取路径,进行事务管理,进行安全性和完整性检查等。
分布式查询处理负责将用户查询转换为各站点上的物理查询,并负责合并各子查询结果以得到最后结果
E. oracle 10g 如何对配置分布式数据库、分布式查询。如何对数据表进行分片。
去查找一些资料,网络上面的就够了,了解一下即可
1、关于MPP架构的shared disk体系
2、主机的Cluster技术,线条技术
3、Oracle RAC架构
4、Oracle的数据表分区技术
5、Oracle的并行查询技术,以及他与数据表分区的关系
F. 分布式数据库的特征
分布式数据库的特征:
1、独立透明性
数据独立性是数据库方法追求的主要目标之一,分布透明性指用户不必关心数据的逻辑分区,不必关心数据物理位置分布的细节,也不必关心重复副本(冗余数据)的一致性问题,同时也不必关心局部场地上数据库支持哪种数据模型。
分布透明性的优点是很明显的。有了分布透明性,用户的应用程序书写起来就如同数据没有分布一样。当数据从一个场地移到另一个场地时不必改写应用程序。
当增加某些数据的重复副本时也不必改写应用程序。数据分布的信息由系统存储在数据字典中。用户对非本地数据的访问请求由系统根据数据字典予以解释、转换、传送。
2、复制透明性
用户不用关心数据库在网络中各个节点的复制情况,被复制的数据的更新都由系统自动完成。在分布式数据库系统中,可以把一个场地的数据复制到其他场地存放,应用程序可以使用复制到本地的数据在本地完成分布式操作,避免通过网络传输数据,提高了系统的运行和查询效率。
但是对于复制数据的更新操作,就要涉及到对所有复制数据的更新。
3、易于扩展性
在大多数网络环境中,单个数据库服务器最终会不满足使用。如果服务器软件支持透明的水平扩展,那么就可以增加多个服务器来进一步分布数据和分担处理任务。
主要优点:
(1)具有灵活的体系结构。
(2)适应分布式的管理和控制机构。
(3)经济性能优越。
(4)系统的可靠性高、可用性好。
(5)局部应用的响应速度快。
(6)可扩展性好,易于集成现有系统。
G. 分布式数据库片段查询是什么
一些多机查询计算场景下,要求合并多机数据源,假设某个需求需要将数据再次计算。
计算的列不在select查询中,拿回来的多机数据源因为没有需要计算的列,就无法计算。
通过记录原来select的列数,将需要再次计算的列附加到select列中,待计算完毕后,按照原来的select列数将数据发送给客户端。
本方案应用于多机查询处理中(分布式数据库),结合数据定义配置,使用本方法能够获取到查询需要的额外列是否真实有效,结合数据散列方法优化本方法的使用。
Original query:原始查询,一般是用户发给数据库的查询语句;Sytax tree:语法树,用户发送给数据库的查询语句,通过解析器生成的一个可供代码处理的逻辑结构;Fetch select list:这个动作是获取SELECT查询语句中的查询列。
Have group:这个动作是检查SELECT查询语句中是否存在GROUP关键字。Have order:这个动作是检查SELECT查询语句中是否存在ORDER关键字。Select list:一个存储SELECT语句中查询列的数据结构。
Select list, [group list, order list]:修改后的查询语句格式,括号里面的新增列,是附加到原始列后面的。
原始SQL解析成语法树结构,该语法树能够提供一个代码结构,后续处理流程会使用到这个代码结构。首先扫描SELECT查询的列,将SELECT的列存储到SELECT LIST结构中。
扫描语法树查看是否有GROUP(分组)关键字存在,如果存在,需要判断GROUP分组的列在SELECT LIST中是否已经存在,如果不存在,则将GROUP分组列增加到SELECT LIST中,并将GROUP分组列附加到原查询语句的查询列尾部,并且记录下分组列在查询列中的位置。
扫描语法树查看是否有ORDER(排序)关键字存在,如果存在,需要判断SELECT LIST是否已经存在ORDER排序列,如果ORDER排序列没有包含在SELECT LIST中,则将ORDER排序列放入SELECT LIST中,并且将ORDER排序列附加到查询语句尾部,标记ORDER排序列在查询语句中的位置。
经过处理流程1,2,3,4就将客户端发送给数据库的原始查询语句改写为新的查询语句,下面使用一个具体例子来说明实际处理过程。
例:Original query(原始查询语句,客户端发送给数据库的查询语句):SELECT email FROM userInfo WHERE create_time > ‘2011-11-11’ GROUP BY name order by id desc。
syntax tree:SQL解析后的语法树(略,这是其他独立模块提供的),Fetch select list:扫描语法树,可以发现SELECT查询的列有email,因此,将email存放到SELECT LIST。
Have group:扫描语法树,发现有GROUP关键字,分组列name不存在与SELECT LIST中,因将name放入SELECT LIST中,并且将name附加到查询列后面。
这时候SQL语句为SELECT email, name FROM…,标记分组列name在查询中的位置为1(从左到右,从0开始,email位置为0,name为1)。
Have order扫描语法树,发现有ORDER关键字,排序列为id,该列不在SELECT LIST中,因此将排序列ID附加到查询语句中,查询语句变为SELECT email, name, id FROM … ,标记排序列在查询中的位置为2。
经过一系列处理流程,那么为了实现这次查询,已经将查询重写改写为形成一个新的查询:SELECT email,name, id FROM userInfo WHERE create_time > ‘2011-11-11’ GROUP BY name ORDER BY id DESC。
所得到的信息有:原始查询的列数,改写后的列数,分组列位置,排序列的位置。使用处理后的SQL语句从数据存放点取回数据,根据所得到的信息,依次执行分组,排序,然后再发送的时候,按照原始查询的列数发送数据到客户端。
分库分表后能够支持复杂查询,如GROUP、ORDER等等;数据存储节点参与计算,相比直接把数据全部查询到应用程序中进行计算,具有更小的网络开销,更快的计算速度。
在多机查询中,不需要应用程序参与查询计算;通过关系代数等价变化的方式,重写查询语句,让数据节点参与查询计算的方式,相比常规方案性价比要高。
H. 什么叫分布式数据库,有什么优点和缺点
1.分布式数据库是数据库的一种,是数据库技术和网络技术的结合产物。
2.各有优点和缺点.分布式数据库分为逻辑上分部物理上分布及逻辑上分布物理上集中两种。
是的,分布式数据文件便于数据库的管理维护。
I. 分布式数据库的查询优化
指在执行分布式查询时选择查询执行计划的方法和关系运算符的实现算法。根据系统环境的不同,查询优化所使用的算法也有所不同,通常分为远程广域网环境和高速局域网环境,其区别主要在网络的带宽。对于一元运算符可以采用集中式数据库中的查询优化方法。而对于二元运算符,由于涉及场地间的数据传输,因此必须考虑通信代价。分布式查询中常见的连接运算执行策略包括:
(1)半连接方法:利用半连接运算的转换方法R∞S=(RµS)∞S。假设场地1和场地2上分别有关系R和关系S,首先在S上执行连接属性上的投影并将结果传输至场地1,在场地1上执行关系R与投影的连接操作,再将结果传输至场地2与关系S执行连接操作。这种方法能够降低执行连接运算时的网络通信代价,主要适用于带宽较低的远程广域网络。
(2)枚举法方法:指枚举关系运算符的物理执行计划,通过对比执行计划的代价选择执行算法的方法。其中,连接运算符的物理执行计划包括嵌套循环方法、哈希连接法和归并连接法。枚举法主要适用于以磁盘IO代价为主的高速局域网环境。
J. 分布式数据库 把数据分散以后 按查询条件查询合并怎么办呢mysql数据库能实现吗
按查询条件合并数据的工作全部都由分布式数据库自动完成,mysql有集群的版本,你到官方网站上看看把,现在是在oracle公司下面的。