輕量級數據庫比較:SQLite、H2 和 MySQL Embedded
對 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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!