Parfois, une seule requête SQL peut être la cause de tous les problèmes du serveur. MySQL a une fonctionnalité intégrée pour capturer le journal des requêtes lentes ou identifier les requêtes qui ne sont pas optimales et prennent beaucoup de temps à se terminer, ce qui vous permet de consigner toutes les requêtes lentes qui ont pris un nombre défini de secondes pour s'exécuter par le moteur de base de données MySQL dans un dossier. Le journal des requêtes lentes n'est pas activé ou activé par défaut lors de l'installation de MySQL, c'est donc l'un des journaux les moins utilisés.
Pour activer le journal des requêtes lentes, ajoutez simplement la ligne suivante au fichier de configuration MySQL (my.cnf ou my.ini), puis redémarrez le serveur MySQL :
log-slow-queries
Ou,
log-slow-queries = [path to the log file]
Remplacez [chemin vers le fichier journal] avec le chemin réel vers le fichier journal des requêtes lentes dans lequel vous souhaitez que MySQL écrive le journal, qui est la valeur facultative.
Ou vous pouvez démarrer mysqld avec le –log-slow-queries[=file_name] option pour activer le journal des requêtes lentes. Dans les deux syntaxes, si aucun nom de fichier journal n'est spécifié, le nom par défaut est host_name -slow.log, stocké dans le répertoire des fichiers de données MySQL. Si un nom de fichier est donné, mais pas comme un chemin d'accès absolu, le serveur écrit également le fichier dans le répertoire de données.
Après avoir activé le journal des requêtes lentes, MySQL créera, capturera et consignera dans le fichier journal toutes les instructions SQL qui ont pris plus de long_query_time secondes pour exécuter, qui est défini par défaut sur 10 secondes . Le temps d'acquisition des verrous de table initiaux n'est pas compté comme temps d'exécution. mysqld écrit une instruction dans le journal des requêtes lentes après son exécution et après que tous les verrous ont été libérés, l'ordre du journal peut donc être différent de l'ordre d'exécution.
Vous pouvez ensuite examiner toutes les requêtes SQL lentes dans le fichier journal, puis prendre les mesures nécessaires pour optimiser les instructions SQL. Le journal des requêtes lentes vous indiquera à quelle heure la requête s'est terminée, combien de temps la requête a pris pour s'exécuter, combien de temps il a fallu pour sécuriser ses verrous, combien de lignes ont été renvoyées en conséquence, combien de lignes ont été examinées pour déterminer le résultat, quelle base de données a été utilisée et la requête elle-même. Mais gardez à l'esprit qu'une requête SQL contenue dans le journal peut être déjà optimale, mais exécutée lentement en raison des ressources système utilisées par l'instruction lente réelle qui doit être affinée.