sql >> Databasteknik >  >> NoSQL >> MongoDB

Fortsätt och spola - Doktrin och MongoDB

Jag skapade ett riktmärke för profilspolningar av ett enkelt tvåfältsdokument i olika batchstorlekar:https://gist. github.com/2725976

$ php src/benchmark.php 10 100 1000 10000 20000 50000 100000
Flushing     10 items took  0.014058 seconds and   2097152 bytes
Flushing    100 items took  0.024325 seconds and    524288 bytes
Flushing   1000 items took  0.196992 seconds and   5505024 bytes
Flushing  10000 items took  2.563700 seconds and  57933824 bytes
Flushing  20000 items took  6.291873 seconds and  89915392 bytes
Flushing  50000 items took 19.118011 seconds and 240386048 bytes
Flushing 100000 items took 58.582809 seconds and 469499904 bytes

Som du kan förvänta dig, att faktiskt infoga data i Mongo står bara för en liten bråkdel av dessa mätningar. Doktrin kommer att ägna en hel del tid åt att gå igenom steg som att skicka händelser och beräkning av ändringsuppsättningar, varav de senare kommer att påverkas avsevärt av komplexiteten i din domänmodell.

Du kan spåra alla doktrinspecifika operationer i flush() genom att ta en titt på UnitOfWork::commit() .




  1. Hämta ett värde från MongoDB efter dess nyckelnamn

  2. Läs specifika fältvärden från MongodbC#

  3. Hur kan jag utföra kapslade kopplingar (sammanfoga 3 eller fler samlingar) i en MongoDB-aggregationspipeline?

  4. Nod MongoDb { err:'anslutning till [127.0.0.1:27017] tog timeout' }