Khối lượng công việc MongoDB

Bài đăng trên blog này đã được cập nhật vào ngày 17 tháng 11 năm 2022 với kết quả điểm chuẩn mới nhất cho InfluxDB v1. 8. 10 và MongoDB v5. 0. 6. Để cung cấp cho bạn những phát hiện mới nhất, blog này được cập nhật thường xuyên với các số liệu điểm chuẩn mới nhất

Tại InfluxData, một trong những câu hỏi phổ biến mà chúng tôi thường xuyên nhận được từ các nhà phát triển và kiến ​​trúc sư trong vài tháng qua là, “Làm thế nào để InfluxDB so sánh với MongoDB về khối lượng công việc theo chuỗi thời gian?” . Đầu tiên, nếu họ đang bắt đầu một dự án hoàn toàn mới và thực hiện thẩm định đánh giá trực tiếp một vài giải pháp, thì việc tạo lưới so sánh của họ có thể hữu ích. Thứ hai, họ có thể đã sử dụng MongoDB để nhập dữ liệu trong một ứng dụng hiện có, nhưng bây giờ họ muốn xem cách họ có thể tích hợp bộ sưu tập số liệu vào hệ thống của mình và tin rằng có thể có giải pháp tốt hơn MongoDB cho tác vụ này

Trong vài tuần qua, chúng tôi đã bắt đầu so sánh hiệu suất và các tính năng của InfluxDB và MongoDB đối với các khối lượng công việc theo chuỗi thời gian phổ biến, cụ thể là xem xét tốc độ nhập dữ liệu, nén dữ liệu trên đĩa và hiệu suất truy vấn. InfluxDB vượt trội so với MongoDB trong cả ba bài kiểm tra với 1. Thông lượng ghi lớn hơn 9 lần, trong khi sử dụng 7. Dung lượng ổ đĩa ít hơn gấp 3 lần và mang lại hiệu suất cao hơn gấp 5 lần khi nói đến tốc độ truy vấn

Để đọc chi tiết đầy đủ về điểm chuẩn và phương pháp, hãy tải xuống “Đánh giá điểm chuẩn InfluxDB so với. Bài báo kỹ thuật về MongoDB cho Quản lý số liệu và dữ liệu chuỗi thời gian” hoặc xem hội thảo trên web được ghi lại

Mục tiêu quan trọng nhất của chúng tôi là tạo ra một so sánh nhất quán, cập nhật, phản ánh những phát triển mới nhất trong cả InfluxDB và MongoDB với phạm vi phủ sóng sau này của các cơ sở dữ liệu và giải pháp chuỗi thời gian khác. Chúng tôi sẽ định kỳ chạy lại các điểm chuẩn này và cập nhật tài liệu kỹ thuật chi tiết với những phát hiện của chúng tôi. Tất cả mã cho các điểm chuẩn này đều có sẵn trên Github. Vui lòng mở các vấn đề hoặc lấy yêu cầu trên kho lưu trữ đó hoặc nếu bạn có bất kỳ câu hỏi, nhận xét hoặc đề xuất nào

Bây giờ, chúng ta hãy xem kết quả…

Phiên bản thử nghiệm

InfluxDB v1. 8. 10

InfluxDB là một cơ sở dữ liệu chuỗi thời gian mã nguồn mở được viết bằng Go. Cốt lõi của nó là một công cụ lưu trữ được xây dựng tùy chỉnh có tên là Cây hợp nhất theo cấu trúc thời gian [TSM], được tối ưu hóa cho dữ liệu chuỗi thời gian. Được kiểm soát bởi một ngôn ngữ truy vấn giống như SQL tùy chỉnh có tên là InfluxQL, InfluxDB cung cấp hỗ trợ vượt trội cho các hàm toán học và thống kê trong các khoảng thời gian và hoàn hảo cho việc theo dõi tùy chỉnh và thu thập số liệu, phân tích thời gian thực, cùng với dữ liệu cảm biến và IoT

MongoDB v5. 0. 6

MongoDB là một cơ sở dữ liệu hướng tài liệu mã nguồn mở, thường được gọi là cơ sở dữ liệu NoSQL, được viết bằng C và C++. Mặc dù nó thường không được coi là cơ sở dữ liệu chuỗi thời gian thực, nhưng những người tạo ra nó thường thúc đẩy việc sử dụng nó cho khối lượng công việc chuỗi thời gian. Nó cung cấp các nguyên mẫu mô hình hóa ở dạng dấu thời gian và nhóm, cung cấp cho người dùng khả năng lưu trữ và truy vấn dữ liệu chuỗi thời gian

Về điểm chuẩn

Khi xây dựng bộ điểm chuẩn đại diện, chúng tôi đã xác định các đặc điểm được đánh giá phổ biến nhất để làm việc với dữ liệu chuỗi thời gian. Chúng tôi đã xem xét hiệu suất trên ba vectơ

  • Hiệu suất nhập dữ liệu - được đo bằng giá trị mỗi giây
  • Yêu cầu lưu trữ trên đĩa - được đo bằng byte
  • Thời gian phản hồi truy vấn trung bình - được đo bằng mili giây

Về tập dữ liệu

