Günlük Blog MySQL Genel Sorgu Günlüğü ve Yavaş Sorgu Günlüğü Analizi

Açık kaynak Çin OSC başlık numarasını takip edin ve en son teknik bilgileri alın

MySQL'deki günlükler şunları içerir: hata günlüğü, ikili günlük, genel sorgu günlüğü, yavaş sorgu günlüğü vb. İşte daha sık kullanılan iki işlev: genel sorgu günlüğü ve yavaş sorgu günlüğü.

1) Genel sorgu günlüğü: kurulan istemci bağlantısını ve yürütülen ifadeleri kaydedin.

2) Yavaş sorgu günlüğü: Yürütme süresi uzun sorgu süresi saniyelerini geçen tüm sorguları veya dizin kullanmayan sorguları kaydeder

(1) Genel sorgu günlüğü

Genel günlük sorgusunu öğrenirken, iki veritabanında yaygın olarak kullanılan komutları bilmeniz gerekir:

1) "% general%" gibi değişkenleri gösterin;

Geçerli genel günlük sorgusunun açık olup olmadığını, general_log değerinin AÇIK olup olmadığını, açık olup olmadığını ve KAPALI ise kapalı olup olmadığını kontrol edebilirsiniz (varsayılan olarak kapalıdır).

1) "% log_output%" gibi değişkenleri gösterin;

DOSYA (veritabanının veri dosyasında depolanan hostname.log) veya TABLE (veritabanında depolanan mysql.general_log) olabilen mevcut yavaş sorgu günlüğü çıktı biçimini görüntüleyin

Soru: MySQL genel sorgu günlüğü nasıl etkinleştirilir ve genel günlük çıktı biçimi çıktı olarak nasıl ayarlanır?

Genel günlük sorgusunu açın: global general_log = açık olarak ayarlayın;

Genel günlük sorgusunu kapat: global general_log = off;

Genel günlük çıktısını tablo moduna ayarlayın: global log_output = 'TABLE ;

Genel günlük çıktısını dosya moduna ayarlayın: global log_output = 'FILE ;

Genel günlük çıktısını tablo ve dosya moduna ayarlayın: global log_output = 'FILE, TABLE ;

(Not: Yukarıdaki komut yalnızca geçerli zaman için etkilidir. MySQL yeniden başladığında ve başarısız olduğunda, kalıcı olarak etkili olmak istiyorsanız, my.cnf'yi yapılandırmanız gerekir)

My.cnf dosyasının yapılandırması aşağıdaki gibidir:

general_log = 1 # 1, genel günlük sorgusunu aç, 0 değeri genel günlük sorgusunun kapatılması anlamına gelir

log_output = FILE, TABLE # Genel günlüğün çıktı biçimini dosya ve tabloya ayarlayın

(2) Yavaş sorgu günlüğü

MySQL'in yavaş sorgu günlüğü, MySQL tarafından sağlanan bir günlük kaydıdır. Yanıt süresi MySQL'deki eşiği aşan ifadeleri kaydetmek için kullanılır. Özellikle, çalışma süresi long_query_time değerini aşan SQL, yavaş sorgu günlüğüne kaydedilir (günlük yazılabilir) Dosyaları veya veritabanı tablolarını içe aktarın, yüksek performans gereksinimleriniz varsa, dosyalar yazmanız önerilir). Varsayılan olarak, MySQL veritabanı yavaş sorgu günlüğünü etkinleştirmez. Long_query_time'ın varsayılan değeri 10'dur (yani, 10 saniye, genellikle 1 saniyeye ayarlanır), yani 10 saniyeden fazla çalışan ifadeler yavaş sorgu ifadeleridir.

Genel olarak, büyük tablolarda yavaş sorgular meydana gelir (örneğin, bir tablodaki veri miktarı birkaç milyondur) ve sorgu koşullarının alanları dizine alınmaz. Şu anda, sorgu koşullarıyla eşleşmesi gereken alanlar tam bir tablo taraması gerçekleştirecek ve bu da zaman alıcıdır Long_query_time kontrol edildi,

Yavaş bir sorgu ifadesidir.

Soru: Yavaş sorgu günlüğünün mevcut durumu nasıl kontrol edilir?

