2011-12-17 77 views
2

我想正確使用數據庫,由我自己來學習,現在我才明白,雖然我以前使用這些概念,我真的不知道什麼是它們之間的區別:數據庫事務和鎖定

什麼是交易? 什麼是鎖?

據我所知,使用事務時,所有的指令都是作爲一個執行的,所以另一個用戶不能干涉。那麼爲什麼我會在這種情況下使用鎖? 什麼時候應該使用鎖定和事務處理?

我使用MySQL,如果它的事項......當你執行查詢,並希望有一個機制來扭轉產生的修改,如果有錯誤在執行過程中可能

回答

2

交易中使用。

鎖定mysql用於獲取某個表的獨佔模式並執行更快的插入/刪除查詢,通常用於批量數據上載到繁重的使用數據庫中。

+1

是不是一個鎖定耗時? – Dragos 2011-12-17 18:36:49

+0

@Dragos如果您在大量使用情況下進行鎖定,應該使用鎖定以獲得足夠的數據量以降低速度損失 – Ulterior 2011-12-17 18:38:56

2

交易是一個單位,它是必要的保證原子性,或所有這些步驟完成或沒有做任何。有必要這麼做,因爲通常數據庫上的操作要求您執行讀取,寫入和其他操作,並且只有成功執行所有操作才能確保符合目標。

爲了更好地理解有關ACID(原子性,一致性,隔離性,持久性)的閱讀,這些特性確保了交易的可靠處理。

+0

因此,事務是自動處理的,還是我必須測試所有內容,並且在出現故障的情況下自行回滾? – Dragos 2011-12-17 19:03:43

0

交易是,我們可以說DML語句的執行。當我們使用DML語句插入,更新,選擇和刪除數據庫中的數據,然後執行事務。 在由交易管理控制的全部交易中。