內存型資料庫
A. 內存資料庫主流的有哪些,並給出各自特點!
內存資料庫從范型上可以分為關系型內存資料庫和鍵值型內存資料庫。
在實際應用中內存資料庫主要是配合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客戶端。
B. 開源內存資料庫有哪些
問題一:內存資料庫主流的有哪些,並給出各自特點! 這里介紹一些大型的市場佔有率比較高的內存資料庫,也是業界響當當的―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 使 用 行 級 鎖 定 和 提 交 後 讀 取 (mitted-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 功能使用檢查點和事務日誌將數據持久保存在 磁碟上......>>
問題二:開源的內存資料庫都有哪些 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;
}
問題三:開源內存資料庫有幾種啊? 常見的有FastDB、SQLite、Berkeley DB、GigaBASE,H2等
問題四:幾種常用的開源內存資料庫性能比較 本人理解:orcal速度快但是維護不方便嗎,費錢。mysql速度可以,維護方便,交orcal來說易上手。db2:大
問題五:開源的內存資料庫有哪些支持SQL基準 選擇資料庫實例―右鍵屬性―選擇【內存】選擇頁―修改內存―確定
問題六:C/C++開發的開源的分布式內存資料庫有哪些 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;
}
問題七:哪位達人用過關系型的內存資料庫而且是開源的 關系型資料庫以行和列的形式存儲數據,以便於用戶理解。這一系列的行和列被稱為表,一組表組成了資料庫。表與表之間的數據記錄有關系。用戶用查詢(Query)來檢索資料庫中的數據。一個Query是一個用於指定資料庫中行和列的SELECT語句。關系型資料庫通常包含下列組件: 客戶端應用程序(Client) 資料庫伺服器(Server) Structured Query Language(SQL)Client端和Server端的橋梁,Client用SQL來向Server端發送請求,Server返回Client端要求的結果。現在流行的大型關系型資料庫有IBM DB2、Oracle、SQL Server、SyBase、Informix、access、foxpro等。
問題八:C/C++開發的開源的分布式內存資料庫有哪些 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; } 3.常用方法的變形: public static String reverse2(String s){ int length = s.length(); String reverse = ; 注意這是空串,不是null for (int i = 0; i 問題九:要求實時數據需要存儲到內存庫 有開源內存資料庫嗎 朋友您好,很高興為您解答問題
請把問題補充完整
大家才能給你提供完善的建議
相信您在知道這個平台
一定會有滿意的收獲
真誠希望能夠幫助您,如果滿意請採納,祝您好運常伴。
問題十:什麼情況下用內存資料庫 相對於磁碟,內存的數據讀寫速度要高出幾個數量級,將數據保存在內存中相比從磁碟 *** 問能夠極大地提高應用的性能。同時,內存資料庫拋棄了磁碟數據管理的傳統方式,基於全部數據都在內存中重新設計了體系結構,並且在數據緩存、快速演算法、並行操作方面也進行了相應的改進,所以數據處理速度比傳統資料庫的數據處理速度要快很多,一般都在10倍以上。內存資料庫的最大特點是其主拷貝或工作版本 常駐內存,即活動事務只與實時內存資料庫的內存拷貝打交道。顯然,它要求較大的內存量,但並非任何時刻整個資料庫都存放在內存,即內存資料庫系統還是要處理I/O。
內存資料庫是以犧牲內存資源為代價換取數據處理實時性的,內存資料庫和磁碟資料庫都是當今信息社會里每個企業所必須的關系型資料庫產品,磁碟資料庫解決的是大容量存儲和數據分析問題,而內存資料庫解決的是實時處理和高並發問題。兩者的存在是相輔相成的,內存資料庫的事務實時處理性能要遠強於磁碟資料庫。但是相對的,他的數據安全方面還沒有達到磁碟資料庫比肩的地步。
內存資料庫將物理內存作為數據的第一存儲介質,而將磁碟作為備份。隨著電信業務的發展,系統對實時性的要求和對業務靈活修改的要求非常高,在此種情況下對於內存資料庫的需求也越來越高。磁碟資料庫的做法是將數據存入內存中進行處理,這種方式的可管理性及數據安全可靠性都沒有保障。而內存資料庫正是針對這一弱點進行了改進。
實際上,內存資料庫並不是一項時髦技術,其出現於上世紀60年代末,但由於市場的需求原因在90年代後期才開始發展。作為新一代資料庫,Altibase產品已經走向混合型資料庫,其版本Altibase 4.0已經有一套自帶的磁碟資料庫,用戶一旦購買了Altibase的內存資料庫,就無須再購買磁碟資料庫。它把熱數據(經常被使用的、訪問比較高的、經常要運算的數據)放在內存資料庫里,而把歷史性數據放在磁碟資料庫里,可為用戶進一步減少投資。
對於內存資料庫而言,可以將同樣資料庫的部分內容存放於磁碟上,而另一部分存放於內存中。用戶可以選擇將數據存儲在內存表中以提供即時的數據訪問。若訪問時間不緊急或數據存於內存中所佔空間過大時,用戶可將這些數據存入磁碟表中。
比如,在手機用戶開始拔打電話時,如果應用基於內存資料庫技術的混合數據管理引擎,就通過內存表檢索其服務選項並立即驗證用戶身份,而將通話清單和計費清單歸檔到磁碟表中。從而,達到了速度與資源使用的平衡。
內存資料庫的技術,一個很重要的特點,是可以對內存中的數據實現全事務處理,這是僅僅把數據以數組等形式放在內存中完全不同的。並且,內存資料庫是與應用無關的,顯然這種體系結構具有其合理性。內存引擎可以實現查詢與存檔功能使用的是完全相同的資料庫,同時內存表與磁碟表也使用的是完全相同的存取方法。存儲的選擇,對於應用開發者而言是完全透明的。
對於內存資料庫而言,實現了數據在內存中的管理,而不僅僅是作為資料庫的緩存。不像其它將磁碟數據塊緩存到主存中的資料庫,內存資料庫的內存引擎使用了為隨機訪問內存而特別設計的數據結構和演算法,這種設計使其避免了因使用排序命令而經常破壞緩存資料庫性能的問題。通過內存資料庫,減少了磁碟I/O,能夠達到了以磁碟I/O 為主的傳統資料庫無法與其相比擬的處理速度。
因此,內存資料庫技術的應用,可以大大提高資料庫的速度,這對於需要高速反應的資料庫應用,如電信、金融等提供了有力支撐。
由於把大多數數據都放在內存中進行操作,使得內存資料庫有著比磁碟資料庫高得多的性能表現,這一......>>
C. 內存資料庫,MySQL和sqlite,哪個更好
一般,內存資料庫對應磁碟資料庫,而mysql和sqlite通常指的都是磁碟資料庫的兩種不同管理系統。下面分別回答一下內存資料庫和磁碟資料庫優劣,mysql和sqlite優劣。
內存資料庫:
基於內存的具有高效I/O、高並發的資料庫。缺點存儲量有限、可恢復性差。
1.
磁碟資料庫:
基於磁碟存儲穩定、保證數據可恢復性、一致性的資料庫。缺點是實時性不足。
兩種資料庫一般來講不會沖突,沒有一個企業能夠脫離磁碟資料庫,固化的穩定的數據一般都是採用磁碟資料庫。但是,當企業面臨用戶量擴大,並發性、實時性要求不斷提高時,便會藉助內存資料庫。因此,根據你的場合選擇合適的資料庫存儲形式非常重要。對於內存資料庫,其實自己也沒怎麼用過,給你個傳送門:http://dev.yesky.com/418/35355918.shtml
2.
對於mysql和sqlite,我個人覺得目前mysql非常通用,免費開源,學習成本低,應用面廣泛,落地迅速,與各大主流的編程語言都有通用介面。相對較好,sqlite我只在學校時候用過,Σ( ° △ °|||)︴。
一起學習一起進步!
D. 內存資料庫的技術特點
(1)採用復雜的數據模型表示數據結構,數據冗餘小,易擴充,實現了數據共享。(2)具有較高的數據和程序獨立性,資料庫的獨立性有物理獨立性和邏輯獨立性。(3)內存資料庫為用戶提供了方便的用戶介面。(4)內存資料庫提供4個方面的數據控制功能,分別是並發控制、恢復、完整性和安全性。資料庫中各個應用程序所使用的數據由資料庫統一規定,按照一定的數據模型組織和建立,由系統統一管理和集中控制。(5)增加了系統的靈活性。