內存數據庫有哪些?

General 更新 2024-06-18

內存數據庫主流的有哪些,並給出各自特點!

這裡介紹一些大型的市場佔有率比較高的內存數據庫,也是業界響噹噹的—SAP HANA、Oracle Exalytics、Orale TimesTen、IBM SolidDB,可以說他們之間沒有說是哪個最好,主要還是看使用的場景和具體的需求,各自特點如下:

SAP HANA(High-Performance Analytic Appliance)是 SAP 公司於 2011 年推出的基於 內存計算技術,面向企業分析性應用的產品。左圖 的系統架構示意圖中可以看出, HANA 產品主要包括內存計算引擎和 HANA 建模工具兩部分。它支持從 SAP 商務套件中 同步更新業務數據,或者從 SAP BW(SAP 商務智能產品)和其他第三方數據源中批量導 入數據,在 HANA 中進行運算後,提供給 SAP BI 客戶端或者其他第三方展現工具進行分 析和展現。

Oracle Exalytics 內存分析一體機是面向分析的集成設計系統,可以無限制提供最佳可 視化分析和更智能的分析應用程序。 如圖 所示, Oracle Exalytics 內存分析一體機的產品架構包括 3 個部分: 內容分析 硬件、內存分析軟件和經過優化的 Oracle 商務智能基礎套件(Oracle BI Foundation)。內存分析硬件部分是一臺為基於內存計算的商務智能而特別優化的服務器,具有提供 強勁計算能力的 40 核中央處理器,高達 1TB 的內存以及快速的網絡. 內存分析軟件部分的核心是 Oracle TimesTen 內存數據庫。它是為 Exalytics 平臺而特 別優化的內存分析數據庫,包括了很多 Oracle Exalytics 平臺特有的功能。Oracle 商務智能基礎套件部分受益於 Oracle Exalytics 內存分析一體機的大容量內存、 處理器、併發處理能力、存儲、網絡、操作系統、內核和系統配置等,可以提供明顯優於傳統軟件的查詢響應性、用戶可用性和 TCO。

Oracle 內存數據庫TimesTen 是一個基於內存計算的關係數據庫, 提供了響應時間極 短且吞吐量極高的應用程序,可滿足各行業應用程序的需求。 TimesTen 是一個可嵌入到應用程序中的數據庫, 通過消除進程間通信和網絡 開銷,進一步提高數據庫操作的性能。Oracle 內 存 數 據 庫 TimesTen 使 用 行 級 鎖 定 和 提 交 後 讀 取 (committed-read) 隔離,通過事務日誌記錄與數據庫檢查點相結合實現了基於磁盤的持久 性和可恢復性。TimesTen 通常與多用戶和多線程應用程序一起部署,應用程序直接通過 JDBC、 ODBC、 Oracle 調用接口、 Pro*C/C++ 和Oracle PL/SQL 編程接口, 使用標準SQL 訪問TimesTen 數據庫。若運行在不同服務器上的多個應用程序共享一個數據庫時,則使 用常規的客戶端/服務器訪問方式。

IBM solidDB 是一個內存數據庫,專為獲取極高的速度和可用性而進行優化。如圖 所示,IBM solidDB 既可以單獨部署作為獨立的數據庫支持應用程序,也可 以部署為其他關係型數據庫的加速緩存以提高應用程序性能。solidDB Universal Cache 功能將這些數據庫中存儲的性能關鍵型數據 緩存到solidDB Universal Cache 中,加快領先關係數據庫的速度。solidDB Universal Cache 功能使用檢查點和事務日誌將數據持久保存在 磁盤上......

內存數據庫主流的有哪些,並給出各自特點

內存數據庫從範型上可以分為關係型內存數據庫和鍵值型內存數據庫。

在實際應用中內存數據庫主要是配合oracle或mysql等大型關係數據庫使用,關注性能。

作用類似於緩存,並不注重數據完整性和數據一致性。

基於鍵值型的內存數據庫比關係型更加易於使用,性能和可擴展性更好,因此在應用上比關係型的內存數據庫使用更多。

比較FastDB、Memcached和Redis主流內存數據庫的功能特性。

FastDB的特點包括如下方面:

1、FastDB不支持client-server架構因而所有使用FastDB的應用程序必須運行在同一主機上;

2、fastdb假定整個數據庫存在於RAM中,並且依據這個假定優化了查詢算法和接口。

3、fastdb沒有數據庫緩衝管理開銷,不需要在數據庫文件和緩衝池之間傳輸數據。

4、整個fastdb的搜索算法和結構是建立在假定所有的數據都存在於內存中的,因此數據換出的效率不會很高。

5、Fastdb支持事務、在線備份以及系統崩潰後的自動恢復。

