SQLite 與 MySQL 的差別

SQLite vs MySQL

EREN
erens-tech-book
6 min readApr 17, 2019

--

最近在工作上有需要用到 SQLite,因為我是待在 Fabless 中的 Analog Circuit Design Team,大部分成員的背景是 EE,因此對於 RDB、SQL 沒有比純軟體領域的熟悉。

這篇會整理網路上的文章,說明 SQLite 與其他資料庫的不同之處,使用情境及優缺點。我們將與另一個熱門的資料庫 MySQL 做比較。

關聯式資料庫管理系統( Relational Database Management Systems, RDBMS)

SQLite 和 MySQL 都是一種 RDBMS,資料庫是一種以表格(Table)作為基礎的資料儲存系統,每個表格由許多的行(Column,也稱 Field)與列(Row,也稱 Record)所組成。

對於未曾接觸的人來說,你可能會想 excel 也能夠儲存表格。但資料庫適合處理大量的資料,使得讀寫更加容易並且更安全。

SQLite 的優點及缺點

Small. Fast. Reliable. Choose any three.

SQLite 如同它名稱中的 Lite,意指它在設定、管理和所需的資源方面都更加輕量。

SQLite 並非作為一個獨立的進程(Process)通過通信協議與應用程式連接,而是直接作為應用程式的一部份,這樣子的特色使它非常的快速及高效。

SQLite does not compete with client/server databases. SQLite competes with fopen().

SQLite 有些顯著的特色:自包含(self-contained)、無伺服器(serverless)、零配置(zero-configuration)、事務性(transactional)

http://www.sqlitetutorial.net/what-is-sqlite/

優點

  1. 容易設定。基於無伺服器的特性,你非常的容易安裝且零配置。
  2. 可攜且跨平台。SQLite 是基於單一文件所組成且格式定義明確的資料庫,使得它的可攜性和跨平台性極佳,備份也極度方便(你只需要使用 cp )。
  3. 適合開發及測試。由於其自包含特性,在開發階段中你可以使用 SQLite 作為替代手段。

缺點

  1. 不提供網路訪問
  2. 不適用大型應用程式
  3. 缺少提升效能的手段
  4. 沒有用戶管理

應用場景

  1. 嵌入式設備及物聯網
  2. 作為磁碟文件的替代儲存格式
  3. 中低流量網站
  4. 資料分析。你能輕易地使用者種格式處理資料集,且輕易地將其分享給其他人使用。
  5. 資料緩存。許多場景中會將 SQLite 作為資料緩存的手段,避免了網路往返和中央資料庫伺服器的負載。
  6. 伺服器端資料庫。你可以使用 SQLite 作為伺服器端資料庫的底層儲存引擎。
  7. 開發或測試階段的替代及臨時方案
  8. 適合教育及培訓。輕易地設置性很適合用於 SQL 的教學引擎。

MySQL 的優點及缺點

MySQL 是最熱門的 RDBMS 之一,許多的網站及應用程式都使用它。你能使用 TCP / IP 協議來從資料庫接受或發送資料。

http://www.sqlitetutorial.net/what-is-sqlite/

優點

  1. 功能豐富及強大。MySQL 支援絕大多數 RDBMS 都應有的功能。
  2. 用戶管理功能
  3. 內置許多安全功能
  4. 更精細的交易及鎖定( Transaction & Locking)
  5. 更好的並發性(Concurrency)

缺點

  1. 可攜性及跨平台性較差。
  2. 可靠性問題。MySQL 針對某些功能的實現,相較其他 RDBMS 缺少些可靠性。
  3. 開發速度放緩。儘管 MySQL 仍是開源的,但自從被收購以後開發進展已經緩慢。

應用場景

  1. Client/Serve 需通過網路連接資料庫的場景。SQLite 在網路文件系統的場景下有一定程度的延遲,且文件鎖定邏輯並不適用在許多網路文件系統的實現中,因此你應該考慮如 MySQL 這樣的 RDBMS。
  2. 需要多個客戶訪問及使用同一個資料庫
  3. 高流量網站
  4. 需要高度的資料寫入量。SQLite 受到了單個寫入的局限,因此寫入量表現較差。
  5. 更大規模的資料。如果你的資料增長到單個磁盤無法容入的大小,你應該考慮 MySQL 這類的 RDBMS,SQLite 僅支持最大 140 TB 的資料庫

參考資料

--

--

EREN
erens-tech-book

“I’m quite illiterate, but I read a lot. “ — J.D.Salinger, The Catcher in the Rye