Lorsque nous maîtrisons les opérations de base de Mysql, telles que les instructions de création de tables, les instructions SQL simples, etc., nous pouvons également effectuer certaines opérations de configuration sur MySQL lui-même, et même optimiser Mysql. Pour des connaissances MySQL plus avancées, veuillez visiter la chaîne tutoriel MySQL sur le site Web PHP chinois.
1. Fichier de configuration MySQL.
est le fichier my.ini sous Windows :
1), log-bin : représente le fichier journal de la réplication maître-esclave, utilisé pour la réplication maître-esclave.
2), log-error="SO3JFYNN8EW6GMO.err" : indique le journal des erreurs.
3), server-id=1 : Indique que le numéro de série de cette machine est 1.
4), datadir=D:/mysql5.7/Data : répertoire de stockage des informations de la base de données,
2 L'architecture de mysql est divisée en quatre couches de haut en bas. :
1), couche de connexion : traitement de la connexion, authentification des autorisations et solutions de sécurité associées.
2), Couche de service : optimisation SQL complète, analyse, mise en cache et autres fonctions.
3) Couche moteur : responsable du stockage et de l'extraction des données.
4), Couche de stockage : Couche de stockage de données, stocke principalement les données dans le système de fichiers et complète l'interaction avec le moteur.
3. Moteur mysql
1) Vérifiez le moteur utilisé :
afficher les moteurs ou afficher
Comparaison entre MYISAM et INNODB
ne prend pas en charge les paires de valeurs de clé primaire et étrangère ; prend en charge
ne prend pas en charge les transactions ; prend en charge les verrous de table
, ne convient pas aux verrous de ligne à haute concurrence ; concurrence
Mise en cache uniquement l'index ; met en cache l'index et les données, ce qui nécessite plus de mémoire
L'espace table est petit ; l'espace table est grand
L'accent est mis sur les performances , et il convient à de nombreuses requêtes dans plus de cas ; Concentrez-vous sur les sujets.
4. Raisons de la baisse de l'optimisation des performances MySQL
1), instructions de requête mal écrites
2), échec de l'index
Index à valeur unique
Créer un index idx_user_name sur l'utilisateur (nom)
Index composite
Créer un index idx_user_name_email sur l'utilisateur (nom, email)
3), la requête a trop de jointures
4), réglage du serveur et divers paramètres
5, ordre d'exécution mysql
La machine commence à lire à partir de.
1), jointure interne
sélectionnez *from tableA A jointure interne tableB B sur A.key=B.key.
2), jointure externe gauche
sélectionnez *from tableA A gauche jointure tableB B sur A.key= B.key
Lorsque b n'existe pas, utilisez null pour complétez-le.
3), jointure externe droite
sélectionnez *from tableA A right join tableB B on A.key=B.key
Quand a n'existe pas, complétez-le avec null
4), jointure externe gauche, supprimez la partie droite de la table
sélectionnez *from tableA A gauche join tableB B sur A.key=B.key où B.key est null
Unique à a, b est rempli de null à ce moment, donc b est vide à ce moment.
5), jointure externe droite, supprimez la partie gauche de la table
sélectionnez *from tableA A right join tableB B on A.key = B.key où A.key est null
6), jointure complète (vous pouvez ajouter les deux) l'union peut être combinée et dédupliquée
sélectionnez *from tableA A left join tableB B on A.key=B.key union
(sélectionnez *from tableA A right join tableB B )
7), le centre est vide
sélectionnez *from tableA A left join tableB B sur A .key=B.key où B.key est une union nulle
(sélectionnez *dans la tableA A, rejoignez à droite la tableB B sur A.key=B.key où A.key est nulle)
6. Qu'est-ce qu'un index ?
1) Un index est une structure de données qui améliore l'efficacité de la recherche.
Recherchez rapidement les structures de données dans l'ordre.
La base de données maintient des structures de données qui satisfont des algorithmes spécifiques. Cette structure de données pointe vers les données d'une certaine manière
, afin que des super recherches avancées puissent être mises en œuvre sur ces structures de données
Algorithme, cette structure de données est appelée index. Index BTREE (sans désignation spéciale) Les champs fréquemment supprimés ne conviennent pas à la création d'index. 2) Avantages Améliorer l'efficacité de la récupération des données et réduire le coût d'E/S de la base de données Trier les données via des colonnes d'index, réduire le coût de tri des données et réduire la consommation CPU3) InconvénientsL'index est également une table et prend de l'espace disque.Lors de la mise à jour de la table, vous devez conserver l'index, ce qui réduira l'efficacité de la mise à jour.
L'indexation n'est qu'un facteur qui améliore l'efficacité, et il faut du temps et des efforts pour créer un index.
4) L'index à valeur unique ne contient qu'une seule colonne. Une table peut avoir plusieurs index à valeur unique.
5), index unique, la valeur de la colonne d'index doit être unique et peut être vide.
6), index composé, comprenant plusieurs colonnes.
7), opérations liées à l'index
créer un index idx_user_name sur l'utilisateur (nom)
modifier l'utilisateur ajouter un index idx_user_name sur (nom)
afficher l'index de utilisateur
déposez l'index idx_user_name sur l'utilisateur
8), structure d'index
index de hachage
index de texte intégral en texte intégral
Index R -Tree
Indice BTree :
7. Dans quelles circonstances doit-on créer un index :
1), le constructeur principal crée automatiquement un index unique
2). Les champs fréquemment utilisés comme conditions de requête doivent être indexés
3). Pour les champs associés à d'autres tables de la requête, des relations externes doivent être créées pour créer des index. .
4). Les champs fréquemment mis à jour ne conviennent pas à la création d'index
5). Créez des index pour les champs qui ne sont pas utilisés dans la condition Where.
6). Le choix d'un index unique ou combiné. En cas de concurrence élevée, les index composites ont tendance à être créés
7). l'index , améliorera l'efficacité
8), les statistiques ou le regroupement de champs dans les requêtes
8 Dans quels cas il n'est pas nécessaire de créer un index :
1), table Trop peu d'enregistrements
2), tables fréquemment ajoutées ou supprimées
3), champs avec des données en double et même distribution.
9. Analyse des performances :
optimiseur de requêtes MySQL
Ce qui précède est une connaissance avancée de Mysql que j'espère que ce sera le cas. utile à tout le monde.
Articles associés :
Maîtriser la clause Where PHP 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!