MySQL InnoDB Depolama Motoru Performans Ayar Rehberi
| PARAMETRE | VARSAYILAN | ÖNERİLEN |
|---|---|---|
| innodb_buffer_pool_size InnoDB'nin en kritik parametresi. Tüm tablo ve index verilerini bellekte tutar. | 128M | RAM'in %70-80'i |
| innodb_buffer_pool_instances Buffer pool'u parçalara böler, eşzamanlı erişim çekişmesini azaltır. | 8 | 1 per GB (max 64) |
| innodb_buffer_pool_chunk_size Buffer pool boyutu bu değerin katı olmalı. | 128M | pool_size / instances ile uyumlu |
| innodb_old_blocks_time LRU young listesine geçiş için bekleme süresi. | 1000ms | 1000ms (OLTP) 0 (Batch) |
| innodb_lru_scan_depth Page cleaner thread'in LRU tarama derinliği. | 1024 | 256-512 |
| PARAMETRE | VARSAYILAN | ÖNERİLEN |
|---|---|---|
| innodb_lock_wait_timeout Lock beklemesi için saniye cinsinden timeout. | 50 | 30-120 |
| innodb_deadlock_detect Deadlock otomatik tespiti. Yüksek eşzamanlılıkta kapatmak tartışmalı. | ON | ON |
| innodb_rollback_on_timeout Timeout'ta tüm transaction'ı geri alır (sadece son statement değil). | OFF | ON (opsiyonel) |
| transaction_isolation READ COMMITTED, gap lock'ları azaltır. GTID replikasyon için RR önerilir. | REPEATABLE-READ | RC (yüksek concurrency) |
| innodb_autoinc_lock_mode Sıralı ve bulk insert'lerde AUTO_INCREMENT kilit modunu kontrol eder. | 1 | 2 (interleaved) |
| innodb_print_all_deadlocks Tüm deadlock'ları error log'a yazar. Analiz için açık tut. | OFF | ON |
innodb_log_file_size × log_files_in_group'un %75'ini geçerse kritik uyarı!| PARAMETRE | VARSAYILAN | ÖNERİLEN |
|---|---|---|
| innodb_log_file_size Redo log dosyası boyutu. Büyük değer = daha az checkpoint I/O. | 48M | 1-4 GB |
| innodb_log_buffer_size Log buffer boyutu. Büyük transaction'lar için artır. | 16M | 64-256 MB |
| innodb_flush_log_at_trx_commit 1=ACID güvencesi, 2=1 sn veri kaybı riski ama 2-10x hızlı. | 1 | 1 (prod) 2 (perf) |
| innodb_flush_method Double buffering'i önler. Linux'ta standart öneri. | fsync | O_DIRECT |
| innodb_doublewrite Sayfa bozulmasını önler. Belirli dosya sistemlerinde devre dışı bırakılabilir. | ON | ON (prod) OFF (ZFS/Fusion) |
| innodb_log_files_in_group MySQL 8.0.30+ tek büyük log dosyasına geçti. | 2 | 2 (MySQL 8.0) |
| PARAMETRE | VARSAYILAN | ÖNERİLEN |
|---|---|---|
| innodb_io_capacity Arka planda yapılabilecek I/O ops/sn. HDD için düşük, SSD için yüksek tut. | 200 | 2000-20000 (SSD) |
| innodb_io_capacity_max Flush baskısı artınca kullanılır. io_capacity'nin 2-4 katı. | 2000 | 4x io_capacity |
| innodb_read_io_threads Async okuma thread sayısı. | 4 | 4-8 |
| innodb_write_io_threads Async yazma thread sayısı. | 4 | 4-8 |
| innodb_purge_threads Silinen satırların (undo log) temizlenmesi. | 4 | 4 |
| innodb_page_cleaners Dirty page temizleyici thread sayısı. | 4 | = innodb_buffer_pool_instances |
| innodb_thread_concurrency 0=otomatik yönetim. Sadece ince ayar gerekirse 2x CPU core. | 0 | 0 (auto) |
| PARAMETRE | VARSAYILAN |
|---|---|
| innodb_adaptive_hash_index Sık erişilen index sayfaları için hash index oluşturur. OLTP'de faydalı. | ON |
| innodb_adaptive_hash_index_parts AHI bölüm sayısı. Çekişme varsa artır (max 512). | 8 |
| innodb_change_buffering INSERT/DELETE/PURGE işlemlerini buffer'la. all genellikle en iyisi. | all |
| innodb_change_buffer_max_size Change buffer'ın buffer pool'dan alabileceği max yüzde (max 50). | 25 |
| innodb_stats_auto_recalc Tablo istatistiklerini otomatik güncelle (optimizer için). | ON |
| innodb_stats_persistent İstatistikleri diske kaydet (restart sonrası korunur). | ON |