跳至主要内容

3 篇文章 含有標籤「SQL」

檢視所有標籤

· 閱讀時間約 5 分鐘
Ckai

1. Transaction 資料庫交易

Transaction 是變更資料的流程,一個 transaction 當中可以包含多個針對資料的操作(INSERT/UPDATE/DELETE)。 執行 transaction 的結果有兩種:

  1. Transaction 內的所有操作都成功,結束交易並保存資料變動結果。
  2. Transaction 內有一個以上的操作失敗,結束交易並使資料回到交易開始前的狀態。

· 閱讀時間約 4 分鐘
Ckai

讀取現象(Read Phenomena)

在資料庫系統中,讀取現象係指在並行處理的環境下,多個交易對同一組資料進行讀取操作時可能出現的不一致。這些不一致可能影響交易的結果或導致資料不正確。

常見的讀取現象包括:

· 閱讀時間約 4 分鐘
Ckai

type DB

DB代表零或多個底層連接池的資料庫控制代碼,可安全的被多個 goroutine 同時使用。

sql套件會自動建立及釋放連接,也會維護閒置連接的自由連接池。如果資料庫有連接狀態的概念,即可穩定觀察交易(Tx)或連接(Conn)的狀態。一旦調用 DB.Begin,回傳的 Tx 將綁定到一個單獨的連接。一旦在交易中調用Commit 或 Rollback,該交易的連接將回傳到 DB 的閒置連接池中。可以使用 SetMaxIdleConns 控制池的規模。