Position actuelle: Accueil> Derniers articles> Combinant MySqli :: Debug et MySQL General Journal pour la double analyse

Combinant MySqli :: Debug et MySQL General Journal pour la double analyse

M66 2025-05-31

Le débogage de la base de données et la surveillance des performances sont des liens très importants dans le processus de développement. Grâce à des méthodes de débogage efficaces et à des outils de surveillance, nous pouvons rapidement découvrir des problèmes et les optimiser. Dans PHP, la méthode MySQLI :: Debug peut nous aider à déboguer les opérations de la base de données MySQL, et le journal général MySQL fournit des journaux de requête détaillés. Dans cet article, nous explorerons comment combiner ces deux pour une double analyse afin d'optimiser le débogage de la base de données et la surveillance des performances.

1. Introduction à MySQLI :: Debug et Mysql General Log

1.1 Mysqli :: débogage

MySQLI :: Debug est une méthode dans l'extension MySQLI qui diffuse des informations de débogage pour l'exécution de SQL. Il aide les développeurs à visualiser les opérations sous-jacentes, les requêtes, les messages d'erreur, etc. des connexions de base de données. Avec cette approche, le débogage SQL peut être effectué très facilement, positionnant ainsi plus rapidement des problèmes potentiels.

Par exemple:

 <?php
$mysqli = new mysqli("localhost", "username", "password", "database");

// Activer la sortie de débogage
$mysqli->debug = true;

// Faire des opérations de base de données
$mysqli->query("SELECT * FROM users");
?>

1.2 Journal général MySQL

Le journal général de MySQL est un mécanisme de journalisation fourni par MySQL, qui enregistre toutes les requêtes SQL et autres activités de base de données. En permettant au journal général, les développeurs peuvent afficher des informations détaillées sur chaque demande de base de données, aidant à comprendre les performances globales du système pendant le débogage et l'analyse.

Activer le journal général peut être effectué via des fichiers de configuration MySQL ou des commandes SQL, par exemple:

 SET GLOBAL general_log = 'ON';
SET GLOBAL log_output = 'TABLE';

Grâce à ces paramètres, MySQL enregistrera toutes les requêtes dans la table mysql.general_log , que les développeurs peuvent analyser les activités de la base de données en interrogeant ce tableau.

2. Combinaison du journal général MySqli :: Debug et MySQL pour la double analyse

2.1 Capture les informations d'exécution SQL à l'aide de mysqli :: débogage

En utilisant MySQLI :: Debug en PHP, nous pouvons capturer les informations d'exécution des requêtes SQL en temps réel. Il nous aide à comprendre les détails de l'interaction entre PHP et la base de données. Par exemple, l'utilisation de MySQLI :: Debug peut capturer des requêtes SQL, des liaisons de paramètres et des messages d'erreur à chaque fois qu'il est exécuté.

Exemple de code:

 <?php
$mysqli = new mysqli("localhost", "username", "password", "database");

// Activer la sortie de débogage
$mysqli->debug = true;

// Exécuter une requête
$mysqli->query("SELECT * FROM users WHERE username = 'john_doe'");

// Sortie via des informations de débogage
echo "SQL Debugging Output: " . $mysqli->debug;
?>

Ce code sortira des informations de débogage détaillées pour l'exécution de la base de données, y compris le processus d'exécution, les détails de la connexion et les informations d'erreur de chaque requête, aidant les développeurs à localiser les problèmes.

2.2 Utilisez le journal général MySQL pour les enregistrements de requête détaillés

En activant le journal général de MySQL, nous pouvons enregistrer chaque requête SQL exécutée dans la base de données. Pour le réglage des performances, ces informations sur le journal sont très précieuses et peuvent nous aider à identifier les requêtes qui peuvent être la source des goulots d'étranglement de performance.

Par exemple:

 SELECT * FROM mysql.general_log WHERE command_type = 'Query';

Cette instruction SQL extraire tous les enregistrements de requête SQL de la table MySQL.General_Log . En analysant ces journaux, nous pouvons trouver des requêtes qui ont été exécutées depuis longtemps, ce qui nous aide à optimiser les performances de la base de données.

2.3 Double analyse: combinaison mysqli :: débogage et journal général

En combinant MySQLI :: Debug et MySQL General Log, les développeurs peuvent analyser les opérations de base de données sous deux perspectives différentes. MySQLI :: Debug fournit des informations de débogage au niveau PHP, tandis que le journal général MySQL fournit des journaux détaillés au niveau de la base de données. La combinaison des deux peut réaliser une analyse de base de données plus complète.

Les étapes sont les suivantes:

  1. Activez MySQLI :: Debug in PHP pour capturer les détails de l'exécution de SQL.

  2. Activez le journal général de MySQL pour enregistrer toutes les requêtes dans la base de données.

  3. Comparez les sorties des deux pour voir s'il y a des incohérences ou des problèmes potentiels pendant l'exécution de la requête.

  4. En fonction de la sortie d'informations de débogage de MySQLI :: Debug , ajustez l'instruction SQL Query pour vous assurer qu'elle s'exécute efficacement.

  5. Utilisez les données de temps d'exécution dans le journal général pour trouver des requêtes lentes et les optimiser.

Grâce à cette double analyse, les développeurs peuvent avoir une compréhension plus complète du processus d'exécution des requêtes SQL et améliorer l'efficacité de débogage et l'optimisation des performances de la base de données.

3. Exemple: combiné avec le code d'analyse

Supposons que nous soyons dans un projet et que nous devons analyser une requête avec moins d'efficacité d'exécution. Tout d'abord, nous capturons les informations d'exécution SQL via MySQLI :: DEBUG , puis visualisons le temps d'exécution via le journal général MySQL, et enfin optimiser.

L'exemple de code est le suivant:

 <?php
$mysqli = new mysqli("localhost", "username", "password", "database");

// Activer la sortie de débogage
$mysqli->debug = true;

// Exécuter une requête
$mysqli->query("SELECT * FROM users WHERE username = 'john_doe'");

// Informations de débogage de sortie
echo "SQL Debugging Output: " . $mysqli->debug;

// analyser MySQL general log Temps d&#39;exécution dans
// Supposons que nous sommes general_log La requête s&#39;est avérée être exécutée dans 2 Deuxième
?>

Dans le journal général, nous constatons que la requête a un temps d'exécution de 2 secondes, ce qui peut être la raison de la réponse du système lente. Ensuite, nous pouvons optimiser la requête et utiliser l'indexation et la réduction de la sélection de champ inutile pour réduire le temps d'exécution de la requête.

4. Résumé

La combinaison du journal général MySQLI :: Debug et MySQL peut fournir des garanties doubles pour le débogage de la base de données et la surveillance des performances. En utilisant MySQLI :: Debug in PHP pour capturer les détails de l'exécution de SQL et enregistrer le journal des requêtes de la base de données via le journal général MySQL, les développeurs peuvent analyser de manière approfondie les problèmes de performances de la base de données, découvrir rapidement les goulots d'étranglement potentiels et améliorer les performances du système en optimisant les instructions de requête et la conception de la base de données.