• 11-05-2013, 18:28:52
    #1
    Hemen hemen her projemde MySql bağlantısı yapıyorum fakat sadece bir kez bağlanıyorum ve tüm işlemleri o bağlantı üstünden götürüyorum fakat bazı scriptleri incelediğimde her seferde bağlanıp, gerekli işlem yapılıp ardından bağlantı sonlandırılıyor. Hangi yöntem daha sağlıklı sonuç verir yada isteğe bağlı mıdır? Kafama takılan bir konu yardımcı olursanız sevinirim.
  • 11-05-2013, 19:43:34
    #2
    bahsettiğiniz durum isteğe bağlı veya o olay için uygun olan durum olabilir. bende her zaman tek dosya ile çalışırım bir sıkıntısı olduğunu görmedim.
  • 11-05-2013, 23:31:06
    #3
    acaba hangi durumlarda, her seferde mysql bağlantısını sonlandırıp başlatmamız uygun olur?
  • 12-05-2013, 00:12:37
    #4
    FNS adlı üyeden alıntı: mesajı görüntüle
    acaba hangi durumlarda, her seferde mysql bağlantısını sonlandırıp başlatmamız uygun olur?
    Konfigürasyonlarına göre bazı mysql sunucuları anlık belli bir miktarda bağlantı karşılayabiliyorlar. Bu durumda bir bağlantı ile işiniz bittiğinde o bağlantıyı kapatmazsanız ve zaman aşımına da uğramazsa, yeni gelen ziyaretçi mysql bağlantısı için beklemek durumunda kalabilir ya da bağlantı hatası alabilir. Bu yüzden bir bağlantı ile işiniz bittiğinde kapatmalısınız.
  • 12-05-2013, 15:34:53
    #5
    bayGaReZ adlı üyeden alıntı: mesajı görüntüle
    Konfigürasyonlarına göre bazı mysql sunucuları anlık belli bir miktarda bağlantı karşılayabiliyorlar. Bu durumda bir bağlantı ile işiniz bittiğinde o bağlantıyı kapatmazsanız ve zaman aşımına da uğramazsa, yeni gelen ziyaretçi mysql bağlantısı için beklemek durumunda kalabilir ya da bağlantı hatası alabilir. Bu yüzden bir bağlantı ile işiniz bittiğinde kapatmalısınız.
    Bu konuya özellikle dikkat çekmek lazım. @bayGaReZ anlatmış. Her sunucuda maksimum mysql bağlantı sayısı vardır. Php Mysql nedenini tam olarak anlamadığım bir sleep problemi var. Siz bir mysql bağlantısı açıp sorgunuzu gerçekleştirip bağlantıyı kapatmazsanız php sayfa sona erdiğinde sunucu mysql bağlantıyı kapatmayabiliyor. Sleep durumuna alıp başka bir sorgu da gelebilecekmiş gibi beklemeye alıyor. Bu bekleme süresi my.conf içinde belirlenmiş ve eğer yüksek bir değersen mesela 60 saniye gibi (connect_timeout=60 wait_timeout=60 interactive_timeout=60) 60 saniye boyunca gösterilen her sayfa için bir bağlantı açılır ve bağlantı kapatılmadan sleep durumuna geçer.
    Sonuçta maksimum mysql bağlantı sayınız 400 ise sitenize giren 100 kişi bir dakikada 4 sayfa geziyorsa izin verilen bağlantı sayısı aşılır. Ayrıca kapanmayan her bağlantı mysql üzerinde bir load oluşturacağı için mysql işlemci kullanımınız hep aşırı yüksek olur.

    mysql bağlantılarınızı işinizi görünce kapatın.
    anlık ziyaretçilerin fazla olduğu sitelerde bellek problemi yaşamamak için de işiniz biten değişkenleri unset edin, mysql_free_results ile veritabanı verilerini boşlatın...

    bu şekilde basit optimizasyonlar ile hostgator üzerinde büyük hitli site barındıranlar da var, bu basit uygulamaları yapmadığı için aynı hitle dedicated üzerinde başa çıkamayanlar da var.