Trung BìnhMongoDB iconMongoDB

Sharding key trong MongoDB là gì và chọn thế nào cho đúng?

Shard key là field (hoặc nhóm field) dùng để chia dữ liệu ra các shard. Chọn đúng là cực kỳ quan trọng vì rất khó đổi sau này.

Ba tiêu chí:
- Cardinality cao (nhiều giá trị khác nhau): chọn status chỉ có active/inactive thì tối đa chỉ chia được 2 nhóm — vô dụng.
- Phân bố đều: tránh hot-spot. Key tăng dần đều theo thời gian/ObjectId sẽ khiến mọi lệnh ghi dồn vào shard mới nhất.
- Hỗ trợ query: query thường dùng nên chứa shard key để tránh "scatter-gather" (hỏi mọi shard). Hashed shard key chia tải rất đều nhưng kém cho range query; ranged shard key thì ngược lại.

Xem toàn bộ MongoDB cùng filter theo level & chủ đề con.

Mở danh sách MongoDB