MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Caching hasil kueri berulang di MongoDB

Saya tidak tahu siapa yang mengatakan itu, tetapi MongoDB memang memiliki cara untuk menyimpan kueri, sebenarnya ia menggunakan LRU OS untuk menyimpannya karena tidak melakukan manajemen memori itu sendiri.

Selama perangkat kerja Anda cocok dengan LRU tanpa OS harus mengeluarkannya atau bertukar terus-menerus, Anda harus paling sering membaca kueri ini dari memori. Jadi, ya, MongoDB dapat melakukan cache tetapi secara teknis tidak; OS melakukannya.

Mekanisme caching untuk memecahkan masalah semacam ini sama di sebagian besar teknologi baik itu dengan MongoDB atau SQL. Tentu saja, ini hanya penting jika itu adalah masalah, Anda mungkin mengoptimalkan mikro jika Anda bertanya kepada saya; kecuali Anda mendapatkan lalu lintas jenis Facebook atau Google atau Youtube.

Subjek caching beralih ke subjek besar yang berkisar dari kueri caching di MongoDB/Memcache/Redis pra-agregasi dll hingga caching HTML dan sumber daya web lainnya untuk membuat pekerjaan sesedikit mungkin di ujung server.

Skenario Anda, secara pribadi seperti yang saya katakan, terdengar seolah-olah Anda salah berpikir tentang daya komputer yang terbuang percuma. Bahkan jika Anda men-cache kueri ini di koleksi/teknologi lain, Anda mungkin akan menggunakan jumlah daya dan sumber daya yang sama untuk mengambil hasil dari teknologi itu daripada jika Anda tidak repot. Namun asumsi itu tergantung pada Anda memiliki indeks, skema, pengaturan yang tepat, dll.

Saya sarankan Anda membaca beberapa tautan tentang desain skema dan pembuatan indeks yang baik:

Ya, saya pikir dengan mencoba khawatir tentang caching kueri, Anda telah mengoptimalkan sebelumnya, terutama jika Anda tidak ingin lepas landas, apa yang akan menjadi 90% dari beban di server Anda setiap kali; memuat halaman itu sendiri.

Saya akan fokus pada skema dan indeks Anda dan kemudian khawatir tentang caching jika Anda benar-benar membutuhkannya.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bisakah saya mengubah indeks yang ada di MongoDB tanpa menghapusnya?

  2. mongodb mendapatkan catatan berbeda

  3. Mongoose - menemukan subdokumen berdasarkan kriteria

  4. Luwak - Agregasi $cocok berdasarkan nilai enum

  5. Pemilihan server habis setelah 10.000 ms - Tidak dapat menghubungkan Kompas ke mongoDB di localhost