Analyse comparative entre Mongodb et MySQL
Le contenu de cet article concerne l'analyse comparative entre Mongodb et MySQL. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Dans les données stockées dans la base de données, il existe une valeur de clé spéciale appelée clé primaire, qui est utilisée pour identifier de manière unique un enregistrement dans la table. En d’autres termes, une table ne peut pas avoir plusieurs clés primaires et la clé primaire ne peut pas être nulle. Qu'il s'agisse de MongoDB ou de MySQL, a la définition de clé primaire .
Pour MongoDB, la clé primaire est appelée "_id". Lors de la génération de données, si l'utilisateur ne lui attribue pas activement de clé primaire, MongoDB générera automatiquement une valeur attribuée aléatoirement.
Dans MySQL, la désignation de la clé primaire est définie en spécifiant PRIMARY KEY lorsque MySQL insère des données. Lorsque la clé primaire n'est pas spécifiée, un autre outil - l'index, équivaut à remplacer la fonction de la clé primaire. L'index peut être vide ou comporter des doublons. Il existe un autre type d'index qui n'autorise pas les doublons, appelé index unique. Si ni une clé primaire ni un index ne sont spécifiés, MySQL en créera automatiquement une pour les données.
Comparaison de la vitesse de stockage
1. Taux d'insertion moyen de la base de données : MongoDB ne spécifie pas l'insertion de _id> MySQL ne spécifie pas l'insertion de clé primaire> spécifie _id pour l'insertion.
2. MongoDB a une grande différence de vitesse lors de l'insertion avec et sans spécifier _id, mais la différence dans MySQL est beaucoup plus petite.
Analyse :
1 Lors de la spécification de _id ou de la clé primaire, les deux bases de données doivent traiter la valeur d'index lors de l'insertion et déterminer si la même valeur existe dans la base de données. valeur clé, ce qui ralentira le taux d’insertion.
2. Dans MongoDB, spécifier l'insertion d'un index est beaucoup plus lent que ne pas la spécifier. En effet, la valeur _id de chaque élément de données dans MongoDB est unique. Lorsque des données sont insérées sans spécifier _id, son _id est automatiquement calculé et généré par le système. MongoDB utilise les caractéristiques de l'ordinateur, l'heure, l'ID de processus et des nombres aléatoires pour garantir que le _id généré est unique. Lors de l'insertion en spécifiant _id, MongoDB doit vérifier si ce _id est disponible à chaque fois qu'il insère une donnée. Lorsqu'il y a trop d'éléments de données dans la base de données, la surcharge de requête de cette étape ralentira la vitesse d'insertion de l'ensemble. base de données.
3. MongoDB utilisera entièrement la mémoire système comme cache, ce qui est une très excellente fonctionnalité. Notre machine de test dispose de 64 Go de mémoire lors de l'insertion, MongoDB fera de son mieux pour conserver les données sur le disque dur une fois que la mémoire est presque pleine de données. C'est aussi la raison pour laquelle MongoDB est beaucoup plus efficace lors de l'insertion sans spécifier _id. Cependant, lors de l'insertion en spécifiant _id, lorsque la quantité de données est trop importante pour tenir dans la mémoire, MongoDB doit lire les informations du disque dans la mémoire pour vérifier la duplication, ce qui ralentit l'efficacité de l'insertion.
4. MySQL est en effet une base de données très stable. Peu importe que la clé primaire soit spécifiée ou insérée sans spécifier la clé primaire, son efficacité n'est pas très différente.
Analyse de la stabilité de l'insertion
La stabilité de l'insertion fait référence au taux d'insertion lorsqu'une certaine quantité de données est insérée à mesure que la quantité de données augmente.
Dans ce test, nous avons fixé l'échelle de cet indicateur à 100 000, c'est-à-dire que les données affichées correspondent au nombre de données pouvant être insérées par seconde pendant cette période lorsque 100 000 données sont insérées.
Présentez d'abord quatre images :
1 MongoDB spécifie l'insertion de _id :
2. >
Résumé :
1. La vitesse d'insertion globale est toujours similaire aux statistiques de l'épisode précédent : MongoDB ne spécifie pas _id pour l'insertion> MySQL ne spécifie pas la clé primaire pour l'insertion> MySQL spécifie la clé primaire pour l'insertion> 2. Comme le montre la figure, lors de l'insertion de données en spécifiant la clé primaire, lorsque MySQL et MongoDB ont des ordres de grandeur de données différents, les données insérées par seconde fluctuent de temps en temps. le graphique L'affichage devient des problèmes réguliers. Lorsque l'insertion de données n'est pas spécifiée, le taux d'insertion est relativement moyen dans la plupart des cas. Cependant, à mesure que les données dans la base de données augmentent, l'efficacité de l'insertion diminue momentanément au cours d'une certaine période de temps, puis redevient stable. 3. Dans l'ensemble, la fluctuation des taux de MongoDB est plus importante que celle de MySQL et la variance change de manière significative.4. Lorsque MongoDB insère en spécifiant _id, lorsque plus de données sont insérées, l'efficacité de l'insertion diminue considérablement. Dans les trois autres tests d'insertion, le taux d'insertion est fixé à un standard la plupart du temps du début à la fin.
Analyse :
1. Le phénomène de problème est dû au fait que lorsque trop de données sont insérées, MongoDB doit écrire les données de la mémoire sur le disque dur et MySQL. doit être réécrit. Ces opérations sont effectuées automatiquement chaque fois que les données de la base de données atteignent un certain niveau, il y aura donc un problème évident de temps en temps.
2. MongoDB est encore une nouveauté après tout, et sa stabilité n'est pas aussi bonne que MySQL, qui est utilisé depuis de nombreuses années.
3. Lorsque MongoDB insère le _id spécifié, ses performances diminuent considérablement.
4. Lorsque la taille des données lues n'est pas grande, la vitesse de requête de MongoDB est vraiment inégalée, loin derrière MySQL.
5. À mesure que la quantité de données interrogées augmente progressivement, la vitesse de requête de MySQL diminue régulièrement, tandis que la vitesse de requête de MongoDB fluctue quelque peu.
Analyse :
1 Si MySQL n'a pas été optimisé pour les requêtes, sa vitesse de requête ne doit pas être comparée à MongoDB. MongoDB peut utiliser pleinement les ressources mémoire du système.Notre machine de test dispose de 64 Go de mémoire.Plus la mémoire est grande, plus la vitesse de requête de MongoDB est rapide.Après tout, l'efficacité des E/S du disque et de la mémoire n'est pas du même ordre de grandeur. .
2. Les données de requête dans cette expérience sont également générées de manière aléatoire, donc la probabilité que toutes les données à interroger soient stockées dans le cache mémoire de MongoDB est très faible. Lors de l'interrogation, MongoDB doit interagir plusieurs fois avec les données en mémoire et sur le disque afin de les trouver, son taux d'interrogation dépend donc du nombre d'interactions. Il est possible que, même si la quantité de données à interroger soit plus importante, ces données générées aléatoirement soient récupérées du disque par MongoDB un plus petit nombre de fois. Par conséquent, la vitesse moyenne des requêtes est plus rapide. De ce point de vue, les fluctuations de la vitesse des requêtes de MongoDB se situent également dans une fourchette raisonnable.
3. Il n'y a aucun doute sur la stabilité de MySQL.
Conclusion
1 Par rapport à MySQL, la base de données MongoDB est plus adaptée aux modèles de tâches avec des opérations de lecture lourdes. MongoDB peut utiliser pleinement les ressources mémoire de la machine. Si la machine dispose de ressources mémoire abondantes, l'efficacité des requêtes de MongoDB sera beaucoup plus rapide.
2. Lors de l'insertion de données avec "_id", l'efficacité d'insertion de MongoDB n'est en fait pas élevée. Si vous souhaitez exploiter pleinement les performances de MongoDB, il est recommandé d'insérer sans "_id", puis d'indexer les champs pertinents pour la requête.
3. MongoDB convient aux modèles de demande dans lesquels le format de données spécifique de la base de données n'est pas clair ou le format des données de la base de données change fréquemment, et il est très convivial pour les développeurs.
4. MongoDB est officiellement livré avec un système de fichiers distribué, qui peut être facilement déployé sur un cluster de serveurs. Il existe un concept de Shard dans MongoDB, qui est pratique pour le partitionnement de serveur. Avec chaque fragment supplémentaire, les performances d'insertion de MongoDB doubleront presque et la capacité du disque pourra également être facilement étendue.
5. MongoDB prend également en charge le framework informatique map-reduce, qui est également très pratique pour les statistiques de données.
Défauts de MongoDB
1. Faible prise en charge des relations de transaction. Il s'agit également d'un défaut commun à toutes les bases de données NoSQL. Cependant, NoSQL n'est pas conçu pour les relations transactionnelles et est toujours demandé pour des applications spécifiques.
2. La stabilité fait quelque peu défaut, comme le montre le test ci-dessus.
3. D'une part, MongoDB est pratique pour les développeurs, mais d'autre part, il impose des exigences considérables au personnel d'exploitation et de maintenance. Il n'y a pas d'expérience mature en matière d'exploitation et de maintenance de MongoDB dans l'industrie, et le format de stockage des données dans MongoDB est également très aléatoire. Des problèmes comme ceux-ci constituent un test pour le personnel d'exploitation et de maintenance.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

