sql >> Databáze >  >> NoSQL >> MongoDB

Persist and flush - Doctrine a MongoDB

Vytvořil jsem benchmark pro profilování vyprázdnění jednoduchého dvoupolního dokumentu v různých velikostech dávek: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 8099,58 sekund 2code>8098,58 sekund

Jak byste mohli očekávat, skutečné vkládání dat do Mongo představuje pouze malý zlomek těchto měření. Doctrine stráví dost času procházením kroků, jako je odesílání událostí a výpočet changesetů, z nichž druhý bude významně ovlivněn složitostí vašeho doménového modelu.

Všechny operace specifické pro Doctrine můžete sledovat v flush() tím, že se podíváte na UnitOfWork::commit() .




  1. Mongodb repica set config v souboru vlastností

  2. Aktualizace pole pomocí push a slice

  3. Jak připojit nodeJS docker kontejner k mongoDB

  4. Časový limit balancéru MongoDB se zpožděnou replikou