MySQL'de komutu girin:

"% quer%" gibi değişkenleri gösterin;

Esas olarak aşağıdaki parametrelerde ustalaşın:

(1) slow_query_log Değer, yavaş sorgu günlüğünü açmak için AÇIK ve yavaş sorgu günlüğünü kapatmak için KAPALI'dır.

(2) slow_query_log_file Değer, dosyaya kaydedilen yavaş sorgu günlüğüdür ( Not: Varsayılan ad hostname.log'dur. Yavaş sorgu günlüğü belirtilen dosyaya yazılsa da, yavaş sorgunun çıktı günlük biçimini bir dosya olarak belirtmeniz gerekir. İlgili komut şudur: '% log_output%' gibi değişkenleri göster; çıktı biçimini kontrol etmek için).

(3) long_query_time Yavaş sorgu eşiği belirtilir, yani ifadenin yürütme süresi eşiği aşarsa, bu yavaş bir sorgu ifadesidir ve varsayılan değer 10 saniyedir.

(4) log_queries_not_using_indexes Değer AÇIK olarak ayarlanmışsa, dizini kullanmayan tüm sorgular kaydedilir ( Not: Yalnızca log_queries_not_using_indexes öğesi AÇIK olarak ve slow_query_log öğesi KAPALI olarak ayarlanmışsa, ayar şu anda etkili olmayacaktır, yani ayarın etkili olmasının nedeni, slow_query_log değerinin AÇIK olarak ayarlanmasıdır) ve performans ayarlaması sırasında geçici olarak açılacaktır.

Soru: MySQL yavaş sorgusunun çıktı günlük formatını dosya veya tabloya mı yoksa her ikisine birden mi ayarlayın?

Komut aracılığıyla: "% log_output%" gibi değişkenleri gösterin;

Çıktı formatı log_output değeri ile görüntülenebilir, yukarıdaki değer TABLO'dur. Elbette çıktı formatını metin olarak da ayarlayabiliriz veya hem metin hem de veritabanı tablolarını aynı anda kaydedebiliriz.Küme komutları aşağıdaki gibidir:

Tabloya #Slow sorgu günlüğü çıktısı (yani mysql.slow_log)

globallog_output = TABLE olarak ayarlayın;

# Yavaş sorgu günlüğü yalnızca metne verilir (yani: slow_query_log_file tarafından belirtilen dosya)

setglobal log_output = 'DOSYA';

# Yavaş sorgu günlüğü hem metne hem de tabloya verilir

setglobal log_output = 'DOSYA, TABLO';

Yavaş sorgu günlüğü tablosundaki verilerin veri biçimi analizi hakkında:

Myql.slow_log tablosundaki yavaş sorgu günlüğü kayıtları aşağıdaki biçime sahiptir:

Yavaş sorgu günlüğü, hostname.log dosyasına aşağıdaki biçimde kaydedilir:

İster tablo ister dosya olsun, özellikle kaydedildiği görülebilir: hangi ifade yavaş sorguya (sql_text), yavaş sorgu ifadesinin sorgu zamanına (sorgu_süresi), kilit tablo süresi (Lock_time) ve taranan satırların sayısına neden olmuştur. (Rows_examined) ve diğer bilgiler.

Soru: Geçerli sayıda yavaş sorgu ifadesi nasıl sorgulanır?

MySQL'de mevcut yavaş sorgu ifadelerinin sayısını kaydeden bir değişken vardır:

Komutu girin: "% slow%" gibi global durumu gösterin;

( Not: Yukarıdaki tüm komutlar için, parametreler MySQL kabuğundan ayarlanırsa, MySQL'i yeniden başlatırsanız, ayarlanan tüm parametreler geçersiz olacaktır. Kalıcı olarak etkili olmak istiyorsanız, yapılandırma parametrelerini my.cnf dosyasına yazmanız gerekir).

Tamamlayıcı bilgi noktaları: Günlükleri analiz etmek için MySQL'in kendi yavaş sorgu günlüğü analiz aracı mysqldumpslow nasıl kullanılır?

perlmysqldumpslow s c t 10 yavaş-query.log

Spesifik parametre ayarları aşağıdaki gibidir:

-s, sıralama yöntemini belirtir, c, t, l, r sırasıyla kayıt sayısına, zamana, sorgu zamanına göre sıralanır ve döndürülen kayıtlar, sırasıyla ac, at, al, ar, karşılık gelen geri dönüşleri gösterir;

-t top'un anlamını temsil eder ve aşağıdaki veriler öncekilerden kaçının döndürüldüğünü gösterir;

Normal ifade eşlemesi -g'den sonra yazılabilir ve büyük / küçük harfe duyarlı değildir.

Yukarıdaki parametrelerin anlamları aşağıdaki gibidir:

Sayı: 414 Cümle 414 kez çıktı;

Zaman = 3,51s (1454) En uzun yürütme süresi 3,51sn ve harcanan toplam süre 1454sn;

Kilit = 0,0 sn (0) Kilit için maksimum bekleme süresi 0 sn, kilit için toplam bekleme süresi ise 0 sn;

Satır = 2194,9 (9097604) İstemciye gönderilen maksimum satır sayısı 2194,9 ve istemciye gönderilen kümülatif işlev 90976404

( Not: Mysqldumpslow betiği perl dilinde yazılmıştır, mysqldumpslow'un özel kullanımı daha sonra tartışılacaktır)

sorun: Gerçek öğrenme sürecinde, yavaş sorgu kümesinin etkili olduğunu nasıl anlarsınız?

Çok basit, manuel olarak yavaş bir sorgu ifadesi oluşturabiliriz.Örneğin, yavaş sorgumuz log_query_time 1'e ayarlanmışsa, aşağıdaki ifadeyi çalıştırabiliriz:

uykuyu seçer (1);

Bu ifade yavaş bir sorgu ifadesidir.Bundan sonra, ilgili günlük çıktı dosyasında veya tabloda bu ifadenin olup olmadığını kontrol edebilirsiniz.

Blog yazarı: Framework Gold Digger

Günlük blog sütunu, her gün sizin için mükemmel blog yazarlarından yüksek kaliteli teknik makaleler önerir. Aynı zamanda, kullanıcılar katkıda bulunabilirler.Makale resmi hesaba dahil edildikten sonra, web sitesinin ana sayfasında önereceğiz. Dikkat Açık kaynak Çin OSC Her gün yüksek kaliteli itin, tıklayın " daha fazlasını anla "Orijinal makaleyi okuyun.

Call of Duty IV End of the World Operation Beijing (BJ) 40 PLUS ikilisi Huanxin listelendi
önceki
İyi metin çevirisi BeautifulSoup ve Selenium ile web kazıma
Sonraki
Pilotları işe alırken hiçbir yara izine izin verilmez Yaralı pilot gökyüzüne uçmaya devam edebilir mi?
Çukurda Apple kablosuz kulaklık airpods deneyimi: yenilmez rahatlık, tek kelime "harika"!
Iwei Yumurtalı Rulo Bileklik Değerlendirme: Tüm işlevler yeterince şık, akıllı bileklik maliyet performansı için ilk tercihtir
Airmaster A380, Avrupalıların gururudur 15 yıldan az bir süre sonra neden iflas ilan etti?
İspanyol Binasını 100 milyonu aşkın kayıpla satmak Wang Jianlin'in denizaşırı "küçük hedefi" hayal kırıklığına uğramış.
Araçların İnterneti sektörünün dönüşümünü hızlandıran beş unsur ve tarihi fırsatlar ortaya çıktı
Açık kaynak yazarlar JD'nin ağır projelerinin intihalini kınadılar
"Hayal kırıklığına uğramış" Dianrong.com'dan sonra, kurucu Guo Yuhang'ın yeni başkent haritası
En iyi Snapdragon 845+ kablosuz şarj Xiaomi MIX 2S cep telefonu resmi olarak piyasaya sürüldü
Günlük blog | Dubbo'nun entegrasyonunu ve kullanımını anlamak için bir makale
2018 Küresel Otomotiv AI Konferansı düzenlendi Tencent, yapay zekayı otomotiv endüstrisi ile entegre etmenin yollarını bulmak için akıllıca bir araya geldi
Tarihteki en güçlü Xiaomi amiral gemisi ürünü! Xiaomi MIX 2S ilk değerlendirme
To Top