Cấu trúc bên trong của MongoDB là gì?

Tôi rất tin tưởng rằng các hệ thống cơ sở dữ liệu chia sẻ các nguyên tắc cơ bản cốt lõi tương tự ở lớp lưu trữ của chúng và việc hiểu chúng cho phép một người so sánh các DBMS khác nhau một cách khách quan. Ví dụ: Cách lưu trữ tài liệu trong MongoDB không khác gì cách lưu trữ hàng của MySQL hoặc PostgreSQL

Mọi thứ đều được chuyển vào đĩa, mẹo là tìm nạp những gì bạn cần từ đĩa một cách hiệu quả với càng ít I/O càng tốt, phần còn lại là API

Một bản ghi trong MongoDB là một tài liệu, là một cấu trúc dữ liệu bao gồm các cặp trường và giá trị. Các tài liệu MongoDB tương tự như các đối tượng JSON. Giá trị của các trường có thể bao gồm các tài liệu, mảng và mảng tài liệu khác

Ưu điểm của việc sử dụng tài liệu là

  • Tài liệu tương ứng với các kiểu dữ liệu gốc trong nhiều ngôn ngữ lập trình

  • Các tài liệu và mảng được nhúng giúp giảm nhu cầu kết nối đắt tiền

  • Lược đồ động hỗ trợ tính đa hình trôi chảy

Bộ sưu tập/Lượt xem/Lượt xem cụ thể hóa theo yêu cầu

MongoDB lưu trữ tài liệu trong. Bộ sưu tập tương tự như bảng trong cơ sở dữ liệu quan hệ

Ngoài các bộ sưu tập, MongoDB hỗ trợ

  • Chế độ xem chỉ đọc (Bắt đầu từ MongoDB 3. 4)

  • Chế độ xem cụ thể hóa theo yêu cầu (Bắt đầu từ MongoDB 4. 2)

Các tính năng chính

Hiệu suất cao

MongoDB cung cấp tính bền vững dữ liệu hiệu suất cao. Đặc biệt,

  • Hỗ trợ cho các mô hình dữ liệu nhúng làm giảm hoạt động I/O trên hệ thống cơ sở dữ liệu

  • Các chỉ mục hỗ trợ các truy vấn nhanh hơn và có thể bao gồm các khóa từ các tài liệu và mảng được nhúng

API truy vấn

MongoDB Query API hỗ trợ các thao tác đọc và ghi (CRUD) cũng như

  • Tổng hợp dữ liệu

  • Tìm kiếm văn bản và truy vấn không gian địa lý

Mẹo

Xem thêm

  • Biểu đồ ánh xạ SQL sang MongoDB

  • Biểu đồ ánh xạ SQL sang tập hợp

  • Tìm hiểu về các tính năng ngôn ngữ truy vấn mới nhất với

    Ngôn ngữ truy vấn MongoDB. Có gì mới bản trình bày từ MongoDB. sống 2020.

Tính khả dụng cao

Cơ sở sao chép của MongoDB, được gọi là bộ bản sao, cung cấp

  • chuyển đổi dự phòng tự động

  • dữ liệu dự phòng

Bộ bản sao là một nhóm các máy chủ MongoDB duy trì cùng một bộ dữ liệu, cung cấp khả năng dự phòng và tăng tính khả dụng của dữ liệu

Khả năng mở rộng theo chiều ngang

MongoDB cung cấp khả năng mở rộng theo chiều ngang như một phần chức năng cốt lõi của nó

  • phân phối dữ liệu trên một cụm máy

  • bắt đầu trong 3. 4, MongoDB hỗ trợ tạo dữ liệu dựa trên. Trong một cụm cân bằng, MongoDB chỉ đạo việc đọc và ghi được bao phủ bởi một vùng chỉ tới các phân đoạn bên trong vùng đó. Xem trang hướng dẫn để biết thêm thông tin

Hỗ trợ nhiều công cụ lưu trữ

MongoDB hỗ trợ nhiều công cụ lưu trữ

  • WiredTiger Storage Engine (bao gồm hỗ trợ Encryption at Rest)

  • Công cụ lưu trữ trong bộ nhớ

Ngoài ra, MongoDB cung cấp API công cụ lưu trữ có thể cắm được cho phép các bên thứ ba phát triển công cụ lưu trữ cho MongoDB

MongoDB được thiết kế để đáp ứng nhu cầu của các ứng dụng hiện đại với nền tảng công nghệ cho phép bạn vượt qua

  • Mô hình dữ liệu tài liệu – trình bày cho bạn cách tốt nhất để làm việc với dữ liệu

  • Thiết kế hệ thống phân tán – cho phép bạn đặt dữ liệu ở nơi bạn muốn một cách thông minh

  • Một trải nghiệm hợp nhất cho phép bạn tự do chạy ở bất cứ đâu – cho phép bạn kiểm chứng công việc của mình trong tương lai và loại bỏ sự ràng buộc của nhà cung cấp

