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

Pecahan MongoDB berdasarkan tanggal pada satu mesin

Secara teknis Anda tidak perlu membagi konten Anda dan hanya perlu mengindeks bidang Anda. Ya, Anda dapat membuat indeks pada bidang tanggal dan itu akan dihormati yang dapat Anda lihat dengan mengunjungi rencana kueri db.collection.explain("executionStats")

Namun, Memilih kunci pecahan sangat penting. ada beberapa hal yang perlu dipertimbangkan saat memilih kunci pecahan

- Write scaling (high cardinality, Randomization)
- Query Isolation. (read)

memilih bidang tanggal sebenarnya memberikan kardinalitas yang sangat tinggi namun gagal dalam melakukan pengacakan dan akibatnya semua dokumen disimpan ke dalam pecahan tunggal dan karenanya membatasi kapasitas tulis sistem. Untuk alasan yang sama ObjectId tidak disarankan untuk digunakan sebagai kunci pecahan.

http://docs.mongodb.org/manual/core/sharding- shard-key/ Konten dari tautan di atas.."MongoDB menghasilkan nilai ObjectId pada pembuatan dokumen untuk menghasilkan pengidentifikasi unik untuk objek. Namun, bit data yang paling signifikan dalam nilai ini mewakili cap waktu, yang berarti bahwa mereka bertambah dalam a pola teratur dan dapat diprediksi. Meskipun nilai ini memiliki kardinalitas tinggi, saat menggunakan ini, tanggal apa pun, atau angka lain yang meningkat secara monoton sebagai kunci shard, semua operasi penyisipan akan menyimpan data ke dalam satu potongan, dan oleh karena itu, satu shard. Sebagai hasilnya, kapasitas tulis shard ini akan menentukan kapasitas tulis efektif cluster."



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cara mendapatkan item apa pun (Titik, LineString, Poligon) di dalam kotak pembatas di mongodb

  2. Melindungi Data Anda dengan ClusterControl

  3. Bagaimana cara terhubung ke cluster Atlas M0 (Free Tier) dengan benar melalui driver Java?

  4. Metode 'statis' luwak vs. metode 'contoh'

  5. tidak dapat mengonversi dari 'MongoDB.Driver.IMongoCollection<>' ke 'System.Collections.Generic.IEnumerable<>'