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

chi phí của các khóa trong cơ sở dữ liệu tài liệu JSON (mongodb ,asticsearch)

Bạn chính xác nhận thấy rằng các tài liệu sẽ có kích thước khác nhau. Vì vậy, bạn sẽ tiết kiệm ít nhất 15 bytes mỗi tài liệu (60% cho các tài liệu tương tự) nếu bạn quyết định áp dụng giản đồ thứ hai. Điều này sẽ kết thúc bằng một cái gì đó giống như 140MB cho 10 million của bạn Hồ sơ. Điều này sẽ mang lại cho bạn lợi thế sau:

  • Tiết kiệm ổ cứng. Vấn đề duy nhất là nhìn vào giá của ổ cứng HDD hiện tại, điều này gần như vô dụng.
  • Tiết kiệm RAM. So với đĩa cứng, điều này có thể hữu ích cho việc lập chỉ mục. Trong mongodb tập hợp làm việc của các chỉ mục phải phù hợp với RAM để đạt được hiệu quả hiệu suất . Vì vậy, nếu bạn có chỉ mục trên hai trường này, bạn sẽ không chỉ tiết kiệm được 140MB dung lượng ổ cứng mà còn 140MB dung lượng RAM tiềm năng (thực sự đáng chú ý).
  • I / O . Rất nhiều tắc nghẽn xảy ra do giới hạn của hệ thống đầu vào / đầu ra (tốc độ đọc / ghi từ đĩa bị hạn chế). Đối với tài liệu của bạn, điều này có nghĩa là với giản đồ 2, bạn có thể đọc / ghi twice as many documents mỗi 1 giây.
  • mạng . Trong nhiều trường hợp, mạng thậm chí còn chậm hơn so với IO, và nếu máy chủ DB của bạn ở trên máy khác thì máy chủ ứng dụng của bạn, dữ liệu phải được gửi qua dây. Và bạn cũng sẽ có thể gửi gấp đôi dữ liệu.

Sau khi kể về những ưu điểm, tôi phải cho bạn biết một nhược điểm đối với một chiếc chìa khóa nhỏ:

  • khả năng đọc của cơ sở dữ liệu. Khi bạn thực hiện db.coll.findOne() và thấy {_id: 1, t: 13423, a: 3, b:0.2} khá khó để hiểu chính xác những gì được lưu trữ ở đây.
  • khả năng đọc của ứng dụng tương tự với cơ sở dữ liệu, nhưng ít nhất ở đây bạn có thể có một giải pháp. Với một logic ánh xạ, biến đổi currentDate thành cprice thành p bạn có thể viết một mã rõ ràng và có một giản đồ ngắn gọn.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Điền trường được chọn từ bộ sưu tập và lọc theo giá trị đã chọn trong sao băng

  2. Kiểm tra xem cơ sở dữ liệu mongodb có tồn tại không?

  3. Làm thế nào để Nhóm mongodb - mapReduce đầu ra?

  4. Không thể chuyển giá trị của tham số vào kho lưu trữ Symfony findOneBy

  5. Làm cách nào để thực thi một số tiêu chí động trong mongoose.find?