MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Cửa hàng enum MongoDB

TL; DR:Chuỗi có lẽ là an toàn hơn và sự khác biệt về hiệu suất sẽ không đáng kể. Các số nguyên có ý nghĩa đối với các tập hợp lớn nơi enum phải được lập chỉ mục. YMMV.

Đúng.

Đây là một lợi ích chính của số nguyên theo quan điểm của tôi. Tuy nhiên, nó cũng yêu cầu bạn đảm bảo các giá trị liên quan của enum không thay đổi. Nếu bạn làm sai điều đó, bạn sẽ gần như chắc chắn sẽ bị tàn phá , đó là một bất lợi lớn.

Nếu bạn thực sự đang sử dụng kiểu dữ liệu enum, có thể đó là một số loại số nguyên bên trong, do đó, số nguyên sẽ yêu cầu xử lý ít hơn. Dù bằng cách nào, chi phí đó sẽ không đáng kể.

Tôi đang nhắc lại rất nhiều điều đã nói, nhưng có lẽ điều đó sẽ giúp ích cho những độc giả khác. Tổng kết:

  • Việc trộn lẫn bản đồ giá trị enum sẽ tàn phá. Hãy tưởng tượng Declined của bạn trạng thái đột nhiên được hiểu là Accepted , bởi vì Declined có giá trị '2' và bây giờ nó Accepted bởi vì bạn đã sắp xếp lại thứ tự enum và quên gán giá trị theo cách thủ công ... ( rùng mình )
  • Các chuỗi biểu cảm hơn
  • Số nguyên chiếm ít dung lượng hơn. Dung lượng ổ đĩa thường không quan trọng, nhưng dung lượng chỉ mục sẽ ăn RAM, tốn kém.
  • Cập nhật số nguyên không thay đổi kích thước đối tượng. Các chuỗi, nếu độ dài của chúng khác nhau rất nhiều, có thể yêu cầu phân bổ lại. Tuy nhiên, phần đệm chuỗi và phần đệm sẽ giảm bớt điều này.
  • Rất tiếc, số nguyên có thể là cờ (chưa thể truy vấn (chưa), hãy xem SERVER-3518 )
  • Các số nguyên có thể được truy vấn bằng $gt / $lt để bạn có thể triển khai $or phức tạp một cách hiệu quả truy vấn, mặc dù đó là một yêu cầu khá phức tạp và không có gì sai với $or truy vấn ...



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách tốt nhất để lưu trữ ngày tháng trong MongoDB là gì?

  2. Cách sắp xếp theo 'giá trị' của một khóa cụ thể trong thuộc tính được lưu trữ dưới dạng một mảng có cặp k-v trong mongodb

  3. Tìm theo id hoặc tên người dùng trong mongo

  4. Cách chuyển đổi truy vấn tổng hợp MongoDB sang Laravel MongoDB bằng jenssegers

  5. Làm cách nào để chọn một trường duy nhất trong MongoDB bằng Pymongo?