MySQL est un système de gestion de la base de données relationnel open source, principalement utilisé pour stocker et récupérer les données rapidement et de manière fiable. Son principe de travail comprend les demandes des clients, la résolution de requête, l'exécution des requêtes et les résultats de retour. Des exemples d'utilisation comprennent la création de tables, l'insertion et la question des données et les fonctionnalités avancées telles que les opérations de jointure. Les erreurs communes impliquent la syntaxe SQL, les types de données et les autorisations, et les suggestions d'optimisation incluent l'utilisation d'index, les requêtes optimisées et la partition de tables.

MySQL est choisi pour ses performances, sa fiabilité, sa facilité d'utilisation et son soutien communautaire. 1.MySQL fournit des fonctions de stockage et de récupération de données efficaces, prenant en charge plusieurs types de données et opérations de requête avancées. 2. Adoptez l'architecture client-serveur et plusieurs moteurs de stockage pour prendre en charge l'optimisation des transactions et des requêtes. 3. Facile à utiliser, prend en charge une variété de systèmes d'exploitation et de langages de programmation. 4. Avoir un solide soutien communautaire et fournir des ressources et des solutions riches.

La position de MySQL dans les bases de données et la programmation est très importante. Il s'agit d'un système de gestion de base de données relationnel open source qui est largement utilisé dans divers scénarios d'application. 1) MySQL fournit des fonctions efficaces de stockage de données, d'organisation et de récupération, en prenant en charge les systèmes Web, mobiles et de niveau d'entreprise. 2) Il utilise une architecture client-serveur, prend en charge plusieurs moteurs de stockage et optimisation d'index. 3) Les usages de base incluent la création de tables et l'insertion de données, et les usages avancés impliquent des jointures multiples et des requêtes complexes. 4) Des questions fréquemment posées telles que les erreurs de syntaxe SQL et les problèmes de performances peuvent être déboguées via la commande Explication et le journal de requête lente. 5) Les méthodes d'optimisation des performances comprennent l'utilisation rationnelle des indices, la requête optimisée et l'utilisation des caches. Les meilleures pratiques incluent l'utilisation des transactions et des acteurs préparés

