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

Er dokumentorienterede databaser beregnet til at erstatte relationelle databaser?

Er dokumentorienterede databaser blevet udviklet til at være den næste generation af databaser og grundlæggende erstatte relationelle databaser fuldstændigt?

Nej. Dokumentorienterede databaser (som MongoDB) er meget gode til den type opgaver, som vi typisk ser på moderne websteder (hurtige opslag af individuelle emner eller små sæt emner).

Men de laver nogle store afvejninger med relationelle systemer. Uden ting som ACID-overholdelse vil de ikke være i stand til at erstatte visse RDBMS. Og hvis du ser på systemer som MongoDB, er manglen på ACID-overholdelse en stor grund til, at det er så hurtigt.

Er det muligt, at projekter ville være bedre stillet ved at bruge både en dokumentorienteret database og en relationsdatabase side om side til forskellige data, som er bedre egnet til det ene eller det andet?

Ja. Faktisk kører jeg et meget stort produktionswebsted, der bruger begge dele. Systemet blev startet i MySQL, men vi har migreret en del af det over til MongoDB, b/c har vi brug for en Key-Value-butik, og MySQL er bare ikke særlig god til at finde én vare i 150 mio. poster.

Hvis dokumentorienterede databaser ikke er beregnet til at erstatte relationsdatabaser, er der så nogen der har et eksempel på en databasestruktur, som absolut ville være bedre stillet i en relationsdatabase (eller omvendt)?

Dokumentorienterede databaser er gode til at gemme data, der let er indeholdt i "nøgle-værdi" og simple, lineære "forælder-barn"-relationer. Simple eksempler her er ting som Blogs og Wikier.

Dog relationelle databaser har stadig et stærkt ben på ting som rapportering, som har tendens til at være "sæt-baseret".

Helt ærligt kan jeg se en verden, hvor de fleste data "håndteres" af en dokumentorienteret database, men hvor rapporteringen foregår i en relationsdatabase, der opdateres af Map-reduce jobs.



  1. Hvordan får man Redis til at starte på Heroku?

  2. bruger kort til at cache for omkring 5000 poster i Javascript-applikation VS Redis

  3. Formatering af ISODate fra Mongodb

  4. Hvornår skal man bruge et nøgle-/værdilager såsom Redis i stedet for/ved siden af ​​en SQL-database?