sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB på EC2-server eller AWS SimpleDB?

SimpleDB har nogle skalerbarhedsbegrænsninger. Du kan kun skalere ved sharding, og den har højere latency end mongodb eller cassandra, den har en gennemløbsgrænse, og den er prissat højere end andre muligheder. Skalerbarhed er manuel (du skal skære).

Hvis du har brug for bredere forespørgselsmuligheder, og du har en høj læsehastighed, og du ikke har så meget data, er mongodb bedre. Men for holdbarhed skal du bruge mindst 2 mongodb-serverforekomster som master/slave. Ellers kan du miste det sidste minut af dine data. Skalerbarhed er manuel. Det er meget hurtigere end simpledb. Autosharding er implementeret i version 1.6.

Cassandra har svage forespørgselsmuligheder, men er lige så holdbar som postgresql. Det er lige så hurtigt som mongo og hurtigere på større datastørrelse. Skriveoperationer er hurtigere end læseoperationer på Cassandra. Den kan skaleres automatisk ved at affyre ec2-instanser, men du skal ændre konfigurationsfilerne lidt (hvis jeg husker rigtigt). Hvis du har terabyte data, er Cassandra det bedste bud. Ingen grund til at dele dine data, de blev designet distribueret fra den 1. dag. Du kan have et hvilket som helst antal kopier af alle dine data, og hvis nogle servere er døde vil det automatisk returnere resultaterne fra live og distribuere den døde servers data til andre. Den er meget fejltolerant. Du kan inkludere et hvilket som helst antal forekomster, det er meget nemmere at skalere end andre muligheder. Det har stærke .net- og java-klientmuligheder. De har forbindelsespooling, load balancing, markering af døde servere,...

En anden mulighed er hadoop til big data, men det er ikke så realtid som andre, du kan bruge hadoop til datawarehousing. Hverken cassandra eller mongo har transaktioner, så hvis du har brug for transaktioner, passer postgresql bedre. En anden mulighed er Amazon RDS, men dens ydeevne er dårlig, og prisen er høj. Hvis du vil bruge databaser eller simpledb, har du muligvis også brug for datacache (f.eks. memcached).

For webapps, hvis dine data er små, anbefaler jeg mongo, hvis det er stort, er cassandra bedre. Du behøver ikke et caching-lag med mongo eller cassandra, de er allerede hurtige. Jeg anbefaler ikke simpledb, den låser dig også til Amazon som du sagde.

Hvis du bruger c#, java eller scala, kan du skrive en grænseflade og implementere den til mongo, mysql, cassandra eller noget andet til dataadgangslag. Det er enklere i dynamiske sprog (f.eks. rub, python, php). Du kan skrive en udbyder for to af dem, hvis du vil, og kan ændre lageret måske i løbet af kun en konfigurationsændring, de er alle mulige. Udvikling med mongo,cassandra og simpledb er nemmere end en database, og de er fri for skemaer, det afhænger også af klientbiblioteket/forbindelsen du bruger. Den enkleste er mongo. Der er kun et indeks pr. tabel i cassandra, så du skal selv administrere andre indekser, men med 0.7-udgivelsen af ​​cassandra vil sekundære indekser være mulige, som jeg ved. Du kan også starte med en af ​​dem og erstatte den i fremtiden, hvis du bliver nødt til det.



  1. Hvordan indlejrer jeg et løfte i en anden løftefunktion i node.js?

  2. Gemmer til MongoDB i en sløjfe

  3. Hvordan kan jeg bruge not like på laravel mongodb?

  4. Søg i hele samlingen (mongodb) ved hjælp af nodejs