mysql kilitlenme ve kilitlenme günlük analizi

Kilitlenme kavramı

Kilitlenme: Kilitlenme genellikle birbirlerinin kaynaklarını bekleyen ve sonunda bir döngü oluşturan işlemlerden kaynaklanır.

Kilitlenme için, veritabanı işleme yöntemi: başka bir bağlantının başarılı bir şekilde yürütülmesini sağlamak için bir bağlantıyı feda etmek.

Bir kilitlenme durumunda, ERROR: 1213 döndürür. InnoDB depolama motoru, çoğu kilitlenmeyi algılayabilir ve insan müdahalesi gerektirmez.

Not:

InnoDB depolama motoru, engelleme bölümündeki örnekte olduğu gibi hata istisnalarının çoğunu geri almaz, ancak kilitlenmeler hariçtir.Bir kilitlenme bulunduğunda, InnoDB depolama motoru bir işlemi hemen geri alır ve bir 1213 hatası verir.

Kilitlenme durumlarına örnekler

eg1:

Kilitlenme günlüğünü analiz edin:

ilk kısım

Günlükten, işlem 1'in şu anda info_users set mobile = '18514656666' güncellemesini yürüttüğünü görebiliriz, burada mobile = '18514656620', bu ifade tablo info_users'ın IDX_MOBILE endeksinin X kilidi için geçerlidir, bu nedenle lock_mode X bekleme

ikinci kısım:

Ardından, günlüğün alt kısmında işlem 2 için mevcut "tutulan kilitler" ve "bekleyen kilitler" gösterilir:

Günlüğün HOLDS THE LOCKS (S) bloğundan, işlem 2'nin IDX_MOBILE indeksinin X kilidini tuttuğunu ve bunun bir kayıt kilidi olduğunu görebiliriz. Kilit, 2. adımda işlem 2 tarafından yürütülen güncelleme ifadesiyle uygulanır.

Günlüğün BU KİLİT VERİLMESİ BEKLENMESİ bloğundan, işlem 2'nin bilgi_are tablosunun GEN_CLUST_INDEX endeksini tutan X kilidi için uygulandığını görebiliriz. Kilit, id = 1; ifadesi yer alan info_area'dan silme işlemi ile uygulanır.

eg2:

eg3:

Kilitlenme günlüğünü analiz edin:

ilk kısım

Günlükten, işlem 1'in şu anda kullanıcılardan DELETE'i yürüttüğünü görebiliriz, burada uid = 'bbb';, bu ifade UID dizininin X kilidi için geçerlidir, bu nedenle kilit_modu X beklemesini ister

ikinci kısım:

Ardından, günlüğün alt kısmında işlem 2 için mevcut "tutulan kilitler" ve "bekleyen kilitler" gösterilir:

Günlüğün HOLDS THE LOCKS (S) bloğundan, işlem 2'nin UID indeksinin X kilidini tuttuğunu ve bunun bir kayıt kilidi olduğunu görebiliriz. Kilit, 2. adımda işlem 2 tarafından yürütülen silme ifadesi tarafından uygulanır.

Günlüğün BU KİLİT VERİLECEK BEKLENMESİ bloğundan, işlem 2'nin INTO users VALUES (2, 'bbb'); deyimi tarafından uygulanan UID dizinini tutan S kilidi için uygulandığını görebiliriz. Ek deyimi normal koşullar altında bir X kilidi için geçerli olacaktır, ancak burada bir S kilidi görünür. Bunun nedeni, uid alanının bir dizin olmasıdır, bu nedenle, insert deyimi eklemeden önce yinelenen bir anahtar denetimi gerçekleştirecektir. Bu denetimi başarılı kılmak için, diğer işlemlerin uid alanını değiştirmesini önlemek için bir S kilidi başvurmanız gerekir.

Peki S kilidi neden başarısız oluyor? Bu, sıraya alınması gereken aynı alan için kilit uygulamasıdır. S kilidinden önce başarısız bir X kilidi vardır, bu nedenle S kilidinin beklemesi gerekir, böylece dairesel bir bekleme oluşur ve bir kilitlenme oluşur.

Kilitlenme günlüğünü okuyarak, iki işlemin ne tür bir döngüsel bekleme oluştuğunu net bir şekilde anlayabilir ve sonra analiz ederek döngüsel beklemenin nedenini, yani kilitlenmenin nedenini tersine çıkarabiliriz.

Günlük limit devam ettirme-A hisseleri önümüzdeki hafta büyük testi karşılayacak
önceki
FAW-Volkswagen'in SUV Forester hibrit versiyonunu arka arkaya piyasaya sürmesiyle nasıl başa çıkılır?
Sonraki
60.000'den fazla olduğu sürece, Trumpchi'den daha iyi görünüyor, iç işçilik ortak girişime kaybetmiyor ve garanti bir milyon kilometre!
FAW-Volkswagen, SUV ve üçüncü marka saldırısının hazırlıklarını tamamladı
Eski liderin çevre koruması, günlük sınır dalgasını başlatacak olan tekrar patlak verdi.
LOL Wei Shen, PlayerUnknown's Battlegrounds'un yapışkan pirinç eklentisi olayına yanıt verir ve masumiyetini kanıtlamak için yeni bir fare satın alır.
Bir kadın sürücünün kurtuluşu, arabayı otomatik olarak bloke etmek için 60.000 yuan
Lavida'yı almak için yeni bir araba satın alıp Shanghai markasını almak mı? SAIC Volkswagen bu araba yüzünden perişan oldu
Satış hacmi Camry'den daha yüksek ve dingil mesafesi yaklaşık 3 metre, bu da yerli arabalardan daha gelişmiş, sadece 120.000'e satıldı.
Java Sistem Öğrenme Yol Haritasının Özeti
LOL Star Guardians üyelerinin arka plan öyküsünü ilk güncelleyin, bilmediğiniz küçük yumurtalar var
Bu yeni araba yapım güçlerinin başlangıcı hakkında ne düşünüyorsunuz? Yeni enerji çağı gerçekten ne zaman gelecek?
Yüksek bir görünüme ve yüksek konfigürasyona sahip ve iç mekanı oldukça BMW benzeri.Arabanın bir sonraki halefi o!
Wenyuan topluluğunun inşaat atıkları haftada bir veya iki kez mi temizleniyor? Mülkiyet: Çifte yenilik döneminde, şehir çöp kamyonları ayarlamak için çok meşgul!
To Top