Sorunun cevabını kendiniz vermişsiniz zaten. Kullanıcısı çok olan uygulamanız veritabanına daha fazla sorgu yapıyor ve daha fazla bağlantı açıyor. Kullanıcısı az olan uygulamanın daha hızlı açılması normal yani. Burada tabi yapılan sorguların karmaşıklığı da önemli.
Yapabilecekleriniz;
- Araya bir cache sistemi koyarak birbirini tekrar eden sorguları önbellekleyebilirsiniz. Böylece sık yapılan sorgular her seferinde veritabanına istek gitmemiş olur.
- Sunucu kaynaklarını arttırmanız tek başına bir şey ifade etmez. Mesela MySQL kullanıyorsanız güzel bir my.cnf yapılandırması ile yine kendi içinde önbellekleme yapmanız iyi olur. Zaten sizin de söyledeiğiniz gibi sunucu kaynaklarının tümünü kullanmıyor.
- Veritabanı ile uygulamanın çalıştığı sunucular arası latency de çok önemli.
- Belki şu an lazım olmayabilir ama veritabanı çalıştıran tek sunucunun kaynaklarını arttırmak yerine bir kaç sunucu yapıp veritabanını bir cluster gibi çalıştırarak yükü dengeleyebilirsiniz. Böylece hem daha güvenli bir yedekleme politikanız olmuş olur hem de gelen sorgulara tek değil bir kaç sunucu cevap verir. Sonuç olarak da veritabanı sunucuları darboğaza girmemiş olur.
vs. vs. örnekler ve çözümler çoğaltılabilir. Size önerim ilk olarak veritabanı sunucunuzu doğru şekilde config etmeniz olacaktır. Eğer bu konu hakkında yeterli bilgi sahibi değilseniz Amazon, Google gibi bulut servis sağlayıcılardan yönetimli veritabanı hizmeti alabilirsiniz.
- Araya bir cache sistemi koyarak birbirini tekrar eden sorguları önbellekleyebilirsiniz. Böylece sık yapılan sorgular her seferinde veritabanına istek gitmemiş olur.
Bu maddeyi nasıl gerçekleştirebilirim hocam? Sonuç itibariyle sürekli soru çektiği için aynı sorgu üzerinde defalarca çalışma yapmakta bana en mantıklısı bunu yapmak geldi içerisinde. Yada veritabanı sunucu için optimizasyon alabileceğim birisi var mıdır acaba?