Mysql yavaş sorgu günlüğü içinde "kilit süresi" nasıl yorumlamak gerekir?


12

Nasıl en iyi MySQL yavaş sorgu günlüğünde ortaya sorguları için kilit süresini yorumlamak anlamaya çalışıyorum.

Örneğin, bir UPDATE sorgusunda 10 saniyelik kilit süresi varsa. Güncelleme sorgusu kilidi aldıktan sonra toplam süre olduğunu varsayalım. Önceki seçme sorgularının tamamlanmasını bekliyor olsa da, UPDATE eyleminin kendisini yürütmese bile, UPDATE sorgusundan sonra sıralanan tüm SELECT sorgularını kilitlediğinden saat işliyor olmalıdır.

Ve SELECT sorgu kilitleri hakkında. Neden bazı seçme sorgularının kilit süreleri vardır? Takip eden bir UPDATE sorgusu olduğundan bir tabloyu birlikte kilitliyorlar.

Yanıtlar:


19

lock_timeYavaş bir sorgu günlüğüne aslında sorgu çalışması için gereken kilidi almak için bekleyen harcanan zaman miktarıdır. Örneğin, UPDATESsorgular için bir yazma kilidi gerekir.

Kilitleme ayrıca tabloda kullandığınız depolama motoruna da bağlıdır. Yazarken, InnoDB satır düzeyinde kilitleme kullanır ve yalnızca değiştirilen satırları kilitler. MyISAM, güncelleme / ekleme / silme işlemi tamamlanana kadar tüm tabloyu kilitleyecektir.

MyISAM için tüm tablonun kilitlenmesi, SELECTsorguların yavaş sorgu günlüğünüzde bir lock_time'a sahip olmasının büyük bir nedenidir .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.