天天看點

5個用于移動開發的最流行資料庫

嵌入式資料庫是輕量級的,獨立的庫,沒有伺服器元件,無需管理,一個小的代碼尺寸,以及有限的資源需求。目前有幾種嵌入式資料庫,你可以在移動應用程式中使用。讓我們來看看這些最流行的資料庫。

  資料庫

  資料類型存儲

  license支援平台

  berkeleydbrelational, objects, key-value pairs, documentsagpl 3.0android, ios

  couchbase litedocumentsapache 2.0android, ios

  leveldbkey-value pairsnew bsdandroid, ios

  sqliterelationalpublic domainandroid, ios, windows phone, blackberry

  unqlitekey-value pairs, documentsbsd 2-clauseandroid, ios, windows phone

  1. berkeley db

  berkeley db 是由美國 sleepycat software 公司開發的一套開放源代碼的嵌入式資料庫管理系統(已被 oracle 收購),它為應用程式提供可伸縮的、高性能的、有事務保護功能的資料管理服務。

  berkeley db(bdb)是一個高效的嵌入式資料庫程式設計庫,c語言、c++、java、perl、python、tcl 以及其他很多語言都有其對應的 api。berkeley db 可以儲存任意類型的鍵/值對(key/value pair),而且可以為一個鍵儲存多個資料。berkeley db 支援讓數千的并發線程同時操作資料庫,支援最大 256tb 的資料,廣泛用于各種作業系統,其中包括大多數類 unix 作業系統、windows 作業系統以及實時作業系統。

  2. couchbase lite

  couchbase lite 是一個為滿足線上和離線的移動應用所開發的超輕量的,可靠的,并且安全的 json 資料庫。即使在最不确定的網絡條件下,亦可以給您的移動應用提供富有成效的和可靠的信譽。除此之外,’同步門戶’功能亦可以提供協作, 社互動動或者是使用者的更新。

  3. leveldb

  leveldb 是 google 開源出的一個 key/value 存儲引擎,它采用 c++ 編寫的,支援高并發通路和寫入,特别适合對于高寫入業務環境。

  對于 leveldb 的概覽可以參考資料分析與處理之二(leveldb 實作原理)對 leveldb 的一個描述,本文的圖解更多的是 leveldb 的一個實作層的糾纏,版本為 leveldb 1.7.02。

  leveldb 存儲主要分為 sstable 和 memtable,前者為不可變且存儲于持久裝置上,後者位于記憶體上并且可變(在 leveldb 中有兩個 memtable,一個為目前寫入 memtable,另一個為等待持久化的不可變 memtable)。首先來看 sstable 的實作層分析。

  4. sqlite

  sqlite 是一個開源的嵌入式關系資料庫,實作自包容、零配置、支援事務的 sql 資料庫引擎。 其特點是高度便攜、使用友善、結構緊湊、高效、可靠。 與其他資料庫管理系統不同,sqlite 的安裝和運作非常簡單,在大多數情況下 - 隻要確定 sqlite 的二進制檔案存在即可開始建立、連接配接和使用資料庫。如果您正在尋找一個嵌入式資料庫項目或解決方案,sqlite 是絕對值得考慮。

  5. unqlite

  unqlite 是,由 symisc systems 公司出品的一個嵌入式c語言軟體庫,它實作了一個自包含、無伺服器、零配置、事務化的nosql 資料庫引擎。unqlite是一個文檔存儲資料庫,類似于 mongodb、redis、couchdb 等。同時,也是一個标準的 key/value 存儲,與 berkeleydb 和 leveldb 等類似。

  unqlite 是一個嵌入式nosql(鍵/值存儲和文檔存儲)資料庫引擎。不同于其他絕大多數 nosql 資料庫,unqlite 沒有一個獨立的伺服器程序。unqlite 直接讀/寫普通的磁盤檔案。包含多個資料集的一個完整的資料庫,存儲在單一的磁盤檔案中。資料庫檔案格式是跨平台的,可以在32位和64位系統或大端和小端架構之間,自由拷貝一個資料庫