- problem sorguda mi yoksa uygulamada mi anlamak icin ayni sorguyu komut satirindan calistirin ve bakin komut satirinda da ayni gecikme soz konusu mu.
- Nodejs "performance hooks"
nodejs.org kullanarak uygulamada cesitli kritik yerlere log koyun. boylece kritik noktalarda ne kadar zaman kaybettiginizi olcebilirsiniz. ornegin sorgunun basina ve sonuna, ya da database connection yaptiginiz yerin basina ve sonuna.
- postgres veya mysql gibi iliskisel veritabanlarinda veritabani ile baglanti kurmak ve baglanti kurarken zaman kaybini azalatmak icin "connection pool" yapilir. ama mongodb de connection pool yapmak gereksiz, cunku kendi icinde halleder. her sorguda da en bastan connection acmaniz gerekmez mongodb de. uygulama initialize oldugunda connection acilir, ve sorgu yapildiginda hep ayni connection kullanilir, hatta uygulama sonlandiginda connection kapatmaniz da gerekmez. her request geldiginde, ve her sorguda yeniden connection kuruyor olabilirsiniz, ve problemin neden bu olabilir.
- her request geldiginde gereken veriyi birden fazla sorgu calistirarak getiriyorsaniz mongodb nosql collection yapiniz dogru degildir ve collectionlar arasi iliskiyi sorgu calistirarak yapiyorsunuz demektir. bu verimsiz bir yontem. nosql veri tabanlarinda olusturulan yapi iliskisel veritabanlarindan farkli olmali. collectionlarinizi gereginden fazla kucuk collectiona bolmus olma ihtimaliniz var. yani fazla "normalization" yapmis olabilirsiniz. ama nosql veri tabanlarinda "normalizasyon" yapmak yerine "nested structure" olarak mumkun oldugunca veriyi ayni collection icinde tutmak daha avantajli. elinizdeki veri buna uygun degilse iliskisel veritabanlarindan birine gecmek sizin icin mantikli olabilir.