Mogę potwierdzić, że nic się nie zmieniło w 3.6Slow $sample problem nadal występuje.
~40m kolekcja małych dokumentów, bez indeksów, Windows Server 2012 x64.
storage:wiredTiger.engineConfig.journalCompressor:zlibwiredTiger.collectionConfig.blockCompressor:zlib
2018-04-02T02:27:27.743-0700I POLECENIE [conn4] Polecenie maps.places
polecenie:agregat { agregat:"miejsca", potok:[ { $sample:{ size:10 } } ] ,
Kursor 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 } } }
protokół:op_query 72609ms
Zainstalowałem Mongo, aby wypróbować ten "nowoczesny i wydajny DBMS" w poważnym projekcie. Jak bardzo jestem sfrustrowany.
Wyjaśnij plan jest tutaj:
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}}]}