Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

MySQL/MariaDB için my.cnf Dosyasında Temel Performans Ayarlarını Yapılandırma Rehberi

devron

Üye
Katılım
14 Mart 2026
Mesajlar
5
Merhaba arkadaşlar, bugün sizlere özellikle yeni başlayan sistem yöneticilerinin kafasını karıştıran, ancak veritabanı performansı için hayati önem taşıyan `my.cnf` (veya `my.ini`) dosyasındaki temel ayarlardan bahsedeceğim. Doğru yapılandırılmış bir MySQL/MariaDB, web sitenizin veya uygulamanızın hızını ve stabilitesini gözle görülür şekilde artırır. Bu rehberde, genel kullanıma uygun, güvenli ve performanslı bir başlangıç konfigürasyonu oluşturacağız.

📊 Temel Kavramlar ve Ön Hazırlık
İşe başlamadan önce, sunucunuzdaki mevcut RAM miktarını bilmeniz çok önemli. Ayarların çoğu buna göre şekillenecek. Ayrıca, değişiklik yapmadan önce mevcut `my.cnf` dosyanızın yedeğini almayı unutmayın. Dosya genellikle /etc/mysql/my.cnf veya /etc/my.cnf dizinindedir.

Bash:
sudo cp /etc/mysql/my.cnf /etc/mysql/my.cnf.backup

⚙️ Bağlantı ve Bellek Ayarları
Bu bölüm, veritabanının aynı anda kaç kullanıcıya hizmet vereceğini ve ne kadar RAM kullanacağını belirler. Benim 4-8 GB RAM'li sunucularım için genelde kullandığım temel ayarlar şöyle:

INI:
[mysqld]
# Bağlantı Ayarları
max_connections = 150
connect_timeout = 10
wait_timeout = 600
interactive_timeout = 600

# Bellek (RAM) Ayarları
key_buffer_size = 256M
max_allowed_packet = 64M
thread_cache_size = 8
sort_buffer_size = 4M
read_buffer_size = 2M
read_rnd_buffer_size = 4M
join_buffer_size = 4M

max_connections: Eşzamanlı bağlantı sayısı. Çok yüksek tutmak kaynak tüketir, düşük tutmak da kullanıcıları reddeder. 150 iyi bir başlangıç noktasıdır.
key_buffer_size: MyISAM tabloları için indeks önbelleği. Eğer sadece InnoDB kullanıyorsanız (ki önerilir), bu değeri düşük (16M-64M) tutabilirsiniz.

🚀 InnoDB Motoru için Kritik Ayarlar
Modern uygulamaların neredeyse tamamı InnoDB depolama motorunu kullanır. Bu motorun performansı için aşağıdaki ayarlar şarttır. innodb_buffer_pool_size ayarı, performans için EN ÖNEMLİ ayardır. Mümkünse mevcut RAM'inizin %70'ini buraya ayırın.

INI:
# InnoDB Ayarları
default_storage_engine = InnoDB
innodb_buffer_pool_size = 2G
innodb_log_file_size = 256M
innodb_log_buffer_size = 16M
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DIRECT
innodb_read_io_threads = 64
innodb_write_io_threads = 64

innodb_buffer_pool_size: Veri ve indekslerin önbelleklendiği ana bellek alanı. 2GB, 4-8GB RAM'li bir sunucu için makuldur.
innodb_file_per_table = 1: Her tabloyu kendi dosyasında tutar, yönetimi ve yedeklemeyi kolaylaştırır.
innodb_flush_log_at_trx_commit = 2: Performans için önemli bir ayardır. Veri güvenliğinden biraz ödün verip (saniyede bir diske yazar) ciddi performans kazandırır. Kritik finansal işlemlerde 1 değerini kullanın.

⚠️ Dikkat Edilmesi Gerekenler ve Optimizasyon
Bu ayarları yaptıktan sonra mutlaka MySQL/MariaDB servisini yeniden başlatın. Ancak dikkat! Her sunucunun yapısı farklıdır. Bu ayarlar bir "başlangıç şablonu"dur. Kesinlikle kendi yükünüzü, sorgularınızı ve sunucu metriklerinizi (CPU, RAM, Disk I/O) izleyerek ince ayar yapmalısınız.

Bash:
sudo systemctl restart mysql  # veya mariadb

Ayrıca, değişiklik sonrası logları (/var/log/mysql/error.log) kontrol etmeyi unutmayın. Herhangi bir hata olup olmadığını buradan görebilirsiniz.

🔍 Test ve Monitorizasyon
Ayarlarınızın etkisini görmek için aşağıdaki gibi basit sorgularla durumu inceleyebilirsiniz:

SQL:
SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
SHOW STATUS LIKE 'Threads_connected';
SHOW ENGINE INNODB STATUS\G

Son olarak, uzun süren sorgularınızı tespit edip optimize etmek için yavaş sorgu log'unu (slow_query_log) açmanızı şiddetle tavsiye ederim.

Umarım bu rehber, `my.cnf` dosyasının aslında korkulacak bir canavar olmadığını göstermiştir. Benim genel kullanım için önerdiğim ayarlar bunlar. Peki siz bu konfigürasyonu kendi sunucularınızda nasıl yapıyorsunuz? Özellikle yüksek trafikli ortamlar için eklemek istediğiniz püf noktaları var mı? Sorularınız ve deneyimlerinizi paylaşmak için aşağıya yazmaktan çekinmeyin. Herkese sorunsuz sunucular!
 

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz.

Zevkine göre renk kombinasyonunu belirle

Tam ekran yada dar ekran

Temanızın gövde büyüklüğünü sevkiniz, ihtiyacınıza göre dar yada geniş olarak kulana bilirsiniz.

Geri