最近接獲支付功能的維運工作預告,原系統的維運負責小組給了我含有WITH(NOLOCK)的sql語法,故此開始研究Lock系列文章(順便複習語法😂)。
為什麼要Lock?
多筆交易(transaction)在資料存取時會產生併發影響(concurrency effects),為了保持交易的ACID,資料的讀取或是寫入時就會做一個記號,這個記號用來告知該資料正在被讀取或寫入的狀態,其他交易則根據這個記號來判斷是否要等待此交易結束亦或是可以直接讀取該資料。而這個記號就是所謂的
Lock。
--ACID:Atomicity (完整性、不可部份完成性)、Consistency (一致性)、Isolation (隔離性、獨立性)、Durability (耐久性)