


Explication détaillée des transactions de la base de données MySQL et du moteur de stockage
1. Bases de données relationnelles et bases de données non relationnelles
1. 🎜>
1) Les données apparaissent sous la forme d'un tableau
2) Chaque ligne a différents noms d'enregistrement
3) Le champ de données correspondant au nom de l'enregistrement dans chaque colonne
4) De nombreuses lignes et colonnes forment un formulaire
5) Plusieurs formulaires forment une base de données
2. Avantages de la base de données relationnelle :
1) Requêtes complexes : les instructions SQL peuvent être utilisées pour plus de commodité Effectuez des requêtes de données très complexes entre une table et plusieurs tables.
2) Prise en charge des transactions : permet de répondre aux exigences d'accès aux données avec des performances de sécurité élevées.
3. Avantages des bases de données non relationnelles :
1) Performance : NOSQL est basé sur des paires clé-valeur, que l'on peut imaginer. sous forme de tables La relation correspondante entre la clé primaire et la valeur n'a pas besoin d'être analysée par la couche SQL, les performances sont donc très élevées.
2) Évolutivité : De plus, parce qu'il est basé sur des paires clé-valeur, il n'y a pas de couplage entre les données, il est donc très facile de l'étendre horizontalement.
Question : Quelles sont les différences entre les trois bases de données traditionnelles ?
Réponse : Les trois sont basés sur la connexion entre les données. La base de données hiérarchique a une structure arborescente et la base de données réseau a une structure de pointeur de lien. -structure de table dimensionnelle.
2. Transaction (ACID)
Une transaction est une série de transactions exécutées comme une seule unité logique de Opérations de travail, ces opérations sont soumises au système ensemble dans leur ensemble, et soit toutes sont exécutées, soit aucune d'entre elles n'est exécutée. Une transaction est une unité logique de travail indivisible.
Les transactions doivent avoir les quatre attributs suivants, appelés attributs ACID :
Atomicité (atomicité) : Une transaction est une opération complète. Chaque opération d'une chose est indissociable (atomique) ; soit toutes sont exécutées, soit aucune n'est exécutée
Consistance (cohérence) : Lorsque la transaction est terminée, les données doit être dans un état cohérent ;
Isolement (isolement) : Toutes les transactions simultanées qui modifient les données sont isolées les unes des autres, ce qui indique que les transactions doivent être indépendantes. , elle ne doit en aucun cas dépendre ou affecter d'autres transactions
Durabilité (durabilité) : Une fois la transaction terminée, ses modifications dans la base de données sont permanentes ; , le journal des transactions peut maintenir la persistance des transactions.
Niveau d'isolement de la transaction :
Lire le contenu non engagé (également appelé dirty read read non validé) : signifie que toutes les transactions peuvent voir les résultats d'exécution d'autres transactions non validées. Il peut y avoir des problèmes de lecture sale, de lecture non reproductible et de lecture fantôme.
Lire le contenu validé (lire validé) : une transaction ne peut voir que les modifications apportées par les transactions validées. Les lectures sales peuvent être évitées, et des problèmes peuvent survenir avec les lectures non répétables et les lectures fantômes.
Lecture répétable (lecture répétable) : il s'agit du niveau d'isolation des transactions par défaut de MySQL. Il garantit que lorsque plusieurs instances de la même transaction lisent des données simultanément, elles le font. verra les mêmes lignes de données. Les lectures sales et les lectures non répétables peuvent être évitées, et des lectures fantômes peuvent se produire.
Sérialisable (sérialisable) : il s'agit du niveau d'isolement le plus élevé. Il ajoute un verrou partagé à chaque ligne de données lues pour éviter tout conflit de lecture. les uns les autres, résolvant ainsi le problème de la lecture fantôme. Les lectures sales, les lectures non répétables et les lectures fantômes peuvent être évitées.
Problèmes causés par des transactions simultanées :
1. 🎜> : Deux transactions T1 et T2 ont lu et modifié les mêmes données. Le résultat soumis par T2 écrase le résultat soumis par T1, entraînant la perte de la modification de T1.
2. Lecture sale : La transaction T1 a modifié certaines données et les a réécrites sur le disque. Après que la transaction T2 ait lu les mêmes données, T1 en raison de certaines données. La raison est révoquée. À ce moment, les données modifiées de T1 sont restaurées à leur valeur d'origine. Les données lues par T2 sont incohérentes avec les données de la base de données. Les données lues par T2 sont alors des données « sales », c'est-à-dire incorrectes. données.
3. Lecture non répétable : fait référence à la lecture des mêmes données plusieurs fois au sein d'une transaction. Avant la fin de cette transaction, une autre transaction a également accédé aux mêmes données. Ensuite, entre les deux données lues lors de la première transaction, du fait de la modification de la deuxième transaction, les données lues deux fois par la première transaction peuvent être différentes. Cela signifie que les données lues deux fois par la même requête au sein d'une transaction sont différentes, on parle donc de lecture non répétable.
4. Lecture fantôme : Par exemple : Il y a actuellement 10 employés avec un salaire de 5 000. La transaction A lit les 10 employés avec un salaire de 5 000. A cette époque, la transaction B a inséré un enregistrement avec un salaire de 5 000. À ce stade, la transaction A lit à nouveau les employés avec un salaire de 5 000 et l'enregistrement est 11. A ce moment, une lecture fantôme se produit.
Quelle est la différence entre une lecture non répétable et une lecture fantôme ? L'objectif de la lecture non répétable est la modification, et l'objectif de la lecture fantôme est l'ajout ou la suppression.
MVCC (mécanisme de contrôle de concurrence multi-version) : Le MVCC d'InnoDB est transmis après chaque ligne d'enregistrements. est obtenu en sauvegardant deux colonnes cachées. L'heure de création de la ligne et l'heure de suppression de la ligne sont respectivement enregistrées (ce qui est stocké ici n'est pas la valeur temporelle réelle, mais le numéro de version du système). Chaque fois qu'une nouvelle transaction est démarrée, le numéro de version du système est automatiquement incrémenté. Le numéro de version du système au début de la transaction sera utilisé comme ID de transaction pour comparer avec le numéro de version de chaque ligne d'enregistrements interrogés. Après avoir utilisé MVCC, les lectures fantômes ne se produiront pas sous le niveau d'isolement de lecture répétable.
3. Moteur de stockage
Le moteur de stockage est l'organisation logicielle sous-jacente de la base de données. Le système de gestion de base de données (SGBD) utilise les données. moteur pour créer, interroger, mettre à jour et supprimer des données.
1. InnoDB (méthode d'index clusterisé)
La structure de stockage sous-jacente d'innodb est un arbre B+, et chaque nœud de l'arbre correspond sur une page de innodb , la taille de la page est fixe, généralement définie sur 16 Ko. Les nœuds non-feuilles n'ont que des valeurs clés et les nœuds feuilles contiennent des données complètes.
Scénarios d'utilisation : 1) Tables fréquemment mises à jour qui gèrent plusieurs demandes de mise à jour simultanées
2) Prise en charge des tables sécurisées pour les transactions (ACID), prend en charge les verrous de ligne et les clés étrangères
3) Peut être restauré via les journaux bin-log, etc.
innodb si aucune clé primaire n'est défini, une clé primaire de 6 octets sera automatiquement générée (non visible par l'utilisateur).
2. MyISAM (méthode d'index non clusterisé)
MyISAM était le moteur de stockage par défaut de MySQL avant 5.1, qui mettait l'accent sur les performances, mais il ne prend pas en charge les transactions, ni les verrous de ligne et les clés étrangères. Il prend en charge les verrous de table lors de l'insertion ou de la mise à jour de données, la table entière doit être verrouillée et l'efficacité sera moindre. Seul l'index est mis en cache, pas les données réelles. MyISAM lit les données très rapidement et n'occupe pas beaucoup de ressources de mémoire et de stockage.
MyISAM ne permet l'existence d'aucune clé primaire et est une structure d'index statique.
Question : Quelle est la différence entre MyISAM et InnoDB dans MySQL ?
Réponse : Dans la base de données MySQL, les deux moteurs les plus couramment utilisés sont innodb et myisam. InnoDB est actuellement le moteur de stockage par défaut pour MySQL.
1) Transactions : MyISAM met l'accent sur les performances et la vitesse des requêtes est plus rapide que le type InnoDB, mais il ne prend pas en charge les transactions. InnoDB fournit un support pour les transactions.
2) Clés étrangères : MyISAM ne prend pas en charge les clés étrangères, mais InnoDB prend en charge les clés étrangères.
3) Verrous : MyISAM ne prend en charge que les verrous au niveau de la table. InnoDB prend en charge les verrous au niveau de la ligne et les verrous au niveau de la table. La valeur par défaut est que les verrous au niveau de la ligne améliorent considérablement les performances. des performances simultanées multi-utilisateurs. innodb est plus adapté aux situations où il existe de nombreuses opérations d'insertion et de mise à jour, tandis que myisam convient aux situations où les requêtes sont fréquentes. De plus, le verrouillage des lignes de la table innodb n'est pas absolu. Si MySQL ne peut pas déterminer la plage à analyser lors de l'exécution d'une instruction SQL, innodb verrouillera également la table entière, par exemple : update table set num=1 which name like ". %aaa%".
4) Index de texte intégral : MyISAM prend en charge l'index de texte intégral, Innodb ne prend pas en charge l'index de texte intégral. innodb fournit un support d'index en texte intégral à partir de MySQL 5.6.
5) Clé primaire de table : Myisam permet aux tables sans clés primaires d'exister ; innodb : Si aucune clé primaire n'est définie, une clé primaire de 6 octets sera automatiquement générée (non visible par l'utilisateur).
6) Le nombre spécifique de lignes dans le tableau : myisam : sélectionnez count(*) dans le tableau, myisam lit simplement le nombre de lignes enregistrées. Parce que myisam a un compteur intégré, il lit directement à partir du compteur lors du comptage (*).
innodb : n'enregistre pas le nombre spécifique de lignes dans la table. C'est-à-dire que lors de l'exécution de select count(*) from table, innodb analysera la table entière pour calculer le nombre de lignes.
Apprentissage recommandé : Tutoriel MySQL
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

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

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)

