2020年8月22日 星期六

SQLite和MySQL的比較

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

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

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

SQLite 的優點及缺點


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

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

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

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

優點

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

缺點

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

應用場景

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

MySQL 的優點及缺點

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

優點

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

缺點

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

應用場景

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

沒有留言:

張貼留言