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

MongoDB vs CouchDB (optimalizace rychlosti)

Jen pro iteraci soketů vs HTTP a fsync vs konverzace v paměti.

Ve výchozím nastavení MongoDB nevrací odpověď na volání pro zápis. Jednoduše zapíšete svá data do soketu a předpokládáte, že jsou v DB a jsou k dispozici. Při současném zatížení by se to mohlo zálohovat a neexistuje dobrý způsob, jak zjistit, jak rychle Mongo skutečně je, pokud nepoužijete volitelné volání, které vrátí odpověď na zápis, jakmile budou data dostupná.

Neříkám, že výkon vkládání Mongo není rychlejší než Couch, vkládání do paměti je mnohem rychlejší než fsynchronizace na disk, větší rozdíl je zde v rozdílu cílů, které MongoDB a CouchDB mají ohledně konzistence a trvanlivosti. Ale všechny "výkonové" nástroje, které jsem viděl při testování Monga, používají výchozí API pro zápis, takže ve skutečnosti netestujete výkon vložky, ale zkoušíte, jak rychle dokážete vyprázdnit zásuvku.

Viděl jsem spoustu benchmarků, které ukazují, že Mongo je rychlejší než Redis a memcached, protože si neuvědomují, že Redis a Memcached vrací odpověď, když jsou data v paměti a Mongo ne. Mongo rozhodně není rychlejší než Redis :)



  1. PooledRedisClientManager neuvolňuje připojení

  2. MongoDB/Meteor:Přidejte jedinečné ID ke každému prvku pole

  3. Jak používat objekt Javascript uvnitř agregačního potrubí mongodb?

  4. Přeměna scénáře setí Mongoose na příslib