Sujets chauds











MySQL et PHPMyAdmin sont de puissants outils de gestion de la base de données. 1) MySQL est utilisé pour créer des bases de données et des tables et pour exécuter des requêtes DML et SQL. 2) PHPMYADMIN fournit une interface intuitive pour la gestion des bases de données, la gestion de la structure de la table, les opérations de données et la gestion de l'autorisation des utilisateurs.

Par rapport à d'autres langages de programmation, MySQL est principalement utilisé pour stocker et gérer les données, tandis que d'autres langages tels que Python, Java et C sont utilisés pour le traitement logique et le développement d'applications. MySQL est connu pour ses performances élevées, son évolutivité et son support multiplateforme, adapté aux besoins de gestion des données, tandis que d'autres langues présentent des avantages dans leurs domaines respectifs tels que l'analyse des données, les applications d'entreprise et la programmation système.

Oracle n'est pas seulement une entreprise de base de données, mais aussi un leader des systèmes de cloud computing et ERP. 1. Oracle fournit des solutions complètes de la base de données aux services cloud et aux systèmes ERP. 2. OracleCloud défie AWS et Azure, fournissant des services IaaS, PaaS et SaaS. 3. Les systèmes ERP d'Oracle tels que E-BusinessSuite et FusionApplications aident les entreprises à optimiser les opérations.

