PHP ve Veritabanı Yönetimi: Web Sitenizin Performansını İyileştirmenin Anahtarı
# 1. PHP.ini Dosyasını Doğru Şekilde Ayarlayın
max_execution_time parametresi, bir PHP betiğinin çalışma süresini sınırlayan bir parametredir. Eğer çok uzun süren işlemleriniz varsa, bu süreyi artırarak script’inizin tamamlanmasına izin verebilirsiniz. Ancak, aşırı yüksek bir değer, sunucunuzun performansını olumsuz yönde etkileyebilir.
PHP'nin bellek kullanımı da kritik bir faktördür. memory_limit değeri, PHP betiğinizin ne kadar bellek kullanabileceğini belirler. Bellek sınırlarını arttırmak, büyük veritabanı sorguları veya büyük dosya işlemleri için faydalı olabilir.
İşte basit bir örnek PHP.ini ayarı:
max_execution_time = 300
memory_limit = 256M
post_max_size = 32M
Bu ayarlarla PHP’nin çalışma süresi ve bellek kullanımı optimize edilir, ancak yine de dikkatli olun; çok yüksek ayarlar sunucunuzun verimliliğini etkileyebilir.
# 2. Veritabanı Sorgularını Optimize Edin
Indexleme yaparak veritabanınızın performansını artırabilirsiniz. Indexler, sorguların daha hızlı çalışmasını sağlar ve özellikle büyük veri setlerinde önemli bir fark yaratır.
Örneğin, bir kullanıcı tablosunda kullanıcı adı ve e-posta adresi sıkça sorgulanıyorsa, bu alanlara index eklemek oldukça faydalıdır:
CREATE INDEX idx_user_email ON users (email);
Bu index, her sorguda veritabanının daha hızlı çalışmasına olanak tanıyacak ve böylece sayfa yüklenme süresi kısalacaktır.
# 3. Cache Kullanımını Artırın
Memcached ve Redis gibi cache sistemlerini kullanarak, sıklıkla erişilen verileri bellekte tutabilir ve veritabanına her sorgu gönderildiğinde yüksek performans elde edebilirsiniz.
Bir örnek olarak, PHP ile Memcached entegrasyonu şu şekilde yapılabilir:
$memcache = new Memcached();
$memcache->addServer('localhost', 11211);
// Cache'leme örneği
$data = $memcache->get('users_list');
if ($data === false) {
$data = fetch_users_from_database();
$memcache->set('users_list', $data, 3600); // 1 saat cache
}
Bu basit kod örneği, verilerin cache’de tutulmasını ve her seferinde veritabanına erişmeden hızlıca gösterilmesini sağlar.
# 4. Sunucu Tarafında Yapılacak Küçük İyileştirmeler
İşte sunucuda gzip kompresyonunu etkinleştirmek için Apache konfigürasyonu örneği:
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript
Bu kod, web sayfalarındaki sıkıştırılabilir içerik türlerini belirleyerek, sunucunuzun daha verimli çalışmasına yardımcı olur.