內存資料庫開源
A. 開源內存資料庫有哪些
問題一:內存資料庫主流的有哪些,並給出各自特點! 這里介紹一些大型的市場佔有率比較高的內存資料庫,也是業界響當當的―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 為主的傳統資料庫無法與其相比擬的處理速度。
因此,內存資料庫技術的應用,可以大大提高資料庫的速度,這對於需要高速反應的資料庫應用,如電信、金融等提供了有力支撐。
由於把大多數數據都放在內存中進行操作,使得內存資料庫有著比磁碟資料庫高得多的性能表現,這一......>>
B. 內存資料庫主流的有哪些,並給出各自特點!
內存資料庫從范型上可以分為關系型內存資料庫和鍵值型內存資料庫。
在實際應用中內存資料庫主要是配合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客戶端。
C. 在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客戶端。
D. 內存資料庫,MySQL和sqlite,哪個更好
一般,內存資料庫對應磁碟資料庫,而mysql和sqlite通常指的都是磁碟資料庫的兩種不同管理系統。下面分別回答一下內存資料庫和磁碟資料庫優劣,mysql和sqlite優劣。
內存資料庫:
基於內存的具有高效I/O、高並發的資料庫。缺點存儲量有限、可恢復性差。
1.
磁碟資料庫:
基於磁碟存儲穩定、保證數據可恢復性、一致性的資料庫。缺點是實時性不足。
兩種資料庫一般來講不會沖突,沒有一個企業能夠脫離磁碟資料庫,固化的穩定的數據一般都是採用磁碟資料庫。但是,當企業面臨用戶量擴大,並發性、實時性要求不斷提高時,便會藉助內存資料庫。因此,根據你的場合選擇合適的資料庫存儲形式非常重要。對於內存資料庫,其實自己也沒怎麼用過,給你個傳送門:http://dev.yesky.com/418/35355918.shtml
2.
對於mysql和sqlite,我個人覺得目前mysql非常通用,免費開源,學習成本低,應用面廣泛,落地迅速,與各大主流的編程語言都有通用介面。相對較好,sqlite我只在學校時候用過,Σ( ° △ °|||)︴。
一起學習一起進步!
E. 開源的內存資料庫有哪些支持SQL基準
選擇資料庫實例—右鍵屬性—選擇【內存】選擇頁—修改內存—確定
F. 開源列式內存資料庫MonetDB有成功的商業應用嗎
MonetDB我玩過一段時間,性能測試和傳統的DB2做比較大概同樣的匯總SQL,速度快14倍左右,但是崩潰的太頻繁,目前應該是沒有商業應用
G. C#開源輕量級對象資料庫NDatabase介紹[1]
前言
NDatabase是一個易於使用的 NET對象資料庫 為了避免關系資料庫帶來的開銷 可以嘗試用NDatabase NDatabase是新一代的面向對象資料庫 個原生的 NET資料庫持久層 它的主要特徵有
·簡單 NDatabase非常簡單 很容易學習上手使用 它API是簡單 不需要學習任何資料庫映射技術 不需要對象和存儲持久層之間的映射 NDatabase以最簡單的方式存儲對象 不需要安裝和管理
·小 NDatabase 運行時小於 Kb 部署程序的時候 很容易集成到 NET應用程序中去
·安全健壯 NDatabase支持ACID事務處理 保證數據的完整性 即使在硬體故障的情況下 所有的提交工作都會應用到資料庫 在下一次啟動的時候自動執行
·單一資料庫文件 NDatabase使用單一的文件存儲所有的數據 包括元數據 對象 索引等
·生產率 NDatabase使用很少的代碼來進行數據持久化 不需要映射 因此 開發人員可以專注於業務邏輯的實現 而不是在數據持久層浪費時間
NDatabase入門
基礎設置
NDatabase中所有的資料庫引擎設置都在OdbConfiguration類中 如BTree Validation 和BTree index degree的設置都在這個類裡面 打開日誌的設置也在這個類裡面 NDatabase提供了默認的日誌類實現 ConsoleLogger 可以使用OdbConfiguration類中的EnableConsoleLogger方法進行設置 實現好自定義的日誌類後 還需要進行注冊RegisterLogger方法 才能夠使用
OdbConfiguration RegisterLogger(new Log NetLogger())
使用索引
使用IOdb介面的IndexManagerFor方法可以為指定類型添加索引 如
using (var odb = OdbFactory Open( index ndb ))
{
var fields = new[] { Name };
odb IndexManagerFor<Player>() AddUniqueIndexOn( nameIndex fields)
odb IndexManagerFor<Game>() AddIndexOn( nameIndex new[] { Result })
}
使用事務
NDatabase可以使用事務來保證數據的完整性(ACID:原子性 一致性 隔離性 持久性) 當一個NDatabase被打開後 將會自動創建一個會話 包含一個特殊的當前事務對象 這個事務對象實例管理當前所有的數據和數據操作行為
內存資料庫模式
NDatabase可以將資料庫所有數據直接載入到內存中 直接使用OdbFactory方法的 OpenInMemory即可
關於觸發器
要增加一個觸發器 首先要建立一個實現了Trigger 介面()的類 該介面有 種可用的類型(InsertTrigger UpdateTrigger SelectTrigger DeleteTrigger) 如
public class MyTrigger : InsertTrigger
{
public override bool BeforeInsert(object obj)
{ return true; }
public override void AfterInsert(object obj OID oid)
{ }
}
在使用過程中 打開資料庫後 要注冊觸發器 才能使用
var mage = new Mage( Merlin )
var myTrigger = new MyTrigger()
using (var odb = OdbFactory Open( inserting_trigger db ))
{
odb TriggerManagerFor<Mage>() AddInsertTrigger(myTrigger)
odb Store(mage)
}
lishixin/Article/program/net/201311/16138
H. 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;
}
I. redis默認超時時間
1、Redis是一個開源的內存資料庫,它不會為存儲在內存中的數據設置默認超時時間。
2、然而,Redis支持設置鍵的超時時間,這意味著可以通過設置特定的鍵來控制存儲在內存中的數據的生存時間。
3、如果沒有設置鍵的超時時間,則默認情況下該鍵的值將永久存在