分布式資料庫查詢
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公司下面的。