單用戶數據庫和多用戶數據庫有什麼區別?爲什麼我需要使用單個用戶數據庫?爲什麼是這樣做的?單用戶數據庫vs多用戶數據庫
如果我有多個線程使用相同的登錄憑據在同一時間訪問同一個數據庫,那麼是否需要多用戶數據庫?
單用戶數據庫和多用戶數據庫有什麼區別?爲什麼我需要使用單個用戶數據庫?爲什麼是這樣做的?單用戶數據庫vs多用戶數據庫
如果我有多個線程使用相同的登錄憑據在同一時間訪問同一個數據庫,那麼是否需要多用戶數據庫?
單用戶數據庫和多用戶數據庫的區別是什麼 數據庫?爲什麼我需要使用單個用戶數據庫?爲什麼是 ?
單用戶模式只允許在給定時刻一次連接到數據庫。
由於您已將此問題標記爲SQLite,因此我將根據該特定引擎進行回答。
SQLite的併發保護模型基於對磁盤上的數據庫文件的直接文件讀取和寫入,所以顯然兩個不同的程序不能同時寫入磁盤上的同一文件。在對數據庫文件進行更改時,SQLite將強制第二個查詢等待。
當插入和更新完成時,SQLite使用操作系統文件鎖來防止文件/數據庫損壞。但它確實允許同時使用多個只讀句柄(就像您可以在桌面上以只讀方式多次打開相同文件一樣,但無法保存更改)。
在其他數據庫如SQL Server中,單用戶模式通常只在數據庫需要維護時才使用 - 例如恢復備份文件,更改數據庫結構或更改全局數據庫設置。
單用戶模式很有用,因爲您在進行這些更改時無法連接客戶端並嘗試讀取/寫入數據。
但是在正常情況下,出於性能原因,您不希望以單用戶模式運行SQL Server。但是,除非您有大量的Web服務,否則SQLite可能能夠處理性能需求,儘管每次在磁盤上進行更改都是如此。
如果我有多個線程在同一時間使用相同的登錄憑據訪問同一個數據庫,那麼是否需要多用戶數據庫?
不,它仍然有效。 SQLite數據庫根本不需要身份驗證,除了文件/目錄權限外,沒有任何證書。