6、fastdb是一個面向應用的數據庫,數據庫表通過應用程序的類信息來構造。

內存數據庫主要功能有哪些

內存數據庫從範型上可以分為關係型內存數據庫和鍵值型內存數據庫。 在實際應用中內存數據庫主要是配合oracle或mysql等大型關係數據庫使用,關注性能。 作用類似於緩存,並不注重數據完整性和數據一致性。 基於鍵值型的內存數據庫比關係型更加易...

開源的內存數據庫都有哪些

1.最簡單的方法:

public static String reverse1(String str)

{

return new StringBuffer(str).reverse().toString();

}

2.最常用的方法:

public static String reverse3(String s)

{

char[] array = s.toCharArray();

String reverse = ""; //注意這是空串,不是null

for (int i = array.length - 1; i >= 0; i--)

reverse += array[i];

return reverse;

}

什麼情況下用內存數據庫

相對於磁盤,內存的數據讀寫速度要高出幾個數量級,將數據保存在內存中相比從磁盤上訪問能夠極大地提高應用的性能。同時,內存數據庫拋棄了磁盤數據管理的傳統方式,基於全部數據都在內存中重新設計了體系結構,並且在數據緩存、快速算法、並行操作方面也進行了相應的改進,所以數據處理速度比傳統數據庫的數據處理速度要快很多,一般都在10倍以上。內存數據庫的最大特點是其"主拷貝"或"工作版本" 常駐內存,即活動事務只與實時內存數據庫的內存拷貝打交道。顯然,它要求較大的內存量,但並非任何時刻整個數據庫都存放在內存,即內存數據庫系統還是要處理I/O。

內存數據庫是以犧牲內存資源為代價換取數據處理實時性的,內存數據庫和磁盤數據庫都是當今信息社會裡每個企業所必須的關係型數據庫產品,磁盤數據庫解決的是大容量存儲和數據分析問題,而內存數據庫解決的是實時處理和高併發問題。兩者的存在是相輔相成的,內存數據庫的事務實時處理性能要遠強於磁盤數據庫。但是相對的,他的數據安全方面還沒有達到磁盤數據庫比肩的地步。

內存數據庫將物理內存作為數據的第一存儲介質,而將磁盤作為備份。隨著電信業務的發展,系統對實時性的要求和對業務靈活修改的要求非常高,在此種情況下對於內存數據庫的需求也越來越高。磁盤數據庫的做法是將數據存入內存中進行處理,這種方式的可管理性及數據安全可靠性都沒有保障。而內存數據庫正是針對這一弱點進行了改進。

實際上,內存數據庫並不是一項時髦技術,其出現於上世紀60年代末,但由於市場的需求原因在90年代後期才開始發展。作為新一代數據庫,Altibase產品已經走向混合型數據庫,其版本Altibase 4.0已經有一套自帶的磁盤數據庫,用戶一旦購買了Altibase的內存數據庫,就無須再購買磁盤數據庫。它把熱數據(經常被使用的、訪問比較高的、經常要運算的數據)放在內存數據庫裡,而把歷史性數據放在磁盤數據庫裡,可為用戶進一步減少投資。

對於內存數據庫而言,可以將同樣數據庫的部分內容存放於磁盤上,而另一部分存放於內存中。用戶可以選擇將數據存儲在內存表中以提供即時的數據訪問。若訪問時間不緊急或數據存於內存中所佔空間過大時,用戶可將這些數據存入磁盤表中。

比如,在手機用戶開始拔打電話時,如果應用基於內存數據庫技術的混合數據管理引擎,就通過內存表檢索其服務選項並立即驗證用戶身份,而將通話清單和計費清單歸檔到磁盤表中。從而,達到了速度與資源使用的平衡。

內存數據庫的技術,一個很重要的特點,是可以對內存中的數據實現全事務處理,這是僅僅把數據以數組等形式放在內存中完全不同的。並且,內存數據庫是與應用無關的,顯然這種體系結構具有其合理性。內存引擎可以實現查詢與存檔功能使用的是完全相同的數據庫,同時內存表與磁盤表也使用的是完全相同的存取方法。存儲的選擇,對於應用開發者而言是完全透明的。

對於內存數據庫而言,實現了數據在內存中的管理,而不僅僅是作為數據庫的緩存。不像其它將磁盤數據塊緩存到主存中的數據庫,內存數據庫的內存引擎使用了為隨機訪問內存而特別設計的數據結構和算法,這種設計使其避免了因使用排序命令而經常破壞緩存數據庫性能的問題。通過內存數據庫,減少了磁盤I/O,能夠達到了以磁盤I/O 為主的傳統數據庫無法與其相比擬的處理速度。

