(上接內存數據庫介紹4.1SQLite)
4.1.2 哪些場合適合使用其他的關系型數據庫管理系統(RDBMS)
· 客戶端/服務器程序
如果你有許多的客戶端程序要通過網絡訪問一個共享的數據庫, 你應當考慮用一個客戶端/服務器數據庫來替代SQLite. SQLite可以通過網絡文件系統工作, 但是因為和大多數網絡文件系統都存在延時, 因此執行效率不會很高. 此外大多數網絡文件系統在實現文件邏輯鎖的方面都存在著bug(包括Unix 和windows). 如果文件鎖沒有正常的工作, 就可能出現在同一時間兩個或更多的客戶端程序更改同一個數據庫的同一部分, 從而導致數據庫出錯. 因為這些問題是文件系統執行的時候本質上存在的bug, 因此SQLite沒有辦法避免它們.
好的經驗告訴我們, 應該避免在許多計算機需要通過一個網絡文件系統同時訪問同一個數據庫的情況下使用SQLite.
· 高流量網站
SQLite通常情況下用作一個網站的后臺數據庫可以很好的工作. 但是如果你的網站的訪問量大到你開始考慮采取分布式的數據庫部署, 那么你應當毫不猶豫的考慮用一個企業級的客戶端/服務器數據庫來替代SQLite.
· 超大的數據集
當你在SQLite中開始一個事務處理的時候(事務處理會在任何寫操作發生之前產生, 而不是必須要顯示的調用BEGIN...COMMIT), 數據庫引擎將不得不分配一小塊臟頁(文件緩沖頁面)來幫助它自己管理回滾操作.每1MB的數據庫文件SQLite需要256字節. 對于小型的數據庫這些空間不算什么, 但是當數據庫增長到數十億字節的時候, 緩沖頁面的尺寸就會相當的大了. 如果你需要存儲或修改幾十GB的數據, 你應該考慮用其他的數據庫引擎.
· 高并發訪問
SQLite對于整個數據庫文件進行讀取/寫入鎖定. 這意味著如果任何進程讀取了數據庫中的某一部分, 其他所有進程都不能再對該數據庫的任何部分進行寫入操作. 同樣的, 如果任何一個進程在對數據庫進行寫入操作,其他所有進程都不能再讀取該數據庫的任何部分. 對于大多數情況這不算是什么問題. 在這些情況下每個程序使用數據庫的時間都很短暫, 并且不會獨占, 這樣鎖定至多會存在十幾毫秒. 但是如果有些程序需要高并發, 那么這些程序就需要尋找其他的解決方案了.
方面 |
具體要求 |
必要條件 |
詳細描述 |
License |
是否收費 |
|
免費使用 |
是否開源 |
|
開源 |
是否有技術支持 |
|
主要是社區支持,如果需要專業支持需要購買 |
商業目的的分發版本是否仍要收費 |
是 |
免費 |
其他 |
|
|
性能 |
數據容量支持100000條以上記錄 |
是 |
支持 |
并發查詢處理能力 |
|
SQLite在并發(包括多進程和多線程)讀寫方面的性能一直不太理想。數據庫可能會被寫操作獨占,從而導致其它讀寫操作阻塞或出錯。 |
查詢速度 |
是 |
|
修改速度 |
是 |
|
平臺支持 |
32/64位 |
|
全部支持 |
Linux/window/UNIX/mobile |
|
支持Linux/Mac OS/Windows |
運行方式支持 |
支持嵌入式 |
|
支持 |
支持獨立運行 |
|
不支持 |
連接方式支持 |
支持ODBC |
|
默認不支持,必須通過第三方的ODBC驅動 |
支持JDBC |
|
默認不支持,必須通過第三方的JDBC驅動 |
支持內存訪問 |
|
通過c接口(專用API) |
支持網絡訪問 |
|
不支持 |
SQL支持 |
支持SQL |
是 |
支持 |
支持Index,Trigger,
Constrains,Views |
|
支持,有資料說其不支持外鍵約束。 |
管理界面 |
支持管理界面 |
|
支持CLI |
管理界面友好程度 |
|
較差 |
4.2 Altibase
Altibase™內存數據庫管理系統(DBMS),內存數據管理系統的最新技術,是一個在事務優先的環境中提供高性能和高可用性的軟件解決方案。Altibase提供極限性能、容錯能力和事務管理的方便性,特別是在通信、網上銀行、證券交易、實時應用和嵌入式系統領域。Altibase能夠最大限度的發揮數據庫服務系統的潛力,使用Altibase能大大增強您公司的數據服務器的處理能力。
Altibase™內存DBMS為需要容錯服務的系統提供實時數據庫復制的功能。采用Altibase數據庫復制的系統可以實現高性能、高可用性、數據庫一致性、負載平衡和系統可伸縮性。如果您希望您的業務能夠實現最大的成功,請在您的事務優先的系統中使用我們的Altibase數據庫復制解決方案。
資料比較少,且需要商業License,沒有詳細去研究
4.3 Oracle 內存數據庫系列 Berkeley DB 和 TimesTen
Oracle是最重要的商業數據庫產品提供商,它也有內存數據庫的產品系列:主要就是Oracle Berkeley DB 和 Times Ten.前者是只支持嵌入式內存數據,后者是獨立的內存優化數據庫。
4.3.1 Oracle Berkeley DB
Oracle Berkeley DB是Oracle 收購了開源數據庫廠商后推出的產品,其前身是Berkeley DB。它有開源版本,但且對于開源軟件免費。商業版本是要付費。
Oracle Berkeley DB 系列的可嵌入開源數據庫為開發人員提供了無需管理的快速、可靠的本地持久性。Oracle Berkeley DB 系列通常部署為“前沿”數據庫,為不需要 SQL 的應用程序用例提供很高的性能、可靠性、可伸縮性以及可用性。
Oracle Berkeley DB 產品系列
— Berkeley DB — 事務處理式存儲引擎,用于基本鍵/值數據結構中的非類型化數據 — 新增!版本 4.7 現已推出
— 針對 Java 環境優化的純 Java 版 Berkeley DB — 新增!版本 3.3
— Berkeley DB XML — 原生 XML 數據庫,可基于 XQuery 訪問容器中存儲的文檔,并根據其內容進行索引 — 新增!版本 2.4 現已推出
4.3.2 Oracle TimesTen
Oracle 內存數據庫 TimesTen 是一個針對內存進行了優化的關系數據庫,它為應用程序提供了當今實時企業和行業(如電信、資本市場和國防)所需的即時響應性和非常高的吞吐量。Oracle 內存數據庫 TimesTen 作為獨立或嵌入式數據庫部署在應用層中,利用標準的 SQL 接口對完全位于物理內存中的數據庫進行操作。它也可以用作 Oracle 數據庫的內存中數據庫緩存,以改進用戶應用程序的響應時間和吞吐量。
4.4 eXtremeDB
eXtremeDB內存式實時數據庫是為實時系統及嵌入式系統而特別設計的數據庫。與同類產品不同,eXtremeDB不是通過對企業數據庫面向實時嵌入式應用進行剪裁而來;而是總結了30年來McObject公司在編譯器、實時編程、數據管理、內核級驅 動軟件等領域的經驗,面向實時嵌入式應用從頭開發的最新實時數據管理技術。
eXtremeDB滿足了您對實時數據庫的一切期待:高級數據定義語言、并行訪問、基于交易及靈活的索引… …等等。不僅如此,出乎您的意外,eXtremeDB在緊湊的引擎中還提供諸如事件觸發、目標歷史等等功能。
eXtremeDB嵌入式數據庫滿足更多的實時開發的要求。
· 最快的內存數據庫。
· 極小尺寸和極小的內存消耗
· 多種索引支持
· 高可用性-組合選項
· 非常靈活的數據存儲: 內存式,磁盤式或混合式
· 多種應用接口: 兩種 SQL, 兩種更快的原始接口
· 幾乎牢不可破 -
又一個商業內存數據庫產品,這個特點是實時數據庫,號稱最快。