Tôi đã sử dụng MongoDB một cách rộng rãi (trong 6 tháng qua), xây dựng một hệ thống quản lý dữ liệu phân cấp và tôi có thể chứng minh cho cả việc dễ dàng thiết lập (cài đặt, chạy, sử dụng nó!) Và tốc độ. Miễn là bạn nghĩ về các chỉ số một cách cẩn thận, nó hoàn toàn có thể hét lên, tốc độ khôn ngoan.
Tôi tập hợp rằng Cassandra, do được sử dụng với các dự án quy mô lớn như Twitter, có chức năng mở rộng tốt hơn, mặc dù nhóm MongoDB đang làm việc ngang bằng ở đó. Tôi nên chỉ ra rằng tôi đã không sử dụng Cassandra ngoài giai đoạn chạy thử, vì vậy tôi không thể nói chi tiết.
Người thay đổi thực sự đối với tôi, khi chúng tôi đánh giá cơ sở dữ liệu NoQuery, là truy vấn - Cassandra về cơ bản chỉ là một kho lưu trữ khóa / giá trị khổng lồ và truy vấn hơi khó hiểu (ít nhất là so với MongoDB), vì vậy về hiệu suất bạn phải sao chép khá nhiều dữ liệu dưới dạng một chỉ mục thủ công. MongoDB, mặt khác, sử dụng mô hình "truy vấn bằng ví dụ".
Ví dụ: giả sử bạn đã có Bộ sưu tập (cách nói MongoDB tương đương với bảng RDMS) có chứa Người dùng. MongoDB lưu trữ các bản ghi dưới dạng Tài liệu, về cơ bản là các đối tượng JSON nhị phân. ví dụ:
{
FirstName: "John",
LastName: "Smith",
Email: "john@smith.com",
Groups: ["Admin", "User", "SuperUser"]
}
Nếu bạn muốn tìm tất cả người dùng được gọi là Smith có quyền Quản trị viên, bạn chỉ cần tạo một tài liệu mới (tại bảng điều khiển quản trị bằng Javascript hoặc trong sản xuất bằng ngôn ngữ bạn chọn):
{
LastName: "Smith",
Groups: "Admin"
}
... Và sau đó chạy truy vấn. Đó là nó. Có các toán tử được thêm vào để so sánh, lọc RegEx, v.v., nhưng tất cả đều khá đơn giản và tài liệu dựa trên Wiki khá tốt.