雲時代的小幫手:SQLite3

 

screenshot.png

sqlite是輕型開源的關聯式資料庫,目前最新版為sqlite3,在很多作業系統是內建就有了,不需要特別安裝,也是目前作為手機等行動裝置的輕型資料庫。在R(DBI/dplyr)和Python(sqlite3)中也有很好的支持。相對於其他開源關聯式資料庫如MySQL, PostgreSQL等

sqlite到底是輕在哪呢?有什麼特色?

screenshot.png

1. 無服務器化(serverless)
他不需要像MySQL等要執行一隻進程來提供資料庫的存儲功能,藉由放棄client/server的架構,獲得輕型的特性。
2. 低設置(zero configuration)
因為不需要服務器來運作資料庫,所以相關設置也減少
3. 跨平台(cross-platform)
資料庫可以跨平台的搬動和使用
4. self-contained/small runtime footprint
在設置或是細調時,不太需要處理太多外部的library依賴問題,基本用來創建sqlite代碼大小最多700kb,且只需不到4MB的記憶體需求來運作。
5. 支援dynamic-type system/fully in-memory database
在記憶體需求以及創建的時間都小
6. transactional
雖然輕而小,但依舊具有把存儲操作transational的功能(與資料安全性相關)
7. 支持多數SQL92標準的要求
8. 開發團隊可靠
這邊有changelog採訪SQLite的創造人Richard Hipp的音頻,裡面說他們至少會維護到2050年,非常厲害的承諾,且感覺開發者們頗樸實和專注的,應該是能做到。

SQLite不適合的使用情景:

可以理解這些使用場景的不適合,是因為SQLite選擇使用單資料儲存的關係

  1. 高transaction rates的需求(需要頻繁的修改資料庫)
  2. 上百Gb的資料量
  3. 個別使用者的權限管理
  4. 需要client/server的使用場景

 

另外,SQLite還提供方便的command line(又稱dot command),對於新手應該很快可以上手。

.help
.exit
.databases
.tables
.schema
.dump

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s