因此,內存數據庫技術的應用,可以大大提高數據庫的速度,這對於需要高速反應的數據庫應用,如電信、金融等提供了有力支撐。

由於把大多數數據都放在內存中進行操作,使得內存數據庫有著比磁盤數據庫高得多的性能表現,這一......

什麼是內存數據庫

內存數據庫系統對於嵌入式開發來說是特別有用的, IMDS 中每個保存過程縮小了覆蓋區 智能連接設備的增長速度正越來越快。這種裝置不管是在家庭、口 袋(pocket)或者是內置於工業通信和傳送系統,都已經發展為包含了 強大的CPU和完善的嵌入式系統軟件。在這種設備中日益流行的一種軟 件是數據庫管理系統(DBMS)。雖然對桌面電腦或者服務器來說,這種 軟件已經是相當成熟了,但數據庫是最新才應用到達嵌入式系統的。像 所有進入新環境的生物體一樣,數據庫也必須經歷一個發展過程。一種 新型的DBMS,內存數據庫系統(IMDS),代表了DBMS應用到嵌入式 系統的最新步伐。 為什麼嵌入式系統開發人員會轉向數據庫呢?市場競爭使得像機頂 盒、網絡開關和消費者電子產品這樣的設備需要變得越來越智能。要支 持擴展功能集,應用程序通常必須管理大容量的更復雜的數據。因此, 許多設備開發人員發現他們正致力於自己開發數據管理方案。在應用需 求增長時,普通的數據管理方案維護和擴展起來是特別困難的。 另外,標準化的趨勢,商用現貨(ommercial off-the-shelf,COTS) 嵌入式操作系統,遠離許多私有系統的不完整環境,從而增強數據庫的 能力。廣泛使用的操作系統的出現,比如嵌入式Linux,形成了一個用 戶群體,他們輪留進行數據庫和其他工具開發(包括商業的和非商業 的),以不斷增強開發平臺。 因此,設備開發人員開始轉向商業數據庫,但已有的嵌入式DBMS 軟件還不理想。嵌入式數據庫最初出現在10年前,當時用於支持商業系 統,帶有包括複雜緩存邏輯和異常終止恢復等功能。但在一個設備上, 例如,在一個機頂盒或者下一代傳真機中,這些能力通常毫無必要,並 且應用程序容易出現超出可用內存和CPU資源的現象。 另外,建立傳統數據庫時是將數據存儲在磁盤上。作為一種機械過 程,磁盤的I/O是非常昂貴的,尤其是要取得高性能的話。對於嵌入式 系統來,因為需要實時執行,因此相對而言,傳統數據庫就太慢了。 內存數據庫出現的目的特別針對於滿足嵌入式系統的性能需求和資 源能力。正如其名字所暗示的,IMDS完全駐留在內存中,它們不會存儲 到磁盤上。

內存數據庫優劣勢有那些?

看你需要的場景:

1. 應用程序構造大量的鏈表,樹等複雜的數據結構代碼很多而且容易出錯調試麻煩,特別是對C/C++這種語言

2. 不得不說關係數據庫的表達能力很強,代碼量少,開發迅速, 但是mysql等等在性能上比手寫的數據結構慢了很多

3. 我看到的內存數據庫就是在這個場景下大有可為之地:有較高的性能需求,快速開發

在windows下用哪些內存數據庫,類似redis的

內存數據庫從範型上可以分為關係型內存數據庫和鍵值型內存數據庫。在實際應用中內存數據庫主要是配合oracle或mysql等大型關係數據庫使用,關注性能。

作用類似於緩存,並不注重數據完整性和數據一致性。

基於鍵值型的內存數據庫比關係型更加易於使用,性能和可擴展性更好,因此在應用上比關係型的內存數據庫使用更多。

比較FastDB、Memcached和Redis主流內存數據庫的功能特性。

FastDB的特點包括如下方面:

1、FastDB不支持client-server架構因而所有使用FastDB的應用程序必須運行在同一主機上;

2、fastdb假定整個數據庫存在於RAM中,並且依據這個假定優化了查詢算法和接口。

3、fastdb沒有數據庫緩衝管理開銷,不需要在數據庫文件和緩衝池之間傳輸數據。

4、整個fastdb的搜索算法和結構是建立在假定所有的數據都存在於內存中的,因此數據換出的效率不會很高。

5、Fastdb支持事務、在線備份以及系統崩潰後的自動恢復。

6、fastdb是一個面向應用的數據庫,數據庫表通過應用程序的類信息來構造。

FastDB不能支持Java API接口,這使得在本應用下不適合使用FastDB。

Memcached

Memcached是一種基於Key-Value開源緩存服務器系統,主要用做數據庫的數據高速緩衝,並不能完全稱為數據庫。

