輕量級數據庫比較:SQLite、H2 和 MySQL Embedded

jopen 12年前發布 | 23K 次閱讀 SQLite 數據庫服務器

對 PHP程序員來說,SQLite可以快速的搭建數據庫開發環境,提供輕松、自容器、無配置、無獨立服務的數據庫環境,所有數據保存在一個文件里。當使用 MySQL 作為最終生產平臺時,SQLite 是不可替代的開發環境解決方案。但真的沒有其他兼容性更好的選擇了嗎?好吧,僅舉幾個原因:MySQL的兼容性和支持哈希索引,還不止這些!

當我們尋找 SQLite 的替代方案時,有兩個可選,分別是 H2 和 MySQL Embeded 版本。我關注的是可像 SQLite 一樣方便使用,但又必須兼容 MySQL。

下面我們對三個數據庫進行簡單的比較:

比較項目
SQLite H2 database engine MySQL Embedded
Footprint 350KiB ~1MB <2MB
授權協議
Public domain Dual: Modified MPL 1.1 / EPL 1.0 (commercial friendly) GPL 2.0 (only commercial friendly if not redistributed)
自容器
? ? ?
單文件 ? ? ?
無服務器 ? ? ?
服務器模式 ? ? ?
零配置 ? ? ?
事物處理 ? ? ?
索引 ? (B-tree, R-tree, full-text) ? (B-tree, tree, hash, full-text) ? (B-tree, R-tree, hash, full-text)
MySQL 兼容性
? ? (but not 100%) ?
兼容其他數據庫 ? ? MySQL, PostgreSQL, Oracle, MSSQL, DB2, HSQLDB and Derby ?
加密 ? ? ?
內存中數據庫
? ? ? (MEMORY storage engine)

 

看似 H2 管理最簡單,因此我在 PHP 下體驗了 H2 后發現的一些限制:Quercus 的 MySQL 驅動無法和 H2 的 MySQL 兼容模式良好的工作,我必須使用 Quercus 的 PDO 驅動來替代。

MySQL Embedded 則是 100% 兼容 MySQL,我還沒有開始測試。但也有一些不確定的問題,我不清楚是否可以分發包含 MySQL Embedded 的應用程序,這可能需要購買商業授權。

英文原文,OSCHINA原創翻譯

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!