HSQLDB

維基百科,自由的百科全書
跳至導覽 跳至搜尋
HSQLDB (HyperSQL數據庫)
HSQL數據庫管理系統
HSQL數據庫管理系統
首次發布2001年,​25年前​(2001
當前版本2.6.0(2021年3月21日,​5年前​(2021-03-21
源代碼庫
  • {{URL|example.com|可选的显示文本}}
Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
編程語言Java
引擎
    Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
    操作系統跨平台
    類型關係數據庫管理系統
    許可協議BSD許可證

    HSQLDB (Hyper SQL Database)是一個用Java編寫的關係數據庫管理系統。它有一個JDBC驅動程序並且支持一個SQL-92和SQL:2008標準的較大子集。[1]它提供了一個快速輕量級的數據庫引擎[2],該數據庫引擎提供基於磁盤和內存的表。有兩種模式:嵌入式和服務器模式可供使用。

    此外,它包括一些工具,如輕量級web服務器、命令行、GUI管理工具(可以作為應用程序單獨運行)和一些演示實例。可以在1.1版本以上的JRE上運行,包括免費JRE,如Kaffe。

    HSQLDB 遵循BSD協議。它在許多開源軟件項目中被用作數據庫和持久引擎,如OpenOffice Base、LibreOffice Base、the Standalone Roller Demo[3]、Jitsi網絡電話和視頻會議客戶端[4],還有一些商業產品,如Mathematica和InstallAnywhere(從8.0版開始)[5]

    事務支持[編輯]

    HSQLDB 的2.0版本有三個事務控制模式。它支持讀取未提交內容和可串行化隔離級別,支持表級鎖或多版本並發控制(MVCC),或者鎖和MVCC結合。版本1.8.1只支持0級別事務隔離(未提交讀)[6]

    數據存儲[編輯]

    HSQLDB有兩個主要的表類型,用於持久讀寫數據的存儲(即如果事務已成功提交,它能夠保證出現系統故障時數據不丟失,並保持其完整性)。

    默認的內存類型以SQL腳本的形式將所有的數據更改存儲到磁盤中。在數據庫引擎啟動時,這些命令將被執行同時數據將重構到內存中。雖然這種行為不適用於非常大的表,但它提供了很高的性能優勢,並且很容易調試。

    另一種表類型是緩存型,它允許以降低性能為代價,存儲千兆字節的數據。HSQLDB引擎只加載部分數據,在事務提交時將數據同步到磁盤。然而,在更新內存數據時,引擎總是會加載所有受影響的行。因此,如果不將其分成很多小任務就不可能實現大的更新[7]

    其它表類型允許讀寫csv文件訪問(例如,這些表可以參與在查詢中使用JOINs、簡化電子表格處理)和讀寫非持久內存數據存儲。

    發行版本[編輯]

    自2001年以來,HSQLDB已經發布了幾個版本。早期的版本是基於中斷的HypersonicSQL數據庫引擎。在2010年發行的2.0版本,幾乎所有的都是新代碼,是按照標準SQL和JDBC 4的規範編寫的[8]

    2.3.2版本完全是多線程的,並且支持高性能2PL和MVCC(多版本並發控制)事務控制模型。參見2.3.2版本中的新特性列表。

    相關連結[編輯]

    參考資料[編輯]

    1. ^ HSQLDB SQL Syntax. hsqldb.org. [2015-05-19]. (原始內容存檔於2012-02-23). 
    2. ^ PolePosition Performance Comparison. polepos.org. [2015-05-19]. (原始內容存檔於2015-06-04). 
    3. ^ Standalone Roller Demo. rollerweblogger.org. [2015-05-19]. (原始內容存檔於2004-10-13). 
    4. ^ Jitsi build 5390 release notes. Jitsi.org. [2015-02-01]. (原始內容存檔於2015-02-02). 
    5. ^ Software using HSQLDB. hsqldb.org. [2015-05-19]. (原始內容存檔於2015-05-03). 
    6. ^ HSQLDB Documentation. hsqldb.org. [2015-05-19]. (原始內容存檔於2012-02-23). 
    7. ^ HSQLDB Documentation. hsqldb.org. [2015-05-19]. (原始內容存檔於2015-05-02). 
    8. ^ The new HSQLDB. hsqldb.org. [2015-05-19]. (原始內容存檔於2012-02-23). 

    外部連結[編輯]

    Module:Authority_control第183行Lua錯誤:attempt to index field 'wikibase' (a nil value)