MySQL'de Uzun Süredir Açık InnoDB Transaction'ları
Açık transaction'ları yaşlarına, kilitledikleri satırlara ve son sorgularına göre listeler. Purge'ı engelleyen ve history list'i şişiren işlemleri bulur.
SELECT trx_id, trx_state, trx_started,
TIMESTAMPDIFF(SECOND, trx_started, NOW()) AS age_sec,
trx_rows_locked, trx_rows_modified,
trx_mysql_thread_id AS thread_id,
LEFT(trx_query, 200) AS query
FROM information_schema.innodb_trx
ORDER BY trx_started;
SELECT name, count FROM information_schema.innodb_metrics WHERE name = 'trx_rseg_history_len';History list length sürekli artıyorsa uzun açık transaction vardır.
- Bu script salt okunur (read-only) teşhis için tasarlanmıştır; doğrudan veri veya şema değişikliği yapmaz.
- Ağır yük altındaki üretim sunucularında çalıştırmadan önce hedef veritabanı sürümünü (Min. Sürüm: 5.7) doğrulayın.
- İlişkili oturumu sonlandırma veya indeks silme gibi yazma etkili aksiyonlar için notlar bölümündeki komutları temkinli uygulayın.
Diğer MYSQL Teşhis Scriptleri
Tümünü Gör (100)MySQL'de Uzun Süren Sorguları Bulma
Processlist üzerinden 60 saniyeden uzun süren aktif sorguları listeler. Yavaşlama ve kilitlenme olaylarında hızlı teşhis sağlar.
MySQL InnoDB Kilit Beklemelerini ve Bloklayan Sorguyu Bulma
sys şeması ile bekleyen ve bloklayan oturumları, kilit modlarıyla birlikte gösterir. Hangi işlemin hangisini beklettiğini tek sorguda çözer.
MySQL'de En Büyük Tabloları ve Disk Kullanımını Listeleme
Veri, indeks ve boş alan boyutlarını tablo bazında sıralar. Kapasite planlaması ve arşivleme kararları için temel veridir.
MySQL Kullanılmayan İndeksleri Tespit Etme
sys.schema_unused_indexes ile hiç kullanılmamış indeksleri listeler. Yazma performansını düşüren gereksiz indeksleri güvenle temizlemeye yardımcı olur.