Tôi đã tìm thấy cuộc thảo luận này: MongoDB: Terrible MapReduce Performance. Về cơ bản nó nói cố gắng tránh các truy vấn MR của Mongo vì nó đơn luồng và không phải là thời gian thực ở tất cả. 2 năm trôi qua, và tôi tự hỏi điều gì đã được thay đổi kể từ thời điểm đó. Bây giờ chúng ta có MongoDb 2.2. Tôi nghe MRs hiện đa luồng. Vui lòng chia sẻ ý tưởng của bạn về việc sử dụng MR cho các yêu cầu thời gian thực như tìm nạp dữ liệu cho các yêu cầu http thường xuyên của ứng dụng web. Có thể sử dụng các chỉ mục một cách hiệu quả không?Bản đồ-Giảm hiệu suất trong MongoDb 2.2, 2.4 và 2.6
Trả lời
Đây là trạng thái hiện tại của chức năng cho đồ/Giảm trong MongoDB
1) Hầu hết những hạn chế hiệu suất cho Bản đồ/Giảm vẫn còn trong MongoDB phiên bản 2.2. Công cụ Map/Reduce vẫn yêu cầu mọi bản ghi được chuyển đổi từ BSON sang JSON, các tính toán thực tế được thực hiện bằng cách sử dụng công cụ JavaScript được nhúng (chậm) và vẫn có một khóa JavaScript toàn cục. để chạy cùng một lúc.
Đã có một số cải tiến gia tăng đối với Bản đồ/Giảm cho các cụm bị phân đoạn. Đáng chú ý nhất, hoạt động giảm cuối cùng hiện được phân phối trên nhiều phân đoạn, và đầu ra cũng được phân chia song song.
tôi sẽ không khuyên bạn nên Bản đồ/Giảm thời gian thực tập tại MongoDB phiên bản 2.2
2) Bắt đầu với MongoDB 2.2, bây giờ có một tập hợp khung mới. Đây là một triển khai mới của các phép toán tổng hợp, được viết bằng C++ và được tích hợp chặt chẽ vào khung công tác MongoDB.
Hầu hết các công việc Map/Reduce có thể được viết lại để sử dụng Khung tổng hợp. Chúng thường chạy nhanh hơn (cải thiện tốc độ 20x so với Map/Reduce là phổ biến trong phiên bản 2.2), chúng sử dụng đầy đủ công cụ truy vấn hiện có và bạn có thể chạy nhiều lệnh Tổng hợp song song.
Nếu bạn có yêu cầu tổng hợp theo thời gian thực, nơi đầu tiên để bắt đầu là với Khung tổng hợp. Để biết thêm thông tin về khung tập hợp, hãy nhìn vào những liên kết này:
- http://www.10gen.com/presentations/mongonyc-2012/new-aggregation-framework
- http://docs.mongodb.org/manual/reference/aggregation/ cải tiến đáng kể
3) Đã có trong Bản đồ/Giảm trong MongoDB phiên bản 2.4. Công cụ JavaScript SpiderMonkey đã được thay thế bằng công cụ JavaScript V8 và không còn khóa JavaScript toàn cầu nữa, điều này có nghĩa là nhiều chuỗi Bản đồ/Giảm có thể chạy đồng thời.
Các bản đồ/Giảm động cơ vẫn còn chậm hơn đáng kể so với các khuôn khổ hợp, vì hai lý do chính:
Động cơ Javascript được giải thích, trong khi Aggregation Khung chạy biên soạn C++
Công cụ JavaScript vẫn yêu cầu mọi tài liệu đang được kiểm tra được chuyển đổi từ BSON thành JSON; nếu bạn đang lưu đầu ra trong tập hợp, tập hợp kết quả sau đó phải được chuyển đổi từ JSON trở lại thành BSON
Không có thay đổi đáng kể trong Bản đồ/Giảm giữa 2,4 và 2,6.
Tôi vẫn không khuyên bạn nên sử dụng Map/Reduce cho tổng hợp thời gian thực trong MongoDB phiên bản 2.4 hoặc 2.6.
4) Nếu bạn thực sự cần Map/Reduce, bạn cũng có thể xem Bộ điều hợp Hadoop. Có thêm thông tin ở đây:
Phiên bản 2.4 sắp tới có một công cụ javascript (V8) khác cần cải thiện hiệu suất. Để biết chi tiết, hãy xem tại đây: http://docs.mongodb.org/manual/release-notes/2.4/ – Kamarey
- 1. Hiệu suất Mongodb trên Windows
- 2. Hiệu suất của MongoDB trên truy vấn tổng hợp
- 3. hiệu suất bản đồ stl?
- 4. Excel Interop - Hiệu quả và hiệu suất
- 5. hiệu suất str trong python
- 6. Hiệu suất CSV và MySQL
- 7. RenderAction và RenderPartial hiệu suất
- 8. OpenCL và hiệu suất OpenMP
- 9. Kéo và thả trong GWT 2.4
- 10. Hiệu suất trình chạy bản địa Java
- 11. Thẻ mở và đóng và hiệu suất?
- 12. Cải thiện hiệu suất trong Mongodb bằng trình điều khiển java
- 13. Hiệu suất của Bộ đếm hiệu suất
- 14. Hiệu suất CALayer so với hiệu suất UIImageView
- 15. Điều chỉnh hiệu suất Redis
- 16. Log.d và tác động đến hiệu suất
- 17. Hiệu suất cực kỳ kém từ MongoDB trong việc viết ứng dụng chuyên sâu
- 18. Phiên bản Python (2.4, 2.5, 2.6, 3.0) nào bạn chuẩn hóa cho các nỗ lực phát triển sản xuất (và tại sao)?
- 19. Hiệu suất Hive và SQL Server
- 20. clipToBounds và masksToBounds hiệu suất vấn đề
- 21. Tổ chức và hiệu suất mã jQuery
- 22. F # tương tác và hiệu suất profilers
- 23. Hiệu suất RestKit và dữ liệu lõi
- 24. Hiệu suất giải mã JSON JSON
- 25. Con trỏ chia sẻ và hiệu suất
- 26. Bộ đếm hiệu suất và luồng
- 27. Hiệu suất của GestureOverlayView và GestureDetector
- 28. Hiệu suất đa luồng và lược tả
- 29. Symfony2 thời gian tải và hiệu suất
- 30. Timer trong hiệu suất Ruby
Meybe khuôn khổ tổng hợp sẽ được thay đổi một cái gì đó, ngay bây giờ bản đồ giảm được đập chậm – user956584
Bất cứ ý tưởng tại sao vậy? Nó vẫn là đơn luồng? – YMC
http://stackoverflow.com/a/9434093/979474 hoặc http://stackoverflow.com/a/11749738/979474 – user956584