Les étapes de base de l'optimisation lente des requêtes, de la gestion lente des journaux

11. Les étapes de base de l'optimisation lente des requêtes

  • Exécutez d'abord pour voir s'il est vraiment lent, faites attention à la configuration de SQL_NO_CACHE
  • Lorsque la condition de contrôle de table unique, verrouille la table d'enregistrement de retour minimum. La signification de cette phrase est d'appliquer le where de l'instruction de requête à la table avec le plus petit nombre d'enregistrements renvoyés dans la table, de commencer à rechercher et d'interroger chaque champ de la table unique séparément pour voir quel champ a le plus haut degré de discrimination.
  • expliquer pour vérifier si le plan d'exécution est cohérent avec l'attente de 1 (commencer à interroger à partir de la table avec moins d'enregistrements verrouillés)
  • La forme ordre par limite de l'instruction SQL permet de vérifier d'abord la table triée
  • Comprendre les scénarios d'utilisation côté entreprise
  • Lors de l'ajout d'un index, reportez-vous aux principes d'indexation
  • Observer les résultats, ne pas répondre aux attentes, continuer à analyser dès la première étape

12. Gestion lente des journaux

Journal lent

  • Temps d'exécution> 10
  • Mlle index
  • Chemin du fichier journal

Configuration

  • RAM
show variables like '%queries%';
set global [变量名] = []
  • Fichier de configuration
mysqld --defaults-file='E:\wupeiqi\mysql-5.7.16-winx64\mysql-5.7.16-winx64\my-default.ini'
  • contenu du fichier my.cnf
slow_query_log = ON
slow_query_log_file = [日志文件路径]

ps: le service doit être redémarré après la modification du fichier de configuration

Gestion des journaux MySQL

  • Journal des erreurs: enregistrez les erreurs de démarrage, d'arrêt et de fonctionnement du serveur MySQL et d'autres informations
  • Journal binaire: également appelé journal binlog, qui enregistre les opérations autres que SELECT dans la base de données sous la forme d'un fichier binaire
  • Journal des requêtes: enregistrez les informations de la requête
  • Journal de requêtes lent: enregistrez les opérations qui prennent plus de temps que le temps spécifié
  • Journal de relais: la bibliothèque de secours copie le journal binaire de la bibliothèque principale dans son propre journal de relais, rejouant ainsi localement
  • Journal général: quel compte auditer, pendant quelle période et quels événements ont été réalisés
  • Journal des transactions ou redo log: enregistrez les transactions Innodb liées telles que l'heure d'exécution de la transaction, les points de contrôle, etc.

utilisation

1.bin-log

1. 启用
# vim /etc/my.cnf
[mysqld]
log-bin[=dir\[filename]]
# service mysqld restart
2. 暂停
//仅当前会话
SET SQL_LOG_BIN=0;
SET SQL_LOG_BIN=1;
3. 查看
查看全部:
# mysqlbinlog mysql.000002
按时间:
# mysqlbinlog mysql.000002 --start-datetime="2012-12-05 10:02:56"
# mysqlbinlog mysql.000002 --stop-datetime="2012-12-05 11:02:54"
# mysqlbinlog mysql.000002 --start-datetime="2012-12-05 10:02:56" --stop-datetime="2012-12-05 11:02:54" 

按字节数:
# mysqlbinlog mysql.000002 --start-position=260
# mysqlbinlog mysql.000002 --stop-position=260
# mysqlbinlog mysql.000002 --start-position=260 --stop-position=930
4. 截断bin-log(产生新的bin-log文件)
a. 重启mysql服务器
b. # mysql -uroot -p123 -e 'flush logs'
5. 删除bin-log文件
# mysql -uroot -p123 -e 'reset master' 

2. Journal des requêtes

启用通用查询日志
# vim /etc/my.cnf
[mysqld]
log[=dir\[filename]]
# service mysqld restart

3. Journal des requêtes lent

启用慢查询日志
# vim /etc/my.cnf
[mysqld]
log-slow-queries[=dir\[filename]]
long_query_time=n
# service mysqld restart
MySQL 5.6:
slow-query-log=1
slow-query-log-file=slow.log
long_query_time=3
查看慢查询日志
测试:BENCHMARK(count,expr)
SELECT BENCHMARK(50000000,2*3);

Je suppose que tu aimes

Origine blog.csdn.net/songhaixing2/article/details/114102850
conseillé
Classement