


Introduction détaillée à la théorie MySQL et aux connaissances de base
Cet article vous donnera une introduction détaillée à la théorie de MySQL et aux connaissances de base. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.
Architecture mysql
1. Couche de connexion réseau
Connecteurs clients : support intégré fourni pour MySQL serveur. Actuellement, presque toutes les technologies de programmation côté serveur traditionnelles sont prises en charge, telles que Java, C, Python, .NET, etc., qui établissent des connexions avec MySQL via leurs technologies API respectives
2. Service couche (MySQL Server)
La couche de service est le cœur de MySQL Server et comprend principalement six parties : outils de gestion et de contrôle du système, pool de connexions, interface SQL, analyseur, optimiseur de requêtes et cache.
Pool de connexions : responsable du stockage et de la gestion de la connexion entre le client et la base de données. Un thread est responsable de la gestion d'une connexion.
Outils de gestion et de contrôle du système (Management Services & Utilities) : tels que la sauvegarde et la restauration, la gestion de la sécurité, la gestion des clusters, etc.
Interface SQL : utilisée pour accepter diverses données envoyées par le client Commande SQL et renvoie les résultats que l'utilisateur doit interroger. Tels que DML, DDL, procédures stockées, vues, déclencheurs, etc.
Parseur : Responsable de l'analyse du SQL demandé pour générer un "arbre d'analyse". Vérifiez ensuite si l'arbre d'analyse est légal selon certaines règles MySQL.
Optimiseur de requête (Optimiseur) : lorsque "l'arbre d'analyse" réussit la vérification de la syntaxe de l'analyseur, il sera remis à l'optimiseur pour le convertir en plan d'exécution, puis interagir avec le moteur de stockage.
sélectionnez l'uid, le nom de l'utilisateur où le sexe = 1 ;
Sélectionnez-》Projection-》Stratégie de jointure
1) Sélectionnez d'abord les sélections en fonction de l'instruction Where, pas d'une requête Extrayez toutes les données puis filtrez
2) La requête de sélection effectue une projection d'attribut basée sur l'uid et le nom, pas sur tous les champs
3) Connectez la sélection et la projection précédentes pour enfin générer le résultat de la requête
Cache(Cache&Buffer) : Le mécanisme de mise en cache est composé d'une série de petits caches. Par exemple, le cache de table, le cache d'enregistrement, le cache d'autorisations, le cache de moteur, etc. Si le cache de requêtes a un résultat de requête réussi, l'instruction de requête peut récupérer directement les données du cache de requêtes.
3. Moteurs de stockage enfichables
Le moteur de stockage est responsable du stockage et de l'extraction des données dans MySQL et interagit avec les fichiers système sous-jacents. Le moteur de stockage MySQL est un plug-in. Le moteur d'exécution des requêtes sur le serveur communique avec le moteur de stockage via une interface qui masque les différences entre les différents moteurs de stockage. Il existe désormais de nombreux moteurs de stockage, chacun avec ses propres caractéristiques. Les plus courants sont MyISAM et InnoDB.
4. Système de fichiers
Cette couche est responsable du stockage des données de la base de données et des journaux sur le système de fichiers et de l'interaction avec le moteur de stockage, est la couche de stockage physique. de fichiers. Comprend principalement les fichiers journaux, les fichiers de données, les fichiers de configuration, les fichiers pid, les fichiers socket, etc.
Fichier journal
Journal des erreurs (Journal des erreurs)
Activé par défaut, afficher des variables telles que '%log_error%'
Journal des requêtes générales (Journal des requêtes générales)
Enregistre les instructions de requête générales, affiche des variables telles que '%general%';
Journal binaire (journal binaire)
Enregistre les modifications effectuées sur la base de données MySQL opération, et enregistre l'heure d'occurrence et l'heure d'exécution de l'instruction ; cependant, il n'enregistre pas select, show, etc. SQL qui ne modifie pas la base de données. Principalement utilisé pour la récupération de bases de données et la réplication maître-esclave.
afficher les variables comme '%log_bin%' ; //S'il faut activer
afficher les variables comme '%binlog%' ; //Vue des paramètres
afficher les journaux binaires ;/ / Afficher le fichier journal Journal des requêtes lentes
Journal des requêtes lentes
Enregistre toutes les requêtes SQL dont le temps d'exécution a expiré. La valeur par défaut est de 10 secondes.
afficher les variables comme '%slow_query%' ; //Activer ou non
afficher les variables comme '%long_query_time%' ; //Durée
Fichier de configuration
Utilisé pour stocker tous les fichiers d'informations de configuration MySQL, tels que my.cnf, my.ini, etc.
Fichier de données
fichier db.opt : enregistre le jeu de caractères par défaut et les règles de vérification utilisées par cette bibliothèque.
fichier frm : stocke les informations de métadonnées (méta) liées à la table, y compris les informations de définition de la structure de la table, etc. Chaque table aura un fichier frm.
Fichier MYD : Il est dédié au moteur de stockage MyISAM et stocke les données de la table MyISAM. Chaque table aura un fichier .MYD.
Fichier MYI : dédié au moteur de stockage MyISAM, qui stocke les informations liées à l'index de la table MyISAM. Chaque table MyISAM correspond à un fichier .MYI.
fichier ibd et fichier IBDATA : stockez les fichiers de données InnoDB (y compris les index). Le moteur de stockage InnoDB dispose de deux modes d'espace table : espace table exclusif et espace table partagé. Les espaces table exclusifs utilisent des fichiers .ibd pour stocker les données, et chaque table InnoDB correspond à un fichier .ibd. Les espaces table partagés utilisent des fichiers .ibdata et toutes les tables utilisent un (ou plusieurs fichiers .ibdata auto-configurés).
fichier ibdata1 : fichier de données de l'espace table système, qui stocke les métadonnées de la table, les journaux d'annulation, etc.
Fichiers ib_logfile0, ib_logfile1 : refaire les fichiers journaux.
fichier pid
Le fichier pid est un fichier de processus de l'application mysqld dans l'environnement Unix/Linux. Comme beaucoup d'autres programmes serveur Unix/Linux, il stocke son propre identifiant de processus.
fichier socket
le fichier socket est également disponible dans l'environnement Unix/Linux. Les utilisateurs peuvent directement utiliser Unix Socket pour connecter le client dans un environnement Unix/Linux sans passer par le réseau TCP/IP. .
InnoDB et MyISAM
Transactions et clés étrangères
InnoDB prend en charge les transactions et les clés étrangères, avec sécurité et intégrité, adaptées à un grand nombre d'opérations d'insertion ou de mise à jour
MyISAM ne prend pas en charge les transactions et les clés étrangères. Il fournit un stockage et une récupération à grande vitesse, adaptés à un grand nombre d'opérations de requête sélectionnées
Mécanisme de verrouillage.
InnoDB prend en charge le verrouillage au niveau des lignes et verrouille les enregistrements spécifiés. Le verrouillage est implémenté en fonction de l'index.
MyISAM prend en charge le verrouillage au niveau de la table, verrouillant ainsi la table entière.
Structure de l'index
InnoDB utilise un index clusterisé (index clusterisé). L'index et les enregistrements sont stockés ensemble, mettant en cache à la fois l'index et les enregistrements.
MyISAM utilise un index non clusterisé (index non clusterisé), et l'index et l'enregistrement sont séparés.
Capacité de traitement simultané
MyISAM utilise des verrous de table, ce qui entraînera un faible taux de concurrence des opérations d'écriture, aucun blocage entre les lectures et le blocage des lectures et des écritures.
Le blocage de lecture et d'écriture d'InnoDB peut être lié au niveau d'isolement, et le contrôle de concurrence multi-versions (MVCC) peut être utilisé pour prendre en charge une concurrence élevée
Fichiers de stockage
InnoDB La table correspond à deux fichiers, un fichier de structure de table .frm et un fichier de données .ibd. La table InnoDB prend en charge jusqu'à 64 To ;
La table MyISAM correspond à trois fichiers, un fichier de structure de table .frm, un fichier de données de table MYD et un fichier d'index .MYI. À partir de MySQL 5.0, la limite par défaut est de 256 To.
La différence entre Redo Log et Binlog
Redo Log est une fonction du moteur InnoDB, tandis que Binlog est une fonction intégrée de MySQL Server et est enregistré dans des fichiers binaires.
Redo Log est un journal physique qui enregistre le contenu de l'état de mise à jour de la page de données. Binlog est un journal logique qui enregistre le processus de mise à jour.
Le journal Redo Log est écrit en boucle, la taille de l'espace de journal est fixe, Binlog est écrit en plus, après l'écriture d'un journal, le suivant est écrit et il ne sera pas écrasé.
Redo Log peut être utilisé pour restaurer automatiquement les données de transaction après une panne anormale du serveur. Binlog peut être utilisé pour la réplication maître-esclave et la récupération de données. Binlog ne dispose pas de capacités automatiques de sécurité contre les crashs.
Dans l'application, plusieurs index peuvent être ajoutés à la base de données esclave pour optimiser les requêtes. Ces index dans la base de données principale peuvent être omis pour améliorer l'efficacité d'écriture.
Schéma de séparation en lecture et en écriture
1 Lire immédiatement après l'écriture
Après l'écriture dans la base de données, l'opération de lecture se produira dans un délai certaine période de temps Accédez à la bibliothèque principale, puis les opérations de lecture accèdent à la bibliothèque esclave.
2 Requête secondaire
Lisez d'abord les données de la base de données esclave. Si elles ne sont pas trouvées, accédez à la base de données principale pour lire les données. Cette opération renverra facilement la pression de lecture à la bibliothèque principale. Afin d'éviter les attaques malveillantes, il est recommandé d'encapsuler les opérations de l'API d'accès à la base de données, ce qui est bénéfique pour la sécurité et un faible couplage.
3 Traitements spéciaux selon l'entreprise
Ajuster en fonction des caractéristiques et de l'importance de l'entreprise Par exemple, la lecture et l'écriture des données commerciales importantes et en temps réel peuvent être placées dans la base de données principale. Pour les activités secondaires qui ne nécessitent pas de performances élevées en temps réel, la lecture et l'écriture peuvent être séparées et des requêtes peuvent être effectuées à partir de la base de données lors de l'interrogation.
Recommandations associées : "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

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 convient aux débutants car il est simple à installer, puissant et facile à gérer les données. 1. Installation et configuration simples, adaptées à une variété de systèmes d'exploitation. 2. Prise en charge des opérations de base telles que la création de bases de données et de tables, d'insertion, d'interrogation, de mise à jour et de suppression de données. 3. Fournir des fonctions avancées telles que les opérations de jointure et les sous-questionnaires. 4. Les performances peuvent être améliorées par l'indexation, l'optimisation des requêtes et le partitionnement de la table. 5. Prise en charge des mesures de sauvegarde, de récupération et de sécurité pour garantir la sécurité et la cohérence des données.

