PHP / MySQL birden çok veritabanı bağlantıları açmak veya 1 paylaşmak gerekir?

6 Cevap php

Başkalarının bu konuda ne düşündüğünü duymak isteyen ki? Şu anda, o zaman benim sitenin her sayfasının üst dahil bir başlık türü bir dosya içinde bir mysql veritabanı bağlantısı yapmak. Ben 1 açık bağlantıda istediğiniz gibi o kadar çok sorguları çalıştırabilirsiniz. Sayfası dahil 6 dosyalarından inşa ve 15 farklı mysql sorguları olduğu IF, sonra hepsi bu 1 bağlantıda çalışır.

Şimdi bazen her sorgu için 1 gibi, birden fazla bağlantı yapmak sınıflarına bakın.

Diğer üzerinden bir yöntemi kullanarak herhangi bir yararı var mı? Ben 1 bağlantı birden o zaman daha iyi olduğunu düşünüyorum ama yanlış olabilir?

6 Cevap

Bağlantıları oluşturma (I don't have a reference for this statement as yet Edit: Aha! Here it is) pahalı bu yüzden daha az fikir birliği bağlantılarını kullanmak için gibi görünüyor olabilir. Tek bir sayfada tüm sorgular için tek bir bağlantıyı kullanarak birden fazla bağlantı daha iyi bir seçim gibi görünüyor.

PHP + MySQL genellikle sayfa başına birden çok bağlantı kullanmak için hiçbir çok sence (sadece daha yavaş ve biraz daha fazla RAM tüketilen) vardır.

Eğer (harmanlama) gibi diğer sayfaları ile interfer olabilir bağlantı paremters değiştirmek zaman yararlı olabilir tek yoludur. Ama iyi bir PHP programları genellikle bu tür şeyler yapmam.

1 MySQL bağlantı katları sayfa infazlar karşısında yeniden olacağını Ayrıca, böylece, kalıcı bağlantıları etkinleştirmek için iyi bir fikirdir.

Gerçekten site üretecektir şüpheli aktivite düzeyine bağlıdır - bu bir yüksek trafik web sitesi ise bir aptalca yüksek seviyeye MySQLs ayarlamak maksimum bağlantı kurmak sürece, yakında (bağlantıları dışarı kaçıyorum, ama bu olacak sonunda) bir durma noktasına sunucuyu eziyet.

Ben genellikle ile yazmak için disiplin büyük bir ihtiyaç yok gibi bir web sitesinin ön uç, bu zihin ve kazandı ', (singleton is your friend), paylaşılan bir veritabanı nesnesini kullanmanız gerektiğini tavsiye ederim t bağlantı yapmadan zaman kaybetmeyin. Eğer arka uç ek eşzamanlı sorguları gerekiyorsa bu bir çok ticareti alanı olması muhtemel değil gibi, bir anlaşma o kadar olmamalıdır.

Bu iş sadece bir sorgu kullanarak yapılabilir birden fazla küçük sorguları yürütmek için tavsiye değil, birden fazla tablo ve ieven birden çok veritabanından veri almak için tek bir sorgu kullanabilirsiniz. Aşağıdaki bağlantıya bakın:

http://www.x-developer.com/php-scripts/sql-connecting-multiple-databases-in-a-single-query

Ben 'd doğrusu kötü yapının bir işaret olduğunu düşünüyorum, birden fazla bağlantı kullanarak herhangi bir yarar görmüyorum. Bunlar birden fazla bağlantı kullanarak karşı düşünebilirsiniz nedenleri şunlardır:

  • Sen veritabanı birden fazla kez başlatmak zorunda. ( {[) (0]} gibi) bağlantı kurulması üzerine conection özelliklerini ayarlama birden fazla hat üzerinde yapılması gerekir.
  • Kesinlikle tek bir bağlantı daha yavaştır.
  • Teknik olmayan bir nedeni: Lütfen kodu ile çalışan birisi muhtemelen bunu beklemek olmaz ve o başka bir bağlantı batmıştı bağlantı özelliklerini ayıklama saat harcamak olabilir.

Küresel bir bağlantı nesnesi (veya birini sağlayarak bir sınıf) sahip olan PHP çok daha iyi bir yaklaşımdır.

Eğer bir açık olduğunda çoklu bağlantı yapmak sınıflar sadece zaten açık bağlantı için bir başvuru dönen olmadığından emin misin? Ben bir sürü bu şekilde yapılandırılmıştır gördüm. Gerçekten performans-bilge sayfa başına sadece tek bir bağlantı kullanmak daha iyidir.