Ini juga tergantung pada jenis kueri yang Anda jalankan, Harap periksa apakah ada poin yang disebutkan di bawah ini -
- apakah ada banyak kueri agregasi? Apa jenis struktur koleksi yang Anda miliki yaitu
- apakah ada banyak array bersarang?
- Apakah itu satu set instance atau replika? Coba letakkan set replika dengan readand write ke node yang berbeda.
- Apakah kueri mengembalikan data dari beberapa koleksi?
- Periksa bahwa instance Anda adalah page-faulting untuk berapa % operasi?
- Periksa log Anda untuk operasi dengan nscanned tinggi atau scanAndOrder selama periode penguncian/antrean tinggi, dan indeks yang sesuai.
- Periksa kueri Anda untuk operator intensif CPU seperti $all, $push/$pop/$addToSet, serta pembaruan untuk dokumen besar, dan terutama pembaruan untuk dokumen dengan larik besar (atau larik subdokumen besar).
- jika basis data Anda banyak menulis, perlu diingat bahwa hanya satu CPU per basis data yang dapat menulis pada satu waktu (karena utas tersebut memegang kunci tulis). Pertimbangkan untuk memindahkan sebagian data tersebut ke databasenya sendiri.
Ini adalah beberapa hal yang menurunkan kinerja dari waktu ke waktu. Saya telah membahas kasus penggunaan yang paling umum di sini, namun harap periksa postingan ini untuk beberapa wawasan lagi.