Tôi có thể xác nhận rằng không có gì thay đổi trong vấn đề 3.6Slow $ sample vẫn tiếp diễn.
~ 40 triệu bộ sưu tập tài liệu nhỏ, không có chỉ mục, Windows Server 2012 x64.
lưu trữ:wiredTiger.engineConfig.journalCompressor:zlibwiredTiger.collectionConfig.blockCompressor:zlib
2018-04-02T02:27:27.743-0700I COMMAND [conn4] command maps.places
lệnh:tổng hợp {tổng hợp:"địa điểm", đường ống:[{$ sample:{size:10}}] ,
cursor: {}, lsid: { id: UUID("0e846097-eecd-40bb-b47c-d77f1484dd7e") }, $readPreference: { mode: "secondaryPreferred" }, $db: "maps" } planSummary: MULTI_ITERATOR keysExamined:0 docsExamined:0 cursorExhausted:1 numYields:3967 nreturned:10 reslen:550 locks:{ Global: { acquireCount: { r: 7942 } }, Database: { acquireCount: { r: 3971 } }, Collection: { acquireCount: { r: 3971 } } }
giao thức:op_query 72609ms
Tôi đã cài đặt Mongo để thử "DBMS hiện đại và hiệu quả" này trong một dự án nghiêm túc. Tôi vô cùng thất vọng.
Giải thích kế hoạch ở đây:
db.command('aggregate', 'places', pipeline=[{"$sample":{"size":10}}], explain=True)
{'ok': 1.0,
'stages': [{'$cursor': {'query': {},
'queryPlanner': {'indexFilterSet': False,
'namespace': 'maps.places',
'plannerVersion': 1,
'rejectedPlans': [],
'winningPlan': {'stage': 'MULTI_ITERATOR'}}}},
{'$sampleFromRandomCursor': {'size': 10}}]}