Kalıcı bağlantılar, veritabanınıza bağlanmak (nispeten) uzun zaman aldığında iyi bir fikirdir. Günümüzde neredeyse hiç böyle değil. Kalıcı bağlantıların en büyük dezavantajı, sitenize göz atabileceğiniz kullanıcı sayısını sınırlamasıdır: MySQL aynı anda yalnızca 10 eşzamanlı bağlantıya izin verecek şekilde yapılandırılmışsa, 11. bir kişi sitenize göz atmaya çalıştığında onlar için çalışmaz .
PDO kalıcılığı yönetmez. MySQL sürücüsü yapar. A) kullanılabilir olduklarında ve ana bilgisayar / kullanıcı / şifre / veritabanı eşleştiğinde bağlantıları yeniden kullanır. Herhangi bir değişiklik olursa bağlantı yeniden kullanılmaz. En iyi durum net etkisi, sitenizde farklı kullanıcılara sahip olduğunuz ve onları kalıcı hale getirmenin herhangi bir faydası olmadığı için sahip olduğunuz bu bağlantıların çok sık başlatılması ve durdurulmasıdır.
Kalıcı bağlantılar hakkında anlaşılması gereken en önemli şey, çoğu web uygulamasında bunları KULLANMAMANIZdır. Cazip geliyorlar ama tehlikeli ve neredeyse işe yaramazlar.
Eminim bu konuda başka iş parçacıkları var ama kalıcı bir bağlantı tehlikeli çünkü istekleri arasında devam ediyor. Örneğin, bir istek sırasında bir tabloyu kilitlerseniz ve ardından kilidini açamazsanız, bu tablo süresiz olarak kilitli kalacaktır. Kalıcı bağlantılar, uygulamalarınızın% 99'u için neredeyse işe yaramaz çünkü farklı bağlantıların arasında aynı bağlantının kullanılıp kullanılmayacağını bilmenin bir yolu yoktur. Her web iş parçacığının kendi kalıcı bağlantıları kümesi olacak ve hangi iş parçacığının hangi istekleri işleyeceğini kontrol etmenin hiçbir yolu yoktur.
PHP'nin yordamsal mysql kütüphanesi, mysql_connect'e yapılan sonraki çağrıların farklı bir bağlantı açmak yerine aynı bağlantıyı döndüreceği bir özelliğe sahiptir (beklendiği gibi). Bunun kalıcı bağlantılar ile ilgisi yoktur ve mysql kütüphanesine özgüdür. PDO böyle bir davranış sergilemez
Kaynak Bağlantısı: bağlantı
Genel olarak bunu kaba bir "kural kümesi" olarak kullanabilirsiniz ::
EVET , aşağıdaki durumlarda kalıcı bağlantılar kullanın:
- Veritabanına erişen yalnızca birkaç uygulama / kullanıcı vardır, yani aynı ana bilgisayarda paylaşılan 200 farklı kullanıcı olduğu için 200 açık (ancak boşta) bağlantıya neden olmazsınız.
Veritabanı, ağ üzerinden eriştiğiniz başka bir sunucuda çalışıyor
(Bir) uygulama veritabanına çok sık erişir
HAYIR , aşağıdaki durumlarda kalıcı bağlantılar kullanmayın:
Uygulamanızın veritabanına yalnızca saatte 100 kez erişmesi gerekir.
Bir veritabanı sunucusuna erişen çok, çok sayıda web sunucunuz var
Kalıcı bağlantılar kullanmak, özellikle veritabanına bir ağ üzerinden erişiyorsanız, çok daha hızlıdır. Veritabanı aynı makinede çalışıyorsa çok fazla fark yaratmaz, ancak yine de biraz daha hızlıdır. Ancak - adından da anlaşılacağı gibi - bağlantı kalıcıdır, yani kullanılmasa bile açık kalır.
Buradaki sorun, "varsayılan yapılandırma" da MySQL'in sadece 1000 paralel "açık kanala" izin vermesidir. Bundan sonra, yeni bağlantılar reddedilir (Bu ayarı düzenleyebilirsiniz). Yani - örneğin - her 100 İstemciye sahip 20 Web Sunucunuz varsa ve her birinde saatte sadece bir sayfa erişimi varsa, basit matematik size veritabanına 2000 paralel bağlantıya ihtiyacınız olduğunu gösterecektir. Bu işe yaramaz.
Ergo: Yalnızca çok fazla istek içeren uygulamalar için kullanın.