MySQL Performans Optimizasyonu
MySQL veritabanı performansını analiz eden ve optimizasyon önerileri sunan script.
Yayınlanma: 08.05.2024
Detaylı Bilgi
Bu script, MySQL veritabanı performansını analiz eder ve optimizasyon önerileri sunar. Veritabanı yapılandırmasını ve sorgu performansını değerlendirir.
Script Ne İşe Yarar?
Bu script, MySQL performansını analiz eder:
- Bağlantı durumunu kontrol eder
- Query cache durumunu gösterir
- Slow query log durumunu kontrol eder
- Tablo durumunu analiz eder
- Optimizasyon önerileri sunar
Neden Kullanmalısınız?
MySQL performans optimizasyonu, veritabanı hızı için kritiktir:
- Performans Analizi: Veritabanı performansını anlayın
- Optimizasyon: Performans sorunlarını tespit edin
- Yapılandırma: MySQL ayarlarını optimize edin
Nasıl Kullanılır?
Adım Adım Kullanım Kılavuzu
1. Script Dosyasını Oluşturun
nano mysql_tuning.sh
2. Çalıştırılabilir Yapın
chmod +x mysql_tuning.sh
3. Scripti Çalıştırın
./mysql_tuning.sh
4. Environment Variable ile Şifre
MYSQL_PASSWORD=your_password ./mysql_tuning.sh Gereksinimler
Gereksinimler
- MySQL: MySQL kurulu olmalı
- MySQL Client: mysql komut satırı aracı
- MySQL Erişimi: Veritabanına erişim yetkisi
Kullanım Senaryoları
Kullanım Senaryoları
1. Veritabanı Performans Analizi
MySQL veritabanının performansını analiz edin.
2. Optimizasyon Önerileri
Performans iyileştirme önerileri alın.
Örnekler
Kullanım Örnekleri
Örnek 1: Temel Analiz
./mysql_tuning.sh Kod
#!/bin/bash
# MySQL Performance Tuning Script
MYSQL_USER="root"
MYSQL_PASS="${MYSQL_PASSWORD:-}"
if [ -z "$MYSQL_PASS" ]; then
read -sp "MySQL password: " MYSQL_PASS
echo ""
fi
echo "======================================"
echo " MYSQL PERFORMANCE ANALYSIS"
echo "======================================"
echo ""
echo "--- Connection Status ---"
mysql -u"$MYSQL_USER" -p"$MYSQL_PASS" -e "SHOW STATUS LIKE 'Threads_connected';" 2>/dev/null
echo ""
echo "--- Query Cache Status ---"
mysql -u"$MYSQL_USER" -p"$MYSQL_PASS" -e "SHOW VARIABLES LIKE 'query_cache%';" 2>/dev/null
echo ""
echo "--- Slow Query Log Status ---"
mysql -u"$MYSQL_USER" -p"$MYSQL_PASS" -e "SHOW VARIABLES LIKE 'slow_query%';" 2>/dev/null
echo ""
echo "--- Table Status ---"
mysql -u"$MYSQL_USER" -p"$MYSQL_PASS" -e "SHOW TABLE STATUS;" 2>/dev/null | head -20
echo ""
echo "--- Optimization Recommendations ---"
mysql -u"$MYSQL_USER" -p"$MYSQL_PASS" -e "
SELECT
table_schema,
table_name,
ROUND(((data_length + index_length) / 1024 / 1024), 2) AS size_mb,
table_rows
FROM information_schema.tables
WHERE table_schema NOT IN ('information_schema', 'mysql', 'performance_schema')
ORDER BY (data_length + index_length) DESC
LIMIT 10;
" 2>/dev/null
echo ""
echo "Analysis completed!"
Kullanım
chmod +x mysql_tuning.sh
./mysql_tuning.sh
Sorun Giderme
Sorun Giderme
Problem: "Access denied"
Çözüm: MySQL kullanıcı adı ve şifresini kontrol edin:
mysql -u root -p