Le NoSQL est plus souvent élargi que «Non seulement SQL», est une famille de modèles de gestion de base de données qui s'écarte des principes SGBD relationnel traditionnelles incarnées par bases de données comme MySQL. Voici la différence la plus fondamentale entre NoSQL et MySQLMySQL utilise des tables pour stocker et récupérer des données. NoSQL utilise d'autres moyens comme les paires clé-valeur, le stockage des documents, BigTables (Google) et des graphiques. Les sections suivantes analysent certaines des principales différences entre les deux.

UTILISATION DE SQL COMME LANGAGE DE REQUÊTE

Toutes les structures SGBDR traditionnelles, y compris MySQL, utilisent des versions de SQL comme langage de requête. Ceci s'applique également aux données qui ont un schéma fixe, qui répond de manière uniforme aux commandes SQL comme JOIN et GROUP BY. Dans le scénario de l'Internet actuel, où d'importants volumes de données structurées de façon variable doivent être traités rapidement, de nouvelles méthodes ont été élaborées qui se concentrent principalement sur la récupération efficace. Par exemple, la vidéo traite en continue avec de grands ensembles de données qui ne suivent pas nécessairement un schéma fixe. Les bases de données NoSQL traitent généralement ces données sous forme de paires clé-valeur stockées sur une multitude de serveurs, qui peuvent être récupérés par des méthodes de programmation traditionnelles. Les opérations relationnelles comme JOIN ne s'appliquent pas à ces données.

ACIDE vs CAP

MySQL, comme tous les RDBMS, a été intégré dans l'atomicité, la cohérence, l'isolation et la durabilité comme les caractéristiques (ACID). Les systèmes NoSQL, d'autre part, garantissent au plus deux des trois éléments suivants:

● Cohérence

● Disponibilité

● Tolérance de partitionnement de réseau

De nombreuses implémentations du NoSQL, comme le BigTable de Google, garantissent la cohérence et la disponibilité, mais pas le troisième attribut. D'autres exemples comme l'Amazon Dynamo peut garantir la cohérence éventuelle pour capturer le troisième attribut. Cela signifie que, avec suffisament de temps, toutes les mises à jour sont susceptibles de se propager à travers l'ensemble du système distribué.

 

ARCHITECTURE

Contrairement a MySQL, les systèmes NoSQL utilisent une architecture distribuée qui permet l'utilisation d'un grand nombre de serveurs pour atténuer les limitations de taille et de haute disponibilité ou de redondance. Cela rend la récupération rapide et fiable, ce qui réduit la dépendance sur une défaillance du système. Même si l'un des serveurs tombe en panne, les données peuvent être récupérées à partir de l'un des autres. Cela s'applique particulièrement aux systèmes modernes, où la performance en temps réel est préférable à la cohérence. En outre, l'architecture distribuée permet aux bases de données NoSQL évolutifs, dans lequel le système peut être étendu en ajoutant simplement plus de machines.

LES CARACTÉRISTIQUES VS PERFORMANCE

MySQL a plus de fonctions intensives que la plupart des systèmes NoSQL, et offre plus de souplesse d'exécution. Cependant, la manipulation de grands volumes de données (documents, sites Web à fort trafic, etc.) nécessite des modèles dépouillés qui mettent l'accent sur la performance. À cet égard, NoSQL est un choix plus approprié, car il largue les frais généraux de sécurité transactionnels de MySQL (garanties ACID) pour livrer l'apposition très efficace et des fonctionnalités de récupération. Récemment, MySQL a été réglé pour effectuer des niveaux opérationnels NoSQL, en contournant les couches.

Le choix entre les deux types de SGBD dépend principalement du type et du volume des données manipulées. Pour des données structurées limitées, MySQL est un meilleur choix car il offre de nombreuses fonctionnalités comme l’enregistrement des transactions et des forfaits ETL que les modèles NoSQL ne font pas. Pour les grands volumes où l'extensibilité et la performance sont les principaux enjeux, les systèmes NoSQL comme le Google BigTable, l'Amazon Dynamo et Apache Cassandra sont préférables.