Sql-Server
社交媒體範例中的數據庫連接和會話
我指的是 MS SQL 連接和會話。我知道每個應用程序都應該建立一個連接才能訪問數據庫,並且每個連接都可以有多個會話。如果社交媒體網站有多個使用者,每個使用者都有自己的安全憑證;是否每個使用者都必須連接到使用者需要的所有數據庫,並且針對不同的操作(例如刪除文章或上傳圖片)進行相應的會話?或者這個應用程序不是使用者的術語?我對這個術語不熟悉,對可能的誤解深表歉意。
謝謝你的時間。
公共站點使用者的身份驗證和授權通常在應用層完成。然後,應用程序服務使用數據庫連接的服務憑證而不是最終使用者憑證來完成數據庫訪問。應用程序服務為許多最終使用者會話提供請求(不要與數據庫連接/會話混淆)。這種 n 層架構極大地提高了可擴展性。
在使用 MARS(多個活動結果集)的情況下,可以使用單個數據庫連接來交錯執行查詢。每個會話使用相同的連接憑據。請注意,MARS 用於專門的數據訪問需求。通常,客戶端應用程序數據庫連接和會話之間存在一對一的關係。
連接池對於可伸縮性也非常重要。池化避免了在建立初始連接後建立物理網路連接和授權的成本。在重用池連接上執行查詢時,會話會自動重置,無需額外的往返行程。這就是許多 SQL Server 客戶端 API 預設使用輪詢的原因。