MySQL est un système de gestion de base de données relationnel open source. 1) Créez une base de données et des tables: utilisez les commandes CreateDatabase et CreateTable. 2) Opérations de base: insérer, mettre à jour, supprimer et sélectionner. 3) Opérations avancées: jointure, sous-requête et traitement des transactions. 4) Compétences de débogage: vérifiez la syntaxe, le type de données et les autorisations. 5) Suggestions d'optimisation: utilisez des index, évitez de sélectionner * et utilisez les transactions.

Vous pouvez ouvrir PHPMYADMIN via les étapes suivantes: 1. Connectez-vous au panneau de configuration du site Web; 2. Trouvez et cliquez sur l'icône PHPMYADMIN; 3. Entrez les informations d'identification MySQL; 4. Cliquez sur "Connexion".

Créez une base de données à l'aide de NAVICAT Premium: Connectez-vous au serveur de base de données et entrez les paramètres de connexion. Cliquez avec le bouton droit sur le serveur et sélectionnez Créer une base de données. Entrez le nom de la nouvelle base de données et le jeu de caractères spécifié et la collation. Connectez-vous à la nouvelle base de données et créez le tableau dans le navigateur d'objet. Cliquez avec le bouton droit sur le tableau et sélectionnez Insérer des données pour insérer les données.