Với những khả năng này, bạn có thể xây dựng Nền tảng dữ liệu hoạt động thông minh, được hỗ trợ bởi MongoDB. Tải xuống Hướng dẫn kiến ​​trúc nơi chúng tôi tìm hiểu sâu hơn về nền tảng công nghệ của MongoDB

Thách thức chính trong mô hình hóa dữ liệu là cân bằng nhu cầu của ứng dụng, đặc điểm hiệu suất của công cụ cơ sở dữ liệu và các mẫu truy xuất dữ liệu. Khi thiết kế các mô hình dữ liệu, hãy luôn xem xét ứng dụng sử dụng dữ liệu (i. e. truy vấn, cập nhật và xử lý dữ liệu) cũng như cấu trúc vốn có của chính dữ liệu đó

Lược đồ linh hoạt

Không giống như cơ sở dữ liệu SQL, nơi bạn phải xác định và khai báo lược đồ của bảng trước khi chèn dữ liệu, theo mặc định, MongoDB không yêu cầu tài liệu của chúng phải có cùng lược đồ. Đó là

  • Các tài liệu trong một bộ sưu tập không cần phải có cùng một tập hợp các trường và kiểu dữ liệu cho một trường có thể khác nhau giữa các tài liệu trong một bộ sưu tập

  • Để thay đổi cấu trúc của tài liệu trong một bộ sưu tập, chẳng hạn như thêm trường mới, xóa trường hiện có hoặc thay đổi giá trị trường thành loại mới, hãy cập nhật tài liệu theo cấu trúc mới

Tính linh hoạt này tạo điều kiện thuận lợi cho việc ánh xạ tài liệu tới một thực thể hoặc một đối tượng. Mỗi tài liệu có thể khớp với các trường dữ liệu của thực thể được đại diện, ngay cả khi tài liệu đó có sự thay đổi đáng kể so với các tài liệu khác trong bộ sưu tập

Tuy nhiên, trên thực tế, các tài liệu trong một bộ sưu tập có chung cấu trúc và bạn có thể thực thi các quy tắc xác thực tài liệu cho một bộ sưu tập trong các thao tác cập nhật và chèn. Xem Xác thực lược đồ để biết chi tiết

Cấu trúc tài liệu

Quyết định quan trọng trong việc thiết kế mô hình dữ liệu cho các ứng dụng MongoDB xoay quanh cấu trúc của tài liệu và cách ứng dụng thể hiện mối quan hệ giữa dữ liệu. MongoDB cho phép dữ liệu liên quan được nhúng trong một tài liệu

Dữ liệu nhúng

Tài liệu nhúng nắm bắt mối quan hệ giữa dữ liệu bằng cách lưu trữ dữ liệu liên quan trong một cấu trúc tài liệu duy nhất. Các tài liệu MongoDB cho phép nhúng cấu trúc tài liệu vào một trường hoặc mảng trong tài liệu. Các mô hình dữ liệu không chuẩn hóa này cho phép các ứng dụng truy xuất và thao tác dữ liệu liên quan trong một thao tác cơ sở dữ liệu

Đối với nhiều trường hợp sử dụng trong MongoDB, mô hình dữ liệu không chuẩn hóa là tối ưu

Xem điểm mạnh và điểm yếu của tài liệu nhúng

Người giới thiệu

Tài liệu tham khảo lưu trữ các mối quan hệ giữa dữ liệu bằng cách bao gồm các liên kết hoặc tài liệu tham khảo từ tài liệu này sang tài liệu khác. Các ứng dụng có thể giải quyết các tham chiếu này để truy cập dữ liệu liên quan. Nhìn chung, đây là những mô hình dữ liệu được chuẩn hóa

Xem điểm mạnh và điểm yếu của việc sử dụng tài liệu tham khảo

Tính nguyên tử của hoạt động ghi

Tính nguyên tử của một tài liệu

Trong MongoDB, thao tác ghi là nguyên tử ở cấp độ của một tài liệu, ngay cả khi thao tác sửa đổi nhiều tài liệu được nhúng trong một tài liệu

Mô hình dữ liệu không chuẩn hóa với dữ liệu nhúng kết hợp tất cả dữ liệu liên quan trong một tài liệu thay vì chuẩn hóa trên nhiều tài liệu và bộ sưu tập. Mô hình dữ liệu này tạo điều kiện cho các hoạt động nguyên tử

Để biết chi tiết về các giao dịch trong MongoDB, hãy xem trang Giao dịch

