Ana Sayfa

MySQL Sorgu Planlarını İnteraktif FlameGraph'lerle Görselleştirin

1 dk okuma

myflames, MySQL sorgu yürütme planlarını interaktif FlameGraph'ler ve çubuk grafikler olarak görselleştirmek için tasarlanmış açık kaynaklı bir araçtır. Brendan Gregg'in FlameGraph projesinden ve Tanel Poder'in SQL Plan FlameGraphs çalışmalarından ilham alan bu araç, geliştiricilere ve veritabanı yöneticilerine sorguların performans darboğazlarını kolayca tespit etme imkanı sunar. Araç, sorgu yürütme akışını ve zaman dağılımını hiyerarşik bir şekilde gösteren FlameGraph'ler ile en yavaş işlemleri öne çıkaran basit yatay çubuk grafikler sunar.

myflames'in temel özellikleri arasında tam sayfa, yakınlaştırma, arama ve detaylı araç ipuçları içeren interaktif görselleştirmeler bulunur. Otomatik ölçeklendirme sayesinde hızlı sorgular için milisaniye (ms) ve mikrosaniye (µs) arasında geçiş yapabilir. Araç ipuçları, satırlar, döngüler, maliyet ve koşullar gibi detaylı metrikleri göstererek sorgu planının derinlemesine analiz edilmesine olanak tanır. Kullanıcılar, görselleştirmeler üzerinde tıklayarak yakınlaştırma yapabilir, belirli işlemleri arayabilir ve klavye kısayollarını kullanabilir.

Aracın çalışabilmesi için Perl 5.x ve EXPLAIN ANALYZE FORMAT=JSON ile JSON formatı sürüm 2'yi destekleyen MySQL 8.4+ gereklidir. explain_json_format_version ayarının 2 olarak belirlenmesi, aracın doğru JSON çıktısını alması için kritik öneme sahiptir. Kullanım adımları oldukça basittir: myflames reposunu klonlayın, sorgunuzu EXPLAIN ANALYZE FORMAT=JSON ile çalıştırın, çıktıyı bir JSON dosyasına kaydedin ve ardından oluşturulan SVG dosyasını bir tarayıcıda açarak interaktif görselleştirmeyi görüntüleyin. Bu, özellikle karmaşık sorguların performansını anlamak ve optimize etmek isteyenler için değerli bir kaynaktır.

İçgörü

Bu araç, MySQL sorgu performansını görsel olarak analiz ederek geliştiricilerin ve veritabanı yöneticilerinin darboğazları daha hızlı tespit etmesine ve optimize etmesine yardımcı olur.

Kaynak