Dans MySQL, la fonction des clés étrangères est d'établir la relation entre les tables et d'assurer la cohérence et l'intégrité des données. Les clés étrangères maintiennent l'efficacité des données grâce à des contrôles d'intégrité de référence et aux opérations en cascade. Faites attention à l'optimisation des performances et évitez les erreurs courantes lorsque vous les utilisez.

La principale différence entre MySQL et MARIADB est les performances, les fonctionnalités et la licence: 1. MySQL est développé par Oracle, et MariADB est sa fourche. 2. MariaDB peut mieux fonctionner dans des environnements à haute charge. 3.MariaDB fournit plus de moteurs et de fonctions de stockage. 4.MySQL adopte une double licence et MariaDB est entièrement open source. L'infrastructure existante, les exigences de performance, les exigences fonctionnelles et les coûts de licence doivent être pris en compte lors du choix.

SQL est un langage standard pour gérer les bases de données relationnelles, tandis que MySQL est un système de gestion de bases de données qui utilise SQL. SQL définit les moyens d'interagir avec une base de données, y compris les opérations CRUD, tandis que MySQL implémente la norme SQL et fournit des fonctionnalités supplémentaires telles que les procédures stockées et les déclencheurs.

Redis est un système de stockage de structure de données de mémoire, principalement utilisé comme base de données, cache et courtier de messages. Ses caractéristiques principales incluent un modèle unique, un multiplexage d'E / S, un mécanisme de persistance, des fonctions de réplication et de clustering. Redis est couramment utilisé dans les applications pratiques pour la mise en cache, le stockage de session et les files d'attente de messages. Il peut améliorer considérablement ses performances en sélectionnant la bonne structure de données, en utilisant des pipelines et des transactions, et en surveillant et en réglage.

Gérer en toute sécurité les fonctions et les expressions régulières dans JSON dans le développement frontal, JavaScript est souvent nécessaire ...
