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

Bagaimana cara menentukan rentang sharding untuk setiap shard di Mongo?

Kamu bisa. Dimungkinkan untuk memisahkan potongan secara manual, dijelaskan di sini:http://www. mongodb.org/display/DOCS/Splitting+Chunks

Pikirkan baik-baik tentang bagaimana Anda membagi potongan Anda. Jika Anda melakukannya dengan buruk, Anda bisa mendapatkan banyak masalah kinerja, tetapi jika Anda cukup tahu tentang kunci Anda, Anda bisa mendapatkan banyak.

Jika Anda melakukannya, Anda mungkin ingin mematikan penyeimbang:

> use config
> db.settings.update({_id: "balancer"}, {$set: {stopped: true}}, true);

(ini dijelaskan di sini:http://www.mongodb.org/display/DOCS /Sharding+Administrasi )

Ini adalah contoh bagaimana Anda bisa melakukannya. Bergantung pada apa yang ingin Anda lakukan, Anda harus memodifikasinya (saya berasumsi kunci shard Anda tidak bernama x , misalnya, dan rentang Anda tidak -1000 hingga 2000).

> use admin
> db.runCommand({split: "my_db.my_coll", middle: {x: 0}})
> db.runCommand({split: "my_db.my_coll", middle: {x: 1000}})
> db.runCommand({movechunk: "my_db.my_coll", find: {x:   -1}, to: "shard_1_name"})
> db.runCommand({movechunk: "my_db.my_coll", find: {x:    0}, to: "shard_2_name"})
> db.runCommand({movechunk: "my_db.my_coll", find: {x: 1000}, to: "shard_3_name"})

split perintah membuat potongan. Setiap perintah membagi potongan yang berisi nilai tengah menjadi dua, jadi yang pertama membagi potongan yang berisi min_value -> max_value ke min_value -> 0 dan 0 -> max_value . Kemudian perintah kedua membagi potongan yang berisi 1000, potongan kedua yang dibuat oleh perintah sebelumnya, menjadi dua potongan baru. Setelah perintah itu Anda memiliki tiga potongan:

  • min_value -> 0
  • 0 -> 1000
  • 1000 -> max_value

Tiga perintah berikut memindahkan potongan ini untuk memisahkan pecahan. Dokumen mengatakan bahwa perintah akan memindahkan potongan yang berisi nilai di find , jadi saya memilih tiga nilai yang saya tahu berada di potongan yang berbeda dan menggunakan ini (ada simbol di BSON untuk min_key dan max_key , tapi saya tidak yakin bagaimana menggunakannya dengan benar dalam konteks ini).

Baca juga halaman ini http://www.mongodb.org/display/DOCS/Moving +Potongan




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongodb bagian dari objectid kemungkinan besar unik

  2. Webpack - Bagaimana Anda memerlukan ketergantungan opsional dalam bundel (saslprep)

  3. Mengapa PyMongo 3 memberikan ServerSelectionTimeoutError?

  4. MongoDB:Cara menemukan dokumen dengan id di dalam dokumen bersarang

  5. Pilih data di mana rentang antara dua bidang yang berbeda berisi nomor tertentu