MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Làm cách nào để xác định dải phân đoạn cho mỗi phân đoạn trong Mongo?

Bạn có thể. Có thể tách trước các phần theo cách thủ công, nó được mô tả ở đây: http:// www. mongodb.org/display/DOCS/Splitting+Chunks

Hãy suy nghĩ cẩn thận về cách bạn chia nhỏ các phần của mình. Nếu bạn làm điều đó không tốt, bạn có thể gặp rất nhiều vấn đề về hiệu suất, nhưng nếu bạn biết đủ về các khóa của mình, bạn có thể đạt được rất nhiều điều.

Nếu bạn làm điều đó, bạn có thể muốn tắt bộ cân bằng:

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

(điều này được mô tả ở đây: http://www.mongodb.org/display/DOCS / Sharding + Quản trị )

Đây là một ví dụ về cách bạn có thể làm điều đó. Tùy thuộc vào chính xác những gì bạn muốn làm, bạn sẽ phải sửa đổi nó (Tôi cho rằng khóa phân đoạn của bạn không được đặt tên là x , ví dụ:và phạm vi của bạn không phải là -1000 đến 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 lệnh tạo các khối. Mỗi lệnh sẽ chia đoạn chứa giá trị giữa thành hai, vì vậy lệnh đầu tiên sẽ chia đoạn chứa min_value -> max_value thành min_value -> 00 -> max_value . Sau đó, lệnh thứ hai chia đoạn chứa 1000, đoạn thứ hai được tạo bởi lệnh trước, thành hai đoạn mới. Sau lệnh đó, bạn có ba phần:

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

Ba lệnh sau sẽ di chuyển các khối này thành các phân đoạn riêng biệt. Tài liệu nói rằng lệnh sẽ di chuyển đoạn chứa giá trị trong find , vì vậy tôi đã chọn ba giá trị mà tôi biết là ở các phần khác nhau và sử dụng các giá trị này (có một ký hiệu trong BSON cho min_keymax_key , nhưng tôi không chắc cách sử dụng nó đúng cách trong ngữ cảnh này).

Đọc trang này nữa http://www.mongodb.org/display/DOCS/Moving + Chunks




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách tốt hơn để chuyển Bộ sưu tập MongoDB sang Bộ sưu tập khác

  2. MongoDB tổng hợp dự án chọn lọc

  3. truy vấn mongoDB sử dụng tổng hợp để truy vấn ngày gần đây nhất của một mặt hàng

  4. Có cách nào để chạy MongoDB shell (hoặc phương thức tojson) ở chế độ JSON nghiêm ngặt không?

  5. Trình điều khiển C ++ Mongo mới:cách xem kiểu và cách lấy giá trị chuỗi