Giao dịch nhiều tài liệu

Khi một thao tác ghi đơn lẻ (e. g. ) sửa đổi nhiều tài liệu, việc sửa đổi từng tài liệu là nguyên tử, nhưng toàn bộ hoạt động không phải là nguyên tử

Khi thực hiện các thao tác ghi nhiều tài liệu, cho dù thông qua một thao tác ghi đơn hay nhiều thao tác ghi, các thao tác khác có thể xen kẽ

Đối với các tình huống yêu cầu tính nguyên tử của việc đọc và ghi vào nhiều tài liệu (trong một hoặc nhiều bộ sưu tập), MongoDB hỗ trợ các giao dịch đa tài liệu

  • Trong phiên bản 4. 0, MongoDB hỗ trợ các giao dịch đa tài liệu trên các bộ bản sao

  • Trong phiên bản 4. 2, MongoDB giới thiệu các giao dịch phân tán, bổ sung hỗ trợ cho các giao dịch nhiều tài liệu trên các cụm được phân đoạn và kết hợp hỗ trợ hiện có cho các giao dịch nhiều tài liệu trên các bộ bản sao

Để biết chi tiết về các giao dịch trong MongoDB, hãy xem trang Giao dịch

Quan trọng

Trong hầu hết các trường hợp, giao dịch nhiều tài liệu phát sinh chi phí hiệu suất cao hơn so với ghi một tài liệu và tính khả dụng của các giao dịch nhiều tài liệu không phải là sự thay thế cho thiết kế lược đồ hiệu quả. Đối với nhiều trường hợp, sẽ tiếp tục tối ưu cho dữ liệu và trường hợp sử dụng của bạn. Nghĩa là, trong nhiều tình huống, việc lập mô hình dữ liệu của bạn một cách thích hợp sẽ giảm thiểu nhu cầu giao dịch nhiều tài liệu

Để biết các cân nhắc sử dụng giao dịch bổ sung (chẳng hạn như giới hạn thời gian chạy và giới hạn kích thước oplog), hãy xem thêm Cân nhắc sản xuất

Mẹo

Xem thêm

Hiệu suất và Sử dụng Dữ liệu

Khi thiết kế một mô hình dữ liệu, hãy xem xét các ứng dụng sẽ sử dụng cơ sở dữ liệu của bạn như thế nào. Chẳng hạn, nếu ứng dụng của bạn chỉ sử dụng các tài liệu được chèn gần đây, hãy cân nhắc sử dụng Capped Collections. Hoặc nếu nhu cầu ứng dụng của bạn chủ yếu là các thao tác đọc đối với một bộ sưu tập, thì việc bổ sung để hỗ trợ các truy vấn phổ biến có thể cải thiện hiệu suất

Xem Các yếu tố hoạt động và Mô hình dữ liệu để biết thêm thông tin về những điều này và các cân nhắc hoạt động khác ảnh hưởng đến thiết kế mô hình dữ liệu

Tìm hiểu thêm

MongoDB. các bài thuyết trình trực tiếp 2020

Để tìm hiểu cách kết hợp mô hình dữ liệu linh hoạt vào lược đồ của bạn, hãy xem các bản trình bày sau từ MongoDB. sống 2020

Cấu trúc dữ liệu nội bộ của tài liệu MongoDB là gì?

MongoDB lưu trữ các bản ghi dữ liệu dưới dạng tài liệu BSON . BSON là biểu diễn nhị phân của tài liệu JSON, mặc dù nó chứa nhiều loại dữ liệu hơn JSON.

MongoDB hoạt động nội bộ như thế nào?

MongoDB lưu trữ các đối tượng dữ liệu trong các bộ sưu tập và tài liệu thay vì các bảng và hàng được sử dụng trong cơ sở dữ liệu quan hệ truyền thống . Bộ sưu tập bao gồm các bộ tài liệu, tương đương với các bảng trong cơ sở dữ liệu quan hệ. Tài liệu bao gồm các cặp khóa-giá trị, là đơn vị dữ liệu cơ bản trong MongoDB.

MongoDB đại diện cho định dạng nào trong cấu trúc?

Tính phổ biến của JSON khiến nó trở thành lựa chọn hiển nhiên để biểu diễn cấu trúc dữ liệu trong mô hình dữ liệu tài liệu của MongoDB.

Cấu trúc của MongoDB Mcq là gì?

Giải thích. Bản ghi trong MongoDB là một tài liệu, là cấu trúc dữ liệu bao gồm các cặp trường và giá trị đại diện cho một phiên bản duy nhất của cơ sở dữ liệu . Các tài liệu trong MongoDB trông giống như các đối tượng JSON về ngoại hình.