Shending chỉ là một tên gọi khác của "phân vùng ngang" của cơ sở dữ liệu. Bạn có thể muốn tìm kiếm cụm từ đó để làm cho nó rõ ràng hơn.
Từ Wikipedia :
Phân vùng ngang là một nguyên tắc thiết kế, theo đó các hàng của bảng cơ sở dữ liệu được giữ riêng, thay vì chia theo các cột (như để chuẩn hóa). Mỗi phân vùng tạo thành một phần của phân đoạn, có thể lần lượt được đặt trên một máy chủ cơ sở dữ liệu riêng hoặc vị trí thực tế. Ưu điểm là số lượng hàng trong mỗi bảng được giảm (điều này làm giảm kích thước chỉ mục, do đó cải thiện hiệu suất tìm kiếm). Nếu shending dựa trên một số khía cạnh thực tế của dữ liệu (ví dụ: khách hàng châu Âu so với khách hàng Mỹ) thì có thể dễ dàng suy ra tư cách thành viên shard thích hợp và chỉ truy vấn phân đoạn có liên quan.
Một số thông tin khác về shending:
Thứ nhất, mỗi máy chủ cơ sở dữ liệu giống hệt nhau, có cùng cấu trúc bảng. Thứ hai, các bản ghi dữ liệu được phân chia hợp lý trong cơ sở dữ liệu được phân chia. Không giống như cơ sở dữ liệu được phân vùng, mỗi bản ghi dữ liệu hoàn chỉnh chỉ tồn tại trong một phân đoạn (trừ khi có phản chiếu để sao lưu / dự phòng) với tất cả các hoạt động CRUD được thực hiện chỉ trong cơ sở dữ liệu đó. Bạn có thể không thích thuật ngữ được sử dụng, nhưng điều này thể hiện một cách khác để tổ chức cơ sở dữ liệu logic thành các phần nhỏ hơn.
Cập nhật: Bạn sẽ không phá vỡ MVC. Công việc xác định phân đoạn chính xác nơi lưu trữ dữ liệu sẽ được thực hiện trong suốt bởi lớp truy cập dữ liệu của bạn. Ở đó bạn sẽ phải xác định phân đoạn chính xác dựa trên các tiêu chí mà bạn đã sử dụng để bảo vệ cơ sở dữ liệu của mình. (Vì bạn phải phân chia thủ công cơ sở dữ liệu thành một số phân đoạn khác nhau dựa trên một số khía cạnh cụ thể của ứng dụng của bạn.) Sau đó, bạn phải cẩn thận khi tải và lưu trữ dữ liệu từ / vào cơ sở dữ liệu để sử dụng phân đoạn chính xác.
Có thể ví dụ này với mã Java làm cho nó rõ ràng hơn một chút (đó là về các mảnh Hibernate dự án ), cách thức này sẽ hoạt động trong một kịch bản trong thế giới thực.
Để giải quyết " why sharding
": Chủ yếu chỉ dành cho các ứng dụng quy mô lớn, có nhiều dữ liệu. Đầu tiên, nó giúp giảm thiểu thời gian phản hồi cho các truy vấn cơ sở dữ liệu. Thứ hai, bạn có thể sử dụng các máy "cấp thấp" rẻ hơn để lưu trữ dữ liệu của mình, thay vì một máy chủ lớn, có thể không còn đủ nữa.