sql >> Database teknologi >  >> RDS >> Mysql

MySql vs NoSql - Kommentarer og meddelelser om sociale netværks datastruktur og implementering

Spørgsmålet er ekstremt bredt, men jeg vil forsøge at besvare det efter bedste evne.

Jeg bryder mig generelt ikke om at besvare spørgsmål som dette, fordi det ser ud til, at du har lavet meget lidt research, før du kom til SO. Det ser også ud til, at du er forvirret med applikations- og databaseroller. Jeg vil i det mindste starte dig med noget materiale/ideer og lade dig bestemme på egen hånd.

Der er ingen "silver bullet" til et backend-design, især når det kommer til databaser. SQL-databaser er generelt meget gode til de fleste databasefunktioner, og det med rette; det er en teknologi, der er meget moden og har bestået tidens prøve af en grund. De fleste NOSQL-løsninger er specialiserede til bestemte formål. For eksempel:Hvis du loggede en masse information, vil du måske se på Cassandra. Hvis du havde at gøre med en masse relationelle data, ville du gerne bruge noget som Neo4j (eller PostgreSQL/MySQL til RMDBS). Hvis du havde at gøre med mange realtidsdata, kunne du måske se på Redis.

Det er dumt at spørge NOSQL vs SQL af et par grunde:

NOSQL er generelt et dårligt udtryk. Og det betyder ikke "Ingen SQL". Det betyder "Ikke kun SQL". Desværre har udtrykket indkapslet selv den mest polære modsætning af databaser.

Kun du kender din applikations fulde funktionalitet. Selvom jeg vidste det grundlæggende i, hvad du ønskede at opnå, kunne jeg stadig ikke give dig et endeligt svar. Det kan ingen andre heller. Det er meget subjektivt, og igen, kun DU ved PRÆCIS, hvad din ansøgning skal gøre.

Den største grund:Det er 2014. Hvorfor én database? For ti år siden ville "DatabaseX vs DatabaseY" have været et praktisk spørgsmål. Nu kan du konfigurere mange applikationsrammer til pålideligt at bruge flere databaser i løbet af få minutter. Historiens moral:Brug hver database til dens specielle formål. Mere om polyglot persistence her .

Hvad Facebook angår:en fem minutters Google-søgning afslører, hvilke backend-teknologier de har brugt tidligere, og det er ikke så svært at undersøge nogle af deres nuværende backend-løsninger. Du er ikke Facebook. Du behøver ikke forberede dig på en milliard brugere lige nu. Start med enkle, gennemprøvede teknologier. Dette vil lade dig skalere din ansøgning naturligt. Når disse teknologier begynder at blive en flaskehals, så vær bekymret for skalerbarhed.

Jeg håber, at dette hjalp dig med at starte din kodningsrejse, men brug venligst Stack Overflow som en sidste udvej, hvis du har problemer med kode. Ikke en umiddelbar go-to.




  1. Rul tilbage til traditionel replikering fra GTID

  2. IMAP &PHP - Henter alle e-mails fra sendte og indbakkemapper

  3. Enum i Hibernate, fortsætter som en enum

  4. Sådan holder du forbindelsen i live i java