Đối với điểm chuẩn này, chúng tôi tập trung vào tập dữ liệu mô hình hóa trường hợp sử dụng chỉ số và giám sát DevOps phổ biến, trong đó một nhóm máy chủ báo cáo định kỳ các chỉ số ứng dụng và hệ thống theo khoảng thời gian đều đặn. Chúng tôi đã lấy mẫu 100 giá trị trên 9 hệ thống con [CPU, bộ nhớ, đĩa, đĩa I/O, kernel, mạng, Redis, PostgreSQL và Nginx] cứ sau 10 giây. Để so sánh chính, chúng tôi đã xem xét tập dữ liệu đại diện cho 100 máy chủ trong khoảng thời gian 6 giờ, thể hiện mức độ triển khai tương đối khiêm tốn

  • Số lượng máy chủ. 100
  • Giá trị được đo trên mỗi máy chủ. 100
  • Khoảng thời gian đo. 10s
  • [Các] thời lượng tập dữ liệu. 24h
  • Tổng giá trị trong tập dữ liệu. 86 triệu mỗi ngày

Đây chỉ là một tập hợp con của toàn bộ bộ điểm chuẩn, nhưng nó là một ví dụ đại diện. Nếu bạn quan tâm đến chi tiết bổ sung, bạn có thể đọc thêm về phương pháp thử nghiệm trên GitHub

Viết hiệu suất

InfluxDB vượt trội hơn MongoDB 1. 9x khi nhập dữ liệu

Nén trên đĩa

InfluxDB vượt trội so với MongoDB bằng cách cung cấp 7. Nén tốt hơn gấp 3 lần

Hiệu suất truy vấn

InfluxDB vượt trội hơn MongoDB gấp 5 lần khi nói đến tốc độ truy vấn

Tóm lược

Các bài kiểm tra điểm chuẩn và dữ liệu kết quả đã chứng minh rằng InfluxDB vượt trội so với MongoDB trong việc nhập dữ liệu và lưu trữ trên đĩa với một biên độ đáng kể. Đặc biệt

  • InfluxDB vượt trội hơn MongoDB 1. 9x khi nhập dữ liệu
  • InfluxDB vượt trội so với MongoDB bằng cách cung cấp 7. Nén tốt hơn gấp 3 lần
  • InfluxDB vượt trội so với MongoDB bằng cách cung cấp hiệu suất truy vấn tốt hơn gấp 5 lần

Cũng cần lưu ý rằng việc định cấu hình MongoDB để hoạt động với dữ liệu chuỗi thời gian không hề đơn giản. Nó yêu cầu các quyết định trước về cách cấu trúc các bộ sưu tập và loại dữ liệu của bạn, điều này có thể rất tốn thời gian và sẽ có tác động lâu dài đến cách bạn có thể tương tác với dữ liệu của mình và loại truy vấn nào bạn có thể chạy. Mặt khác, InfluxDB sẵn sàng sử dụng cho khối lượng công việc theo chuỗi thời gian mà không cần cấu hình bổ sung

Tóm lại, chúng tôi rất khuyến khích các nhà phát triển và kiến ​​trúc sư tự chạy các tiêu chuẩn này để xác minh độc lập kết quả trên phần cứng và bộ dữ liệu mà họ lựa chọn. Tuy nhiên, đối với những người đang tìm kiếm một điểm khởi đầu hợp lệ mà ở đó công nghệ sẽ cung cấp hiệu suất truy vấn, nén và nhập dữ liệu chuỗi thời gian tốt hơn “vượt trội”, InfluxDB rõ ràng là người chiến thắng trên nhiều phương diện, đặc biệt là khi các bộ dữ liệu trở nên

Làm cách nào để tối ưu hóa hiệu suất MongoDB?

Tối ưu hóa hiệu suất truy vấn .
Tạo chỉ mục để hỗ trợ truy vấn
Giới hạn số lượng kết quả truy vấn để giảm nhu cầu mạng
Sử dụng phép chiếu để chỉ trả lại dữ liệu cần thiết
Sử dụng $hint để chọn một chỉ mục cụ thể
Sử dụng toán tử gia tăng để thực hiện thao tác phía máy chủ

MongoDB có tính sẵn sàng cao không?

Bộ bản sao MongoDB đảm bảo sao chép được thực thi bằng cách cung cấp dự phòng dữ liệu và tính sẵn sàng cao trên nhiều máy chủ MongoDB.

Cô lập khối lượng công việc là gì?

Cách ly khối lượng công việc có nghĩa là tài nguyên được dành riêng cho một nhóm khối lượng công việc . Cách ly khối lượng công việc đạt được bằng cách định cấu hình tham số MIN_PERCENTAGE_RESOURCE lớn hơn 0 trong cú pháp CREATE WORKLOAD GROUP.

MongoDB có thể xử lý dữ liệu lớn không?

MongoDB có tốt cho dữ liệu lớn không? . MongoDB rất tốt cho các tập dữ liệu lớn. MongoDB Atlas có thể xử lý các truy vấn được liên kết trên bộ lưu trữ đối tượng [e. g. , Amazon S3] và lưu trữ tài liệu. Yes, it most certainly is. MongoDB is great for large datasets. MongoDB Atlas can handle federated queries across object storage [e.g., Amazon S3] and document storage.

Chủ Đề