sql >> Databasteknik >  >> RDS >> Mysql

AWS MySQL RDS vs AWS DynamoDB

Verkligen DynamoDB och MySQL är äpplen och apelsiner. DynamoDB är ett NoSQL-lagringslager medan MySQL används för relationslagring. Du bör välja vad du ska använda baserat på de faktiska behoven i din applikation. Faktum är att vissa applikationer kan fungera bra genom att använda båda.

Om du till exempel lagrar data som inte lämpar sig väl för ett relationsschema (trädstrukturer, schemalösa JSON-representationer, etc.) som kan slås upp mot en enstaka nyckel eller en nyckel/intervallkombination då DynamoDB ( eller någon annan NoSQL-butik) skulle förmodligen vara din bästa insats.

Om du har ett väldefinierat schema för din data som kan passa bra i en relationsstruktur och du behöver flexibiliteten att fråga data på ett antal olika sätt (att lägga till index vid behov såklart), så kan RDS vara en bättre lösning .

Den största fördelen med att använda DynamoDB som en NoSQL-butik är att du får garanterad läs-/skrivgenomströmning på vilken nivå du än behöver utan att behöva oroa dig för att hantera en klustrad datalagring. Så om din applikation kräver 1000 läsningar/skrivningar per sekund, kan du bara tillhandahålla din DynamoDB-tabell för den nivån av genomströmning och inte riktigt behöva oroa dig för den underliggande infrastrukturen.

RDS har mycket av samma fördel att inte behöva oroa sig för själva infrastrukturen, men om du i slutändan behöver göra ett betydande antal skrivningar till den punkt där den största instansstorleken inte längre kommer att hänga med, är du typ utan alternativ (du kan skala horisontellt för läsningar med läsrepliker).

Uppdaterad notering:DynamoDb stöder nu global sekundär indexering, så du har nu möjlighet att utföra optimerade sökningar på andra datafält än hashen eller kombinationen av hash- och intervallnycklar.



  1. Prestandajustering av hela frågeplanen

  2. Importera en csv till mysql via kommandoraden

  3. ORA-12560:TNS:protokolladapterfel

  4. Vad är det bästa sättet att hantera datum i PHP, MySQL, etc?