memcached的API使用三十二位元的循環冗餘校驗(CRC-32)計算鍵值後,將資料分散在不同的機器上。當表格滿了以後,接下來新增的資料會以LRU機制替換掉。由於 memcached通常只是當作緩存系統使用,所以使用memcached的應用程式在寫回較慢的系統時(像是後端的數據庫)需要額外的程序更新memcached內的資料。

memcached具有多種語言的客戶端開發包,包括:Perl、PHP、JAVA、C、Python、Ruby、C#。

Redis

Redis是一個高性能的key-value數據庫。redis的出現,很大程度補償了memcached這類keyvalue存儲的不足,在部分場合可以對關係數據庫起到很好的補充作用。它提供了C++、Java、Python,Ruby,Erlang,PHP客戶端。

什麼是內存數據庫

傳統數據庫的大量數據是存入計算機硬盤的,而硬盤的讀寫速度較慢(遠低於內存的亥寫數據)。因此有內存數據庫將數據整體保存在內存中,並定期同步在硬盤中。此方式的數據操作速度很快

數據庫的種類有哪些

關係數據庫 facts and information

關係數據庫是建立在集合代數基礎上,應用數學方法來處理數據庫中的數據。現實世界中的各種實體以及實體之間的各種聯繫均用關係模型來表示。

關係模型由關係數據結構、關係操作集合、關係完整性約束三部分組成。

全關係系統十二準則

全關係系統應該完全支持關係模型的所有特徵。關係模型的奠基人E.F.Codd具體地給出了全關係系統應遵循的基本準則。

;''準則0'' : 一個關係形的關係數據庫系統必須能完全通過它的關係能力來管理數據庫。

;''準則1'' 信息準則 : 關係數據庫系統的所有信息都應該在邏輯一級上用表中的值這一種方法顯式的表示。

;''準則2'' 保證訪問準則 : 依靠表名、主碼和列名的組合,保證能以邏輯方式訪問關係數據庫中的每個數據項。

;''準則3'' 空值的系統化處理 : 全關係的關係數據庫系統支持空值的概念,並用系統化的方法處理空值。

;''準則4'' 基於關係模型的動態的聯機數據字典 : 數據庫的描述在邏輯級上和普通數據採用同樣的表述方式。

;''準則5'' 統一的數據子語言 :

一個關係數據庫系統可以具有幾種語言和多種終端訪問方式,但必須有一種語言,它的語句可以表示為嚴格語法規定的字符串,並能全面的支持各種規則。

;''準則6'' 視圖更新準則 : 所有理論上可更新的視圖也應該允許由系統更新。

;''準則7'' 高級的插入、修改和刪除操作 : 系統應該對各種操作進行查詢優化。

;''準則8'' 數據的物理獨立性 : 無論數據庫的數據在存儲表示或存取方法上作任何變化,應用程序和終端活動都保持邏輯上的不變性。

;''準則9'' 數據邏輯獨立性 : 當對基本關係進行理論上信息不受損害的任何改變時,應用程序和終端活動都保持邏輯上的不變性。

;''準則10'' 數據完整的獨立性 : 關係數據庫的完整性約束條件必須是用數據庫語言定義並存儲在數據字典中的。

;''準則11'' 分佈獨立性 : 關係數據庫系統在引入分佈數據或數據重新分佈時保持邏輯不變。

;''準則12'' 無破壞準則 : 如果一個關係數據庫系統具有一個低級語言,那麼這個低級語言不能違背或繞過完整性準則。

■實時數據庫是數據庫系統發展的一個分支,它適用於處理不斷更新的快速變化的數據及具有時間限制的事務處理。實時數據庫技術是實時系統和數據庫技術相結合的產物,研究人員希望利用數據庫技術來解決實時系統中的數據管理問題,同時利用實時技術為實時數據庫提供時間驅動調度和資源分配算法。然而,實時數據庫並非是兩者在概念、結構和方法上的簡單集成。需要針對不同的應用需求和應用特點,對實時數據模型、實時事務調度與資源分配策略、實時數據查詢語言、實時數據通信等大量問題作深入的理論研究。實時數據庫系統的主要研究內容包括:

實時數據庫模型

實時事務調度:包括併發控制、衝突解決、死鎖等內容

容錯性與錯誤恢復

訪問准入控制

內存組織與管理

I/O與磁盤調度

主內存數據庫系統......

相關問題答案
內存數據庫有哪些?
網絡應用數據庫有哪些?
開源的數據庫有哪些?
國外論文數據庫有哪些?
學位論文數據庫有哪些?
文獻數據庫有哪些?
中外文數據庫有哪些?
基因組數據庫有哪些?
好的圖書數據庫有哪些?
數據庫有哪些?