H2:开源内存数据库引擎
本資源由伯樂在線-劉立華整理
H2是一個開源的內存數據庫。Java編寫、快速、小巧(1.5MB jar包)還提供了Web控制臺管理數據庫內容。
主要功能
非常快速的數據庫引擎。
開源。
Java編寫。
支持標準SQL、JDBC API。
支持嵌入式模式、服務器模式和集群。
強大的安全功能。
支持PostgreSQL的ODBC驅動。
多版本并發。
附加功能
支持基于硬盤或內存數據庫和表、只讀數據庫、臨時表。
支持事務(read committed),兩步提交機制(2-phase-commit)。
多個連接,表級鎖。
基于成本的優化、復雜查詢采用遺傳算法、零管理。
支持可滾動和可更新的結果集、大結果集、外部結果排序、函數可以返回結果集。
加密的數據庫(AES)、SHA-256加密的密碼、加密功能、SSL。
SQL支持
支持多schema、information schema(Support for multiple schemas, information schema)。
參照完整性/使用級聯外鍵約束、check約束。
內連接和外鏈接、子查詢、只讀視圖和內嵌視圖。
觸發器及Java函數/存儲過程。
很多內置功能,包括XML和無損壓縮。
廣泛的數據類型,包括大對象(BLOB/CLOB)和數組。
隊列和自增長的列、計算列(可用于基于索引的功能)。
支持ORDER BY、GROUP BY、HAVING、UNION、LIMIT、TOP。
支持排序規則,包括ICU4J庫。
支持用戶和角色。
兼容模式支持IBM DB2、Apache Derby、HSQLDB、MS SQL Server、MySQL、Oracle、和PostgreSQL等。
安全功能
包括對SQL注入問題的解決方案。
使用SHA-256和鹽(SHA-256 and salt)認證用戶密碼。
對于服務器模式的連接,用戶密碼從不會以純文本格式通過網絡傳輸。
所有數據庫文件(包括用于備份數據的腳本文件)可使用AES-128算法加密。
遠程JDBC驅動支持通過TLS的TCP/IP連接。
內置的web服務器支持通過TLS連接。
密碼使用char數組發送到數據庫,而不是String。
其它功能和工具
體積小巧(小于1.5MB),低內存需求。
多種索引類型(b-tree、tree、hash)。
支持多維索引。
支持CSV文件。
支持鏈表,及一個內置的虛擬“range”表。
支持EXPLAIN PLAN聲明;復雜的跟蹤選項。
數據庫關閉可以延遲或者禁用以提高性能。
自帶基于web的控制臺應用(已譯成多國語言)。
數據庫可以生成SQL腳本文件。
包含一個恢復工具,可以轉儲數據庫內容。
支持變量(例如計算運行總和)。
自動重新編譯預處理語句。
使用少量數據庫文件。
為每一條記錄和日志條目使用校驗和以保證數據完整性。
經過充分測試(高覆蓋率、隨機壓力測試)。
連接模式簡介
支持以下三種模式:
嵌入式模式(使用JDBC的本地連接)。
服務器模式(使用JDBC或ODBC的通過TCP/IP的遠程連接)。
混合模式(本地和遠程連接同時存在)。
嵌入式模式
在嵌入式模式下,應用程序使用和JDBC相同的JVM打開數據庫。這是最快、最簡單的連接方式。缺點是數據庫任何時候只在一個虛擬機中打開。同時支持持久化和在內存中存儲數據。沒有同時打開數據庫的數量限制,沒有連接數限制。
服務器模式
當使用服務器模式時(也稱作遠程模式或者客戶端/服務端模式),應用程序使用 JDBC或ODBC API以遠程方式打開數據庫。數據庫服務器需要在相同或者另外的虛擬機,或者干脆另外一臺計算機啟動。 很多應用程序可以同時通過連接到這臺服務器連接同一個數據庫。在內部,該服務器進程以嵌入式模式打開多個數據庫。 由于所有數據通過TCP/IP傳輸,服務器模式要比嵌入式模式慢一些。同時支持持久化和在內存中存儲數據。每臺服務器沒有同時打開數據庫的數量限制,沒有 連接數限制。
混合模式
混合模式是嵌入式模式和服務器模式的組合。第一個應用程序在嵌入式模式中連接到數據 庫,但也啟動了一個數據庫服務器,這樣其他應用程序(運行在不同進程或虛擬機中)可以同時訪問數據。本地連接像嵌入式模式一樣快速,遠程連接稍慢。 數據庫服務器可以通過API,或者自動化(自動混合模式)啟停。當使用自動混合模式時,所有要連接數據庫的客戶端可使用完全相同的URL。
開發資源
下載
安裝步驟
速查表(CheetSheet)
新手指南
教程
功能列表
性能
高級功能
參考資源
SQL語法
函數
數據類型
Javadoc
PDF (1 MB)
架構介紹
官方網站:http://www.h2database.com/
開源地址:https://github.com/h2database/h2database
from:http://hao.jobbole.com/h2-2/
總結
以上是生活随笔為你收集整理的H2:开源内存数据库引擎的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是HTTP? 什么是超文本? 什
- 下一篇: 榴莲中国有产地吗