MySQL et SQL sont des compétences essentielles pour les développeurs. 1.MySQL est un système de gestion de base de données relationnel open source, et SQL est le langage standard utilisé pour gérer et exploiter des bases de données. 2.MySQL prend en charge plusieurs moteurs de stockage via des fonctions de stockage et de récupération de données efficaces, et SQL termine des opérations de données complexes via des instructions simples. 3. Les exemples d'utilisation comprennent les requêtes de base et les requêtes avancées, telles que le filtrage et le tri par condition. 4. Les erreurs courantes incluent les erreurs de syntaxe et les problèmes de performances, qui peuvent être optimisées en vérifiant les instructions SQL et en utilisant des commandes Explication. 5. Les techniques d'optimisation des performances incluent l'utilisation d'index, d'éviter la numérisation complète de la table, d'optimiser les opérations de jointure et d'améliorer la lisibilité du code.

Vous pouvez créer une nouvelle connexion MySQL dans NAVICAT en suivant les étapes: ouvrez l'application et sélectionnez une nouvelle connexion (CTRL N). Sélectionnez "MySQL" comme type de connexion. Entrez l'adresse Hostname / IP, le port, le nom d'utilisateur et le mot de passe. (Facultatif) Configurer les options avancées. Enregistrez la connexion et entrez le nom de la connexion.

La récupération des lignes supprimées directement de la base de données est généralement impossible à moins qu'il n'y ait un mécanisme de sauvegarde ou de retour en arrière. Point clé: Rollback de la transaction: Exécutez Rollback avant que la transaction ne s'engage à récupérer les données. Sauvegarde: la sauvegarde régulière de la base de données peut être utilisée pour restaurer rapidement les données. Instantané de la base de données: vous pouvez créer une copie en lecture seule de la base de données et restaurer les données après la suppression des données accidentellement. Utilisez la déclaration de suppression avec prudence: vérifiez soigneusement les conditions pour éviter la suppression accidentelle de données. Utilisez la clause WHERE: Spécifiez explicitement les données à supprimer. Utilisez l'environnement de test: testez avant d'effectuer une opération de suppression.

Redis utilise une architecture filetée unique pour fournir des performances élevées, une simplicité et une cohérence. Il utilise le multiplexage d'E / S, les boucles d'événements, les E / S non bloquantes et la mémoire partagée pour améliorer la concurrence, mais avec des limites de limitations de concurrence, un point d'échec unique et inadapté aux charges de travail à forte intensité d'écriture.