Comment résoudre l'erreur MySQL "Accès refusé pour l'utilisateur": 1. Vérifiez l'autorisation de l'utilisateur de se connecter à la base de données; 2. Réinitialisez le mot de passe; 3. Autoriser les connexions distantes; 4. Autorisations de rafraîchissement; 5. Vérifiez la configuration du serveur de base de données (Bind-Address, Skip-Grant-Tables); 6. Vérifiez les règles du pare-feu; 7. Redémarrez le service MySQL. Astuce: apportez des modifications après la sauvegarde de la base de données.

Guide de fonctionnement du champ dans MySQL: Ajouter, modifier et supprimer les champs. Ajouter un champ: alter table table_name Ajouter Column_name data_type [pas null] [Default default_value] [Clé primaire] [Auto_increment] Modifier le champ: alter table table_name modifie Column_name data_type [pas null] [default default_value] [clé primaire]

Les requêtes imbriquées sont un moyen d'inclure une autre requête dans une requête. Ils sont principalement utilisés pour récupérer des données qui remplissent des conditions complexes, associer plusieurs tables et calculer des valeurs de résumé ou des informations statistiques. Les exemples incluent la recherche de salaires supérieurs aux employés, la recherche de commandes pour une catégorie spécifique et le calcul du volume des commandes totales pour chaque produit. Lorsque vous écrivez des requêtes imbriquées, vous devez suivre: écrire des sous-requêtes, écrire leurs résultats sur les requêtes extérieures (référencées avec des alias ou en tant que clauses) et optimiser les performances de la requête (en utilisant des index).

L'indice de tri est un type d'index MongoDB qui permet de tri les documents dans une collection par champs spécifiques. La création d'un indice de tri vous permet de trier rapidement les résultats de la requête sans opérations de tri supplémentaires. Les avantages incluent le tri rapide, les requêtes de remplacement et le tri à la demande. La syntaxe est db.collection.CreateIndex ({champ: & lt; tri Ordre & gt;}), où & lt; tri, Ordre & gt; est 1 (ordre ascendant) ou -1 (ordre décroissant). Vous pouvez également créer des index de tri à plusieurs champs qui trient plusieurs champs.

Apache se connecte à une base de données nécessite les étapes suivantes: Installez le pilote de base de données. Configurez le fichier web.xml pour créer un pool de connexion. Créez une source de données JDBC et spécifiez les paramètres de connexion. Utilisez l'API JDBC pour accéder à la base de données à partir du code Java, y compris l'obtention de connexions, la création d'instructions, les paramètres de liaison, l'exécution de requêtes ou de mises à jour et de traitement des résultats.
