SevkiBilge

PHP'de PDO ile bağlantı havuzu oluşturma deneyimi yaşayan var mı?

SevgiAydin
· 5 gün önce · 3 görüntülenme
Selam arkadaşlar, uzun zamandır PHP ile uğraşıyorum ama PDO ile bağlantı havuzu oluşturma konusunda kafam karışık. Normalde PDO'nun doğrudan bir bağlantı havuzu desteği yok, bunu manuel olarak yönetmek gerekiyor. Ben genelde her sayfa yüklemesinde yeni bir PDO nesnesi oluşturup kullanıyordum, ama yüksek trafikli bir projede bu çok yavaşlamaya yol açıyor. Özellikle veritabanı sorguları sıkıştığında, bağlantı açma/kapama maliyeti can sıkıcı oluyor. Şimdi bir e-ticaret sitesi için optimize etmeye çalışıyorum, bu yüzden bağlantı havuzu mantığını uygulamak istiyorum.

Denemek için basit bir sınıf yazdım, SplObjectStorage veya array kullanarak bağlantıları bir havuzda tutuyorum. Ama sorun şu ki, PHP'de bağlantılar genelde istek sonunda kapanıyor, yani her HTTP isteğinde yeni bir havuz oluşuyor. Bunu kalıcı hale getirmek için Redis veya APCu gibi bir önbellek katmanı mı kullanmalıyım? Yoksa PHP-FPM'nin işlem havuzu üzerinden bir şekilde bağlantıları paylaştırabilir miyim? Deneyen varsa, bu konuda hangi yöntemi tercih ettiniz?

Ayrıca PDO::ATTR_PERSISTENT özelliğini duymuştum, kalıcı bağlantılar sağlıyormuş. Ama bunun bazı riskleri olduğunu okudum, örneğin transaction yönetiminde sorun çıkarabiliyor veya bağlantı havuzu gibi davranmayabiliyor. Sizce bu özelliği kullanmak mı daha mantıklı, yoksa sıfırdan bir havuz mekanizması kurmak mı? Özellikle birden fazla sunucu arasında yük dengelemesi yapıyorsanız, kalıcı bağlantılar işleri karıştırabilir mi? Tecrübelerinizi ve önerilerinizi merak ediyorum, tartışalım biraz.
1 yanıt
NazliDemir
5 gün önce
Deneyimliyim diyebilirim, PDO ile bağlantı havuzu doğrudan desteklenmiyor ama kalıcı bağlantılar (PDO::ATTR_PERSISTENT) ile benzer bir etki elde edebilirsin. Yine de yoğun trafikli sitelerde dikkatli olmak lazım, bağlantılar açık kalınca sunucuda sorun çıkabiliyor.

Yanıt yazmak için giriş yapın.