2010-07-08 22 views

cevap

23

Kilitleme, rayların bir işlevi değil, yalnızca kullandığınız veritabanına bağlı olarak değişecek sorguya kilit ifadesini ekliyor. Kötümser Kilitleme, her bir sorgunun yolsuzluğa maruz kaldığını düşünerek “kötümser” bir görüşe sahiptir. Böylece, işlemi ile bitene kadar seçilen satırları kilitler. Kilitle> sorgula> kilidini aç. Bunlar veritabanına oldukça tutarlı bir veritabanı olsa da, bilmeniz gereken herhangi bir veritabanına özel şeyler için kullandığınız veritabanı belgelerini okumak iyi olabilir.

İşte iyimser ve kötümser kilitleme konusunda iyi bir iş parçacığı, bunu yapabileceğimden daha iyi açıklıyor. Optimistic vs. Pessimistic locking

+1

Teşekkür kilitleme iplik vs veritabanı kötümser kilit Aşağıda

mysql için örneklerle tanımıdır. Ben mySQL kullanıyorum bu yüzden bu dokümanlar baktım ve bu işlem taahhüt veya geri alma sırasında kilit serbest bırakılır diyor. Bir işlemin dışında nasıl çalıştığını bilmiyorum. – user26270

+1

"Kilitleme, rayların bir işlevi değildir" - İyimser kilitleme, kötümser kilitleme, DB'nin düşük seviyeli desteğine dayanır. – Felixyz

+0

Tüm veritabanını kilitler ?? – AjaxLeung

4

Evet, kilit otomatik olarak işlemin sonunda serbest bırakıldı, çünkü bu tür kilit yalnızca işlemler için geçerlidir. Kaydın bu işlemin dışında (kötümser kilit) kilitlenmesi mantıklı değildir.

Kötümser kilitler DB düzeyinde zorlanır. http://dev.mysql.com/doc/refman/5.0/en/innodb-lock-modes.html

+1

cevabını düzenleyeceğim. Bu doğru, sorgunun sonu değil, * işlemin * sonu. Önceden karışıklıklara cevabı verdim. – lzap

İlgili konular