Mysql
 sql >> Base de données >  >> RDS >> Mysql

AWS MySQL RDS contre AWS DynamoDB

Vraiment DynamoDB et MySQL sont des pommes et des oranges. DynamoDB est une couche de stockage NoSQL tandis que MySQL est utilisé pour le stockage relationnel. Vous devez choisir quoi utiliser en fonction des besoins réels de votre application. En fait, certaines applications pourraient être bien servies en utilisant les deux.

Si, par exemple, vous stockez des données qui ne se prêtent pas bien à un schéma relationnel (structures arborescentes, représentations JSON sans schéma, etc.) qui peuvent être recherchées par rapport à une clé unique ou une combinaison clé/plage, alors DynamoDB ( ou un autre magasin NoSQL) serait probablement votre meilleur pari.

Si vous avez un schéma bien défini pour vos données qui peut bien s'intégrer dans une structure relationnelle et que vous avez besoin de flexibilité pour interroger les données de différentes manières (en ajoutant des index si nécessaire bien sûr), alors RDS pourrait être une meilleure solution .

Le principal avantage de l'utilisation de DynamoDB en tant que magasin NoSQL est que vous bénéficiez d'un débit de lecture/écriture garanti quel que soit le niveau dont vous avez besoin sans avoir à vous soucier de la gestion d'un magasin de données en cluster. Ainsi, si votre application nécessite 1 000 lectures/écritures par seconde, vous pouvez simplement provisionner votre table DynamoDB pour ce niveau de débit et ne pas avoir à vous soucier de l'infrastructure sous-jacente.

RDS présente en grande partie le même avantage de ne pas avoir à se soucier de l'infrastructure elle-même, mais si vous finissez par avoir besoin de faire un nombre important d'écritures au point où la plus grande taille d'instance ne suivra plus, vous êtes en quelque sorte laissé sans options (vous pouvez mettre à l'échelle horizontalement les lectures à l'aide d'instances dupliquées en lecture).

Remarque mise à jour :DynamoDb prend désormais en charge l'indexation secondaire globale, vous avez donc désormais la possibilité d'effectuer des recherches optimisées sur des champs de données autres que le hachage ou une combinaison de clés de hachage et de plage.