Sharding trong MongoDB là gì?
Sharding là một khái niệm trong MongoDB, nó chia các tập dữ liệu lớn thành các tập dữ liệu nhỏ trên nhiều cá thể MongoDB.
Đôi khi dữ liệu trong MongoDB sẽ rất lớn, đến mức các truy vấn chống lại các tập dữ liệu lớn như vậy có thể gây ra nhiều việc sử dụng CPU trên máy chủ. Để giải quyết tình huống này, MongoDB có một khái niệm về Sharding, về cơ bản là sự phân chia các tập dữ liệu trên nhiều cá thể MongoDB.
Bộ sưu tập có thể có kích thước lớn thực sự được chia thành nhiều bộ sưu tập hoặc các mảnh như chúng được gọi. Về mặt logic, tất cả các phân đoạn hoạt động như một tập hợp.
Cách thực hiện Sharding
Các phân đoạn được thực hiện bằng cách sử dụng các cụm không là gì ngoài một nhóm các cá thể MongoDB.
Các thành phần của Shard bao gồm
- Một Shard - Đây là điều cơ bản, và đây không là gì ngoài một cá thể MongoDB chứa tập con của dữ liệu. Trong môi trường sản xuất, tất cả các phân đoạn cần phải là một phần của tập hợp bản sao.
- Máy chủ cấu hình - Đây là một cá thể mongodb chứa siêu dữ liệu về cụm, về cơ bản là thông tin về các cá thể mongodb khác nhau sẽ chứa dữ liệu phân đoạn.
- Bộ định tuyến - Đây là một cá thể mongodb về cơ bản có nhiệm vụ chuyển hướng lại các lệnh do máy khách gửi đến đúng máy chủ.
Ví dụ về cụm làm sắc nét từng bước
Bước 1) Tạo cơ sở dữ liệu riêng cho máy chủ cấu hình.
mkdir /data/configdb
Bước 2) Khởi động cá thể mongodb ở chế độ cấu hình. Giả sử nếu chúng ta có một máy chủ có tên là Server D sẽ là máy chủ cấu hình của chúng ta, chúng ta sẽ cần chạy lệnh dưới đây để cấu hình máy chủ làm máy chủ cấu hình.
mongod -configdb ServerD: 27019
Bước 3) Bắt đầu phiên bản mongos bằng cách chỉ định máy chủ cấu hình
mongos -configdb ServerD: 27019
Bước 4) Từ trình bao mongo kết nối với thể hiện của mongo
mongo -host ServerD -port 27017
Bước 5) Nếu bạn có Máy chủ A và Máy chủ B cần được thêm vào cụm, hãy đưa ra các lệnh dưới đây
sh.addShard("ServerA:27017")sh.addShard("ServerB:27017")
Bước 6) Bật tính năng sharding cho cơ sở dữ liệu. Vì vậy, nếu chúng ta cần chia nhỏ cơ sở dữ liệu Employeedb, hãy sử dụng lệnh dưới đây
sh.enableSharding(Employeedb)
Bước 7) Bật tính năng sharding cho bộ sưu tập. Vì vậy, nếu chúng ta cần phân đoạn bộ sưu tập Nhân viên, hãy sử dụng lệnh dưới đây
Sh.shardCollection("db.Employee" , { "Employeeid" : 1 , "EmployeeName" : 1})
Tóm lược:
- Như đã giải thích trong hướng dẫn, Sharding là một khái niệm trong MongoDB, chia các tập dữ liệu lớn thành các tập dữ liệu nhỏ trên nhiều cá thể MongoDB.