Performance MongoDB

Re:Performance MongoDB
« Odpověď #15 kdy: 28. 06. 2022, 19:22:07 »
Pouzivame funkci updateOne protoze je potrebe zaznamy bud ulozit a pokud uz podle klicovych parametru existuje tak aktualizovat. Dokument je sklada z 6 hodnot kdy 3 jsou string, 2 number a 1 boolean.

Tohle se dá za 2 minuty vygooglit na stackoverflow nebo v manuálu na stránkách výrobce.

Jestli na hulváta zapisuješ po jednom s updateOne, tak se spíš divím, že jsi se vubec dostal na 16k zápisů.
Pro inserty/updaty nekolik stringů a čísel, celkem o velikosti 128 bytů těch operací udělám třeba 70k/s když použiju bulk_write, bez toho to snad bylo 30x pomalejší. Když ty stringy zvětším tak že je to pak ten jeden insert 2,5kb velký, tak to klesne na 45k/s.

CPU se při tom vytíží jeden thread na 25% a na HDD ani SSD nezáleží, možná to jde jen do RAM a při dlouhodobějším zápisu by to zpomalilo víc.

Python:
Kód: [Vybrat]
update = list()
for d1, d2, d3 in nejakyData:
    update.append(pymongo.UpdateOne({"data1":d1, "data2":d2, "data3":d3})
tvojeKolekce.bulk_write(update)