PHP kullanarak büyük boyutlu SQL dosyalarını veritabanına aktarmak, özellikle otomatik kurulum veya yedek restorasyonu gibi durumlarda sıkça ihtiyaç duyulan bir işlemdir. Ancak, büyük SQL dosyaları doğrudan phpMyAdmin gibi araçlarla yüklenirken zaman zaman limit sorunları ve zaman aşımı hatalarıyla karşılaşmak mümkündür. Bu noktada, PHP scriptleri ile daha kontrollü ve verimli bir kurulum süreci sağlayabiliriz.
İlk olarak, büyük SQL dosyalarını parçalara ayırmak veya satır satır işlemek, performansı artırmak açısından önemlidir. PHP’nin
file() veya
fopen() fonksiyonlarıyla dosyayı satır satır okuyabilir, ve her satırı SQL komutuna dönüştürerek
mysqli veya
PDO ile veritabanına gönderebilirsiniz. Bu yöntemde, özellikle
mysqli_multi_query() fonksiyonunun kullanımı büyük fayda sağlar; çünkü birden fazla SQL sorgusunu tek seferde çalıştırmak, toplam işlem süresini kısaltır.
Bir diğer önemli nokta ise, PHP’nin
max_execution_time,
memory_limit, ve
upload_max_filesize gibi ayarlarını uygun seviyeye getirmektir. Bu ayarların yetersiz olması, scriptin yarıda kesilmesine neden olur. Ayrıca, SQL dosyasını satır satır işlerken, belirli bir satır veya sorgu sayısına ulaştığınızda, scripti tekrar çalıştırmadan devam edebilmek için, scriptin durumu kaydedebileceği bir mekanizma (örneğin, bir durum dosyası veya database tablosu) kullanmak faydalı olur.
Aşağıda temel bir mantık örneği verilmiştir:
- Dosyayı satır satır aç
- Satırların sonunda noktalı virgül olup olmadığını kontrol et
- Tamamlanan sorguları
mysqli_multi_query() ile çalıştır - İşlem sırasında, belirli satır veya sorgu sayısına ulaşıldığında, durumu kaydet ve scripti durdur
- İşlem tamamlandığında, kurulumun başarılı olduğunu bildir
Bu yöntem, büyük SQL dosyalarıyla çalışırken hem zaman aşımı sorunlarını azaltır hem de kurulum sürecini daha kontrollü hale getirir. Ayrıca, scriptleri cron veya komut satırı PHP kullanımıyla da çalıştırmak, performansı ve güvenilirliği artırabilir.
Sonuç olarak, büyük SQL dosyalarını PHP ile kurarken, satır bazlı işleme, multi query kullanımı ve PHP ayarlarının optimize edilmesi temel prensiplerdir. Bu sayede, otomatik ve sağlam bir veritabanı kurulum süreci oluşturulabilir.