Birkaç yazılım geliştiricisiyle bir toplantıdaydım ve uygulama kodumda mümkün olan en kısa sürede veritabanı bağlantılarını kapatması önerildi mi? Birisi bana bir uygulamada bir bağlantıyı açık tutmanın zararı olduğunu söyler misiniz lütfen. Veritabanı bağlantılarını açık tutmak pahalı mı?
Ben bir veritabanında bir otobüste koltuk gibi bununcevap
Think tek tablodan veri okuyordu.
Bağlantıları açtığınızda, bu koltukları doldurursunuz - sonuçta, otobüs doludur ve artık yolcu kabul edemez (veya daha fazla veritabanı bağlantısı açabilirsiniz). Otobüsün bir yolcuyu reddetmesi gerektiğinde her zaman, yolcu, başka bir otobüsün gelmesini beklemek zorundadır.
Onlarla bittiğinde bağlantılarınızı kapatarak, daha fazla bağlantı için yer açabilirsiniz - bu, veritabanıyla etkileşime girmesi gereken daha fazla programın, gereksinim duydukları şeyleri yapabileceği anlamına gelir; serbest. Bağlantılarınızı kapatmamak, veritabanının, etrafınızdaki tüm bağlantılarla ne yapacağını anlaması gerektiğidir. Bu, veritabanınızın yeni bağlantıları açtığınız anda bağlantıları kapatmıyorsa sorunlara neden olabilir.
Bağlantı havuzu kullandığınızda, bu değişiklik değişir (aşağıdaki yorumlara bakın); Bu durumlarda havuzunuzun sizin için bağlantıları açıp kapamalarını isteyeceksiniz. Bağlantılarınızı birleştirmiyorsanız, bunları ihtiyacınız olandan daha uzun süre açık tutmak kaynak israfı demektir.
Bu tüm gerçek değil. Bir bağlantı havuzu toplayıcısını kullanırken bağlantıların her zaman açık kalması daha iyidir, çünkü çoğu DBMS * için * bağlantı bir iştir. –
+ 1, iyi bir benzerlik! Ayrıca @a_horse_with_no_name ile aynı fikirdeyim, bu bağlantıların açılması pahalı olabilir. – halfer
Bahşiş için teşekkürler - Cevabımın alt kısmına bir paragraf ekledim. Daha fazla tweaks gerekiyorsa, bana bildirin! – girasquid
- 1. Zend DB Veritabanı Bağlantılarını Yönetme
- 2. Veritabanı bağlantılarını Oracle'da zincirleyebilir miyim?
- 3. Diğer ul geçişleri sırasında bir ul açık tutmak nasıl
- 4. Video kaydederken önizleme geri arama tutmak mı?
- 5. Neden açık COLLATE veritabanı harmanlamasını geçersiz kılmıyor?
- 6. Bir Chrome Uzantısı hata ayıklanırken Geliştirici Araçları'nı açık tutmak için herhangi bir yol var mı?
- 7. .NET uygulamasında veritabanı bağlantısı ne kadar süre açık olmalıdır?
- 8. GCC’nin pahalı optimizasyonları nelerdir?
- 9. nHibernate 3.2 veritabanı yapılandırması kodda mı?
- 10. JVM'de Yerel JMX Bağlantılarını Devre Dışı Bırakma
- 11. Geçerli iplik zamanının id alma işlemi pahalı mı?
- 12. IE7 ve IE8'de Tanımsız CSS Sınıfları mı Pahalı?
- 13. Unicorn DB bağlantılarını kapatmıyor
- 14. Açık veritabanı bağlantılarının sayısını nasıl ölçersiniz
- 15. Yüz özelliklerini tanımak için herhangi bir açık teknoloji var mı?
- 16. Sekme tamamlandı: Macvim'de açık mı?
- 17. Hardwareacceleration ile NullPointerException açık mı?
- 18. Ücretsiz bir anti spam veritabanı var mı?
- 19. JQuery'deki özel karakterleri tutmak için "
- 20. Indy Server'ın çoklu bağlantılarını ayrı soketler olarak mı kullanıyorsunuz?
- 21. Android - SQLite Veritabanı Var mı?
- 22. Delphi: TCP bağlantılarını sınırlandırma
- 23. Statik "veritabanı yardımcı" sınıfını kullanmak tamam mı?
- 24. Azure İşlevleri: Pahalı nesne için tekil
- 25. Web.config'ta hassas bilgileri (kullanıcı adı ve parola) tutmak mı istiyorsunuz?
- 26. Linux için xml şemasını veritabanı şemasına dönüştürmek için herhangi bir açık kaynak aracı var mı?
- 27. Python: Test amacıyla ağ bağlantılarını engelle?
- 28. , istemci bağlantılarını algılamayacak şekilde bükülmüş
- 29. i18n kaynaklarını senkronize tutmak
- 30. veritabanı bağlantısı ruby içinde havuzlama
Küçük ölçekli kullanımda herhangi bir zarar olmaz, ancak bazı DB'ler bağlantıya bağlı olarak lisanslanır, bu nedenle bağlantıların uzun süre açık tutulması, erişimin başkalarını mahrum bırakır. –
Neden -1? Oldukça kullanışlı bir soru olduğunu düşündüm – TimeToCodeTheRoad