


Anemometer zeigt grafisch den Aufbau und die Verwendung von MySQL-Slow-Log-Tools mit Beispielanalysen an
Einführung: Anemometer ist ein Tool zur grafischen Darstellung langsamer MySQL-Protokolle. In Kombination mit pt-query-digest kann Ihnen Anemometer ganz einfach dabei helfen, langsame Abfrageprotokolle zu analysieren, sodass Sie leicht herausfinden können, welches SQL optimiert werden muss
Dies ist das Box Anemometer, das MySQL Slow Abfragemonitor. Dieses Tool wird verwendet, um langsame Abfrageprotokolle zu analysieren, die von MySQL-Instanzen gesammelt wurden, um problematische Abfragen zu identifizieren
Verwandte Lernempfehlungen:PHP-Programmierung vom Einstieg bis zur Kompetenz
Umgebungsübersicht
Nehmen Sie die neueste Version von Percona-Toolkit 3.0.10 zum Zeitpunkt des Schreibens dieses Artikels als Beispiel
Die entsprechende Version der MySQL-Datenbank ist 5.7.21, Binärinstallation
http und PHP sind beide integrierte Versionen des Systems CentOS Linux Release 7.4.1708 (Core)
Die erforderlichen Schritte zur Installation sind wie folgt:
1. Installation des Percona-Toolkit-Tools
2. Aufbau und Installation der PHP-Webumgebung
3 🎜>4. Protokoll langsamer Abfragen importieren
5. Greifen Sie auf die Benutzeroberfläche zu und zeigen Sie langsame Abfragen an
0. Gesamtarchitektur
1. Installation des Percona-Toolkit-Tools
Installationszweck: pt-query-digest ist percona – ein Tool im Toolkit, dessen Funktion darin besteht, langsame Abfrageprotokolle zu analysieren, Statistiken zu langsamen MySQL-Abfrageprotokollen zu sammeln und diese auf benutzerfreundliche Weise anzuzeigen
Download-Adresse: https://www.percona.com/downloads/percona-toolkit/1 Paket,
wget https://www.percona.com/downloads/percona-toolkit/3.0.10/binary/redhat/7/x86_64/percona-toolkit-3.0.10-1.el7.x86_64.rpm
yum install perl-DBI perl-DBD-MySQL perl-IO-Socket-SSL perl-Digest-MD5 -y
4 🎜>rpm -ivh percona-toolkit-3.0.10-1.el7.x86_64.rpm
pt-query-digest --version pt-query-digest 3.0.10
1. Laden Sie das Paket herunter,
yum install perl-DBI perl-DBD-MySQL perl-IO -Socket-SSL perl-Digest-MD5 -y<p></p>
wget https://www.percona.com/downloads/percona-toolkit/3.0.10/binary/tarball/percona-toolkit-3.0.10_x86_64.tar.gz
3. Entpacken Sie das Paket,
yum install perl-DBI perl-DBD-MySQL perl-IO-Socket-SSL perl-Digest-MD5 -y<br>
./percona-toolkit-3.0.10/bin/pt-query-digest --version<p>pt-query-digest 3.0. 10</p>
tar xf percona-toolkit-3.0.10_x86_64.tar.gz
2. php Aufbau einer Webumgebung ./percona-toolkit-3.0.10/bin/pt-query-digest --version<br>pt-query-digest 3.0.10
Installationszweck: Anemometer muss auf der LAMP-Umgebung basieren . Installation der LAMP-Umgebung: 1. Installieren Sie Apache,
2. Installieren Sie php php-mysql php-common php-bcmath php-dba php-cli php-gd php-mbstring php-mcrypt php-devel php-xml php-pdo -y3 , ändern Sie die Zeitzone
in yum install httpd httpd-devel -y
Start der LAMP-Umgebung: yum install php php-mysql php-common php-bcmath php-dba php-cli php-gd php-mbstring php-mcrypt php-devel php-xml php-pdo -y<br>
1. Starten, vim /etc/php.ini
date.timezone = PRC
3. Starten,
systemctl start httpd
3. Anemometer installieren und konfigurieren systemctl stop httpd
systemctl restart httpd
1. Herunterladen und installieren: systemctl status httpd
Installationszweck: Installieren Sie die Anemometer-Anwendung
Paket herunterladen : Gehen Sie zum entsprechenden Pfad:
2. Anemometer muss für die Ziel-Slow-Abfragedatenbank Berechtigungen entsprechend dem Host erteilt werden1. Zweck, der zum Analysieren des Ziel-Slow verwendet wird Datenbank abfragen Ausführungsplan
2. Autorisierung,
($ip ist die IP-Adresse, die dem Anemometer-Host entspricht) https://github.com/box/Anemometer
3 >git clone https://github.com/box/Anemometer.git
mv Anemometer /var/www/html/anemometer
4. Ändern Sie die Konfigurationsdatei so, dass sie auf die Datenquellendatei vim conf/datasource_localhost.inc.php verweist. Sie können natürlich auch direkt vim conf /config.inc.php verwenden grant select on *.* to 'anemometer'@'$ip' identified by '123456';flush privileges
5、初始化数据源的数据库表的配置,mysql -uroot -p123456 -h127.0.0.1 -P5700
4. 导入慢查询日志
1、慢查询主机推送格式
For pt-query-digest version < 2.2 $ pt-query-digest --user=anemometer --password=superSecurePass \ --review h=db.example.com,D=slow_query_log,t=global_query_review \ --review-history h=db.example.com,D=slow_query_log,t=global_query_review_history \ --no-report --limit=0% \ --filter=" \$event->{Bytes} = length(\$event->{arg}) and \$event->{hostname}=\"$HOSTNAME\"" \ /var/lib/mysql/db.example.com-slow.log For pt-query-digest version >= 2.2 $ pt-query-digest --user=anemometer --password=superSecurePass \ --review h=db.example.com,D=slow_query_log,t=global_query_review \ --history h=db.example.com,D=slow_query_log,t=global_query_review_history \ --no-report --limit=0% \ --filter=" \$event->{Bytes} = length(\$event->{arg}) and \$event->{hostname}=\"$HOSTNAME\"" \ /var/lib/mysql/db.example.com-slow.log
2、慢查询主机推动脚本示例
#config anemometer server, the purpose is to push slow query to the remote anemometer server and store it. anemometer_host="127.0.0.1" anemometer_user="root" anemometer_password="123456" anemometer_port=5700 anemometer_db="slow_query_log" #config mysql server, the purpose is to get the path of the slow query log. mysql_client="/usr/local/mysql-5.7.21/bin/mysql" mysql_user="root" mysql_password="123456" mysql_socket="/tmp/mysql_5700.sock" mysql_port=5700 #config slowqury dir to cd, and then delete the expired slow query file. slowquery_dir="/data/mysql_$mysql_port/" #get the path of the slow query log. slowquery_file=`$mysql_client -u$mysql_user -p$mysql_password -S $mysql_socket -e "show variables like 'slow_query_log_file'"|grep log|awk '{print $2}'` pt_query_digest="/data/percona-toolkit-3.0.10/bin/pt-query-digest" #collect mysql slowquery log into lepus database. $pt_query_digest --user=$anemometer_user --password=$anemometer_password --port=$anemometer_port --review h=$anemometer_host,D=$anemometer_db,t=global_query_review --history h=$anemometer_host,D=$anemometer_db,t=global_query_review_history --no-report --limit=0% --filter=" \$event->{Bytes} = length(\$event->{arg}) and \$event->{hostname}=\"$HOSTNAME:$mysql_port\"" $slowquery_file #generate a new slow query log, the below is generate a new slow file per hour. tmp_log=`$mysql_client -u$mysql_user -p$mysql_password -S $mysql_socket -e "select concat('$slowquery_dir','slowquery_',date_format(now(),'%Y%m%d%H'),'.log');"|grep log|sed -n -e '2p'` #use new slow file to config mysql slowquery $mysql_client -u$mysql_user -p$mysql_password -S $mysql_socket -e "set global slow_query_log = 0;set global slow_query_log_file = '$tmp_log';" $mysql_client -u$mysql_user -p$mysql_password -S $mysql_socket -e "set global slow_query_log = 1; " #delete slow query file before 2 days cd $slowquery_dir /usr/bin/find ./ -name 'slowquery_*.log' -mtime +2|xargs rm -rf ; ####END####
5. 访问界面,查看慢查询
http://$ip/anemometer/ ($ip为Anemometer主机对应ip地址)
6、其他相关和问题解决
1、对于anemometer的主机上,需要进行慢查询主机hostname和ip的映射(修改/etc/hosts进行配置),目的在于慢查询explain执行计划的目标主机解析
#collect mysql slowquery log into lepus database步骤中,$HOSTNAME:$mysql_port
数据库存取的格式,hostname_max类似这种,cnwangdawei:5700
2、中文乱码的问题,在#collect mysql slowquery log into lepus database步骤中添加 --charset=utf8
3、慢查询主机数据库是5.7版本的数据库,可能出现界面ts_cnt不显示,替换percona toolkit为新版本,2.x.x -----> 3.x.x
4、表结构和状态字符集显示乱码,添加mysqli的字符集设定,vim /var/www/html/anemometer/lib/QueryExplain.php
新增(194行后增加),$this->mysqli->query("set names utf8");
Das obige ist der detaillierte Inhalt vonAnemometer zeigt grafisch den Aufbau und die Verwendung von MySQL-Slow-Log-Tools mit Beispielanalysen an. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

MySQLDIFFERSFROMOTHERQLDIALCTSINSYNTAXFORLIMIT, Auto-Increment, StringComparison, Unterabfragen und Performanceanalyse.1) Mysqluse Slimit, whileqlServerusSestopandorakelSrownum.2) Mysql'Sauto_incrementContrastswithpostgresql'Sserialandoracle'ssequencandt

Die MySQL -Partitionierung verbessert die Leistung und vereinfacht die Wartung. 1) Teilen Sie große Tabellen nach bestimmten Kriterien (z. B. Datumsbereichen) in kleine Stücke, 2) Daten in unabhängige Dateien physikalisch unterteilen, 3) MySQL kann sich auf verwandte Partitionen konzentrieren, wenn Sie abfragen, 4) Abfragoptimierer kann nicht verwandte Partitionen überspringen, 5) Die Auswahl der richtigen Partitionsstrategie und die regelmäßige Wartung des Schlüssels ist der Schlüssel.

Wie kann man Berechtigungen in MySQL erteilen und widerrufen? 1. Verwenden Sie die Stipendienerklärung, um Berechtigungen wie GrantAllPrivileGesAndatabase_Name.to'username'@'host '; 2. Verwenden Sie die Revoke -Erklärung, um Berechtigungen wie RevokeAllPrivileGeDatabase_Name.From'username'@'host 'zu widerrufen, um eine rechtzeitige Kommunikation von Genehmigungsänderungen zu gewährleisten.

InnoDB ist für Anwendungen geeignet, die Transaktionsunterstützung und hohe Parallelität erfordern, während MyISAM für Anwendungen geeignet ist, für die mehr Lesevorgänge und weniger Schreibvorgänge erforderlich sind. 1.Innodb unterstützt Transaktions- und Bankebene, die für E-Commerce- und Banking-Systeme geeignet sind. 2.MyISAM bietet eine schnelle Lektüre und Indexierung, geeignet für Blogging- und Content -Management -Systeme.

Es gibt vier Haupt -Join -Typen in MySQL: Innerjoin, Leftjoin, Rightjoin und Fulouterjoin. 1.Nerjoin gibt alle Zeilen in den beiden Tischen zurück, die den Verbindungsbedingungen erfüllen. 2.Leftjoin gibt alle Zeilen in der linken Tabelle zurück, auch wenn in der rechten Tabelle keine übereinstimmenden Zeilen vorhanden sind. 3. Rightjoin ist gegen Leftjoin im Widerspruch und gibt alle Zeilen in der rechten Tabelle zurück. 4.Fulllouterjoin gibt alle Zeilen in den beiden Tischen zurück, die die Verbindungsbedingungen erfüllen oder nicht erfüllen.

MysqloffersVariousStorageEngines, EverySuitedfordifferentusecases: 1) InnoDbisidealforApplicationsNeedingaCidComplianceandHighConcurrency, SupportingingTransactions und MisseractersactionSactions.2) MyisamisBestforread-Heavyworks, Fehlen von Abladungen, mangelndtransaktionen

Zu den allgemeinen Sicherheitslücken in MySQL gehören die SQL -Injektion, schwache Passwörter, unsachgemäße Berechtigungskonfiguration und eine nicht updierte Software. 1. SQL -Injektion kann durch Verwendung von Vorverarbeitungsanweisungen verhindert werden. 2. Schwache Passwörter können vermieden werden, indem Sie starke Kennwortstrategien verwenden. 3. Eine unsachgemäße Berechtigungskonfiguration kann durch regelmäßige Überprüfung und Anpassung der Benutzerberechtigungen behoben werden. 4. Die nicht updierte Software kann durch regelmäßiges Überprüfen und Aktualisieren der MySQL -Version gepatcht werden.

Das Identifizieren langsamer Abfragen in MySQL kann erreicht werden, indem langsame Abfrageprotokolle aktiviert und Schwellenwerte festgelegt werden. 1. Aktivieren Sie langsame Abfrageprotokolle und setzen Sie Schwellenwerte. 2. Sehen und analysieren Sie langsame Abfrageprotokolldateien und verwenden Sie Tools wie MySQLDUMPSLOW oder PT-Query-Digest für eingehende Analysen. 3. Die Optimierung langsamer Abfragen kann durch Indexoptimierung, Umschreiben von Abfragen und Vermeidung der Verwendung von Select*erreicht werden.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

Dreamweaver CS6
Visuelle Webentwicklungstools

EditPlus chinesische Crack-Version
Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

Dreamweaver Mac
Visuelle Webentwicklungstools

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!
