database – mysql persistent connection nedir?

Persistent connection nedir?

Persistent connection, bağlantının sürekli açık tutulduğu bağlanma biçimine denir.

Normal olarak, yazılım dilleri bir veritabanına bağlanacağı zaman, bilgisayardaki bir port üzerinden veritabanına bağlantı açar. Daha sonra kodun sonunda, veya isteğe bağlı bir yerine bağlantıyı kapatır. Ayrıca connection kapatılmadıysa, yazılım dillerinde otomatik kapatma seçenekleri de bulunmaktadır. Örneğin 5 sn sonra kapat, 10 sn sonra kapat, biter bitmez kapat gibi seçenekler mevcuttur.

Persistent connection ın avantajları

Veritabanı bağlantısının otomatik. olarak açılıp kapatılması, en az ayar gerektiren şey olabilir. Ancak performansınızı persistent connection ile artırabilirsiniz.

Bir web sayfası isteği geldi diyelim. Yazılım dili kodu çalıştırdı. Varsayalım ki 1 Query gerekti bu sayfa için.
1- Hazırda bir bağlantı yok. İşletim sisteminden ilgili portu kullanmak için müsade istedi.
2- Daha sonra ilgili porta bağlandı.
3- Sonra querysini çalıştırdı.
4- Sonucunu ilgili porttan okudu.
5- Kod bitince de mysql bağlantısını kapattı.

persistent connection bu noktada, 1. aşamayı hızlandırır, 2. aşamayı direkt ortadan kaldırır, 4. aşamayı hızlandırır ve 5. aşamayı ortadan kaldırır.

Baktığımızda query önemli bir maliyet olabilir tabi ki querysine göre değişir ancak, yüklü bir serverda bahsettiğim durumun bariz hız kazandıracağı aşikar.

—-
Persistent connectionın diğer bir avantajı da , yüksek load altında, saçmalayan bir yapıya müsade etmemesidir. Persistent connection sayınızı yazılım dilinden ayarladığınızda, diyleim ki 200 verdiniz, sitenize aynı anda 1000 kişi bile gelse, serverinizin stabilliğini korur. Otomatik olarak bir sürü bağlantı açtırsaydık, bunları yönetmemiz imkansız olacaktır. (tabi kullanıcılar mysql bağlanamadı hatası alırlar, ancak siteniz çökmez bu daha önemlidir, en önemlisi de sistemi ince ayar yaparak bu ihtiyaçları da karşılayabilir hale getirmeniz sizin elinizdedir.)

Mysql olarak anlattık hep, mysql de persistent connection kullanmanız inanılmaz kolay. tek yapacağınız mysql_connect yerine mysql_pconnect kullanmanız. Bir de eğer mysql_close kullanıyorsanız, bunlar kodunuzdan kaldırmanız. (tabi ki başka bir database e bağlanacaksanız o ayrı durum)

—–
Bu sadece mysql için değil hemen hemen tüm veritabanlarında ortak olan bir özelliktir.

Hele ki database serverini ayrı bir server olarak kullanıyorsanız, ve bu makina sadece database e özel bir makina ise şiddetle tavsiye ederim. Ben aktif olarak mysql ve mongoda persistent connection kullanıyorum.

dipnot : Mysql ve Mongo persistent connectionları için PHP’de mod_php ile Apache ‘yi tercih etmeyiniz. Nginx veya lighthttpd yanında kurulu bir phpfcgi(php fast cgi), yüksek load altında apacheden hem çok daha stabil çalışıyor, hem de performans olarak %500 den fazla hızlı çalışıyor. En önemlisi, yapacağınız ayarları “DOĞRU” olarak çalıştırıyor.

4 Comments

    database – mysql persistent connection nedir? | Kara Kule

    […] bağlanacağı zaman, bilgisayardaki bir port üzerinden veritab… Devamı için : database – mysql persistent connection nedir? Share this:TwitterFacebookLike this:BeğenBe the first to like this. By ahmet orsorlu • […]

    Zend framework Zend_Db_Adabter ile veritabanı persistent connection olusturma « Dubluve.net

    […] Bize Yazın « database – mysql persistent connection nedir? […]

    database – mysql persistent connection nedir? | Boğaç Aslanyürek

    […] bağlanacağı zaman, bilgisayardaki bir port üzerinden veritab… Devamı için : database – mysql persistent connection nedir? This entry was posted in Professional and tagged database kalıcı bağlantı, mysql, mysql […]

    database – mysql persistent connection nedir? | Gökhan Tunçkale | Blog

    […] bağlanacağı zaman, bilgisayardaki bir port üzerinden veritab… Devamı için : database – mysql persistent connection nedir? ShareFacebookTwitterStumbleUponMoreTumblrRedditLinkedInDiggEmailPrintLike this:BeğenBe the first […]

Bir Cevap Yazın