Người ta thường cho rằng mongodb có ghi nhanh điên cuồng. Trong khi họ không thực sự chậm, điều này khá là quá đáng. Viết thông lượng trong mongodb bị giới hạn bởi khóa ghi toàn cục. Có, bạn đã nghe tôi nói đúng, chỉ có thể có ONE hoạt động ghi xảy ra trên máy chủ tại bất kỳ thời điểm cụ thể nào.
Ngoài ra, tôi khuyên bạn nên tận dụng lợi thế của tính chất schemaless của mongodb và lưu trữ dữ liệu của bạn không chuẩn hóa. Thường thì có thể làm chỉ một đĩa tìm nạp tất cả các dữ liệu cần thiết (vì nó là tất cả trong cùng một tài liệu). Tìm kiếm đĩa ít hơn - truy vấn nhanh hơn.
Nếu dữ liệu nằm trong RAM - không cần tìm đĩa nào cả, dữ liệu được phân phối ngay từ bộ nhớ. Vì vậy, hãy chắc chắn rằng bạn có đủ RAM.
Map/Reduce, group, $where truy vấn chậm.
Không nên ghi nhanh vào một tài liệu lớn (ví dụ: sử dụng $push
). Tài liệu sẽ vượt quá ranh giới đĩa của nó và sẽ phải được sao chép sang một nơi khác, trong đó bao gồm nhiều hoạt động đĩa.
Và tôi đồng ý với @AurelienB, một số nguyên tắc cơ bản là phổ quát trên tất cả các cơ sở dữ liệu.
Nguồn
2011-12-19 14:14:08
Những gì tôi nghe bạn nói là "mongodb có ghi rất nhanh, nhưng hệ thống khóa giới hạn bạn một lần tại một thời điểm." Liệu điều đó có áp dụng ngay cả với sharding? – Abe
Không, sharding giảm thiểu vấn đề này. Mỗi mảnh vỡ đều có khóa riêng. –