sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB vs. Cassandra

Många läsningar i varje fråga, färre vanliga skrivningar

Båda databaserna presterar bra vid läsningar där den heta datamängden får plats i minnet. Båda betonar också kopplingslösa datamodeller (och uppmuntrar istället denormalisering), och båda tillhandahåller index på dokument eller rader, även om MongoDB:s index för närvarande är mer flexibla.

Cassandras lagringsmotor ger konstanta skrivningar oavsett hur stor din datamängd växer. Skrivningar är mer problematiska i MongoDB, delvis på grund av den b-tree-baserade lagringsmotorn, men mer på grund av låsningen med flera granulariteter.

För analys tillhandahåller MongoDB en anpassad karta/reducera implementering; Cassandra tillhandahåller inbyggt Hadoop-stöd, inklusive för Hive (ett SQL-datalager byggt på Hadoop map/reduce) och Pig (ett Hadoop-specifikt analysspråk som många tror passar bättre för att kartlägga/minska arbetsbelastningar än SQL). Cassandra stöder även användning av Spark.

Inte orolig för "massiv" skalbarhet

Om du tittar på en enda server är MongoDB förmodligen en bättre passform. För de som är mer bekymrade över skalning kommer Cassandras arkitektur utan en enda punkt-of-failure att vara lättare att ställa in och mer tillförlitlig. (MongoDB:s globala skrivlås tenderar att bli mer smärtsamt också.) Cassandra ger också mycket mer kontroll över hur din replikering fungerar, inklusive stöd för flera datacenter.

Mer bekymrad över enkel installation, underhåll och kod

Båda är triviala att ställa in, med rimliga standardinställningar för en enda server. Cassandra är enklare att konfigurera i en multi-server-konfiguration eftersom det inte finns några speciella rollnoder att oroa sig för.

Om du för närvarande använder JSON-blobs är MongoDB en vansinnigt bra matchning för ditt användningsfall, med tanke på att den använder BSON för att lagra data. Du kommer att kunna ha rikare och mer sökbar data än du skulle ha i din nuvarande databas. Detta skulle vara den viktigaste vinsten för Mongo.



  1. MongoDB bulkWrite()

  2. MongoDB-skal och server matchar inte

  3. Vad är profil? och Web och Worker

  4. Laravel 5.1 Session och Socket.IO + Redis - Skicka meddelanden till inloggade (kända) användare och grupp av användare