Ne kadar sıklıkla veritabanı bağlantıları kapatmak gerekir?

5 Cevap php

Şu anda, benim uygulamanın başlatılması bir veritabanı bağlantısını açıyorum. Bunun konuyla eğer oldukça küçük bir app, PHP bulunuyor.

Ben, veritabanına bağlanırken çağrı yapmaya, sonra yazdığınız her veritabanı fonksiyonu için bu işlemi kapanış ve tekrarı gerekir?

Örneğin, benim app başlatma dan $ db değişken kapmak aşağıdaki işlevi var.

function get_all_sections()
{
    global $db;
    $sql = 'select * from sections'; 

    if (!$db->executeSQL($sql, $result))
    {
        throw new Exception($db->getDatabaseError());
        exit();
    }

    $sections = array();

    for ($i = 0; $i < $db->numberOfRows($result); $i++)
    {
        $sections[] = new Section($db->fetchArray($result, MYSQLI_ASSOC));
    }

    return $sections;
}

Ben satırları getirilen sonra kapalı sonra bağlantıyı açarsa daha iyi olurdu? Bu açık ve kapalı olan bağlantıları bir sürü gibi görünüyor.

5 Cevap

Eğer ihtiyacınız olduğunda yeni bir bağlantı kapma onun ok (http://en.wikipedia.org/wiki/Connection_pool) hakkında Bağlantı havuzu var. ANCAK, ben "sınırlı" olarak herhangi bir kaynak tedavi alışkanlığı olması söyleyebilirim ve db kolu açarsanız mümkün olduğunca uzun etrafında tutmak.

Veritabanına bağlanırken zaman sonlu bir miktar alır. Bir etki alanı soket veya adlandırılmış kanal üzerinden bağlanma zaman önemsiz, ama, bir ağ bağlantısı üzerinden ise, ya da daha kötüsü açık İnternet çok daha büyük olabilir. En azından istek yaşam için bağlı bırakın.

mysql_pconnect bağlantı havuzu için kullanın ve yakın her işlemin sonunda. Konu gerçekten yakın olmaz, ve iplik tekrar kullanılacaktır. Bu şekilde onun güvenli hem de etkili.

PHP MySQL bağlantıları oldukça hafif olduğundan, muhtemelen Tamam açılış ve gerektiğinde bağlantıyı kapatmadan vardır. Aynı tür oldukça ağır bağlantıları vardır SQL Server, bağlanma gibi diğer veritabanı bağlantıları, doğru değildir.

Tüm durumlarda, ancak, sürdürülebilirlik / mantık / bağımlılıkları açısından en mantıklı ne yapmak. Sonra, size ölçülebilir bir yavaşlama hissediyorsanız bulursanız, hız artırmak gerek bu alanları optimize edebilirsiniz.

Erken optimize etmeyin: Şüphe, altın kural izleyin.

see here - En basit çözüm, () mysql_pconnect kullanmak olacaktır

Bağlantı zaten açıksa bu şekilde yerine yenisini oluşturmak kullanacağız. Değilse tekrar bağlayacak