MySQL-Betriebs- und Wartungsprotokollverwaltung
Im Allgemeinen verfügt ausgereifte Software über eigene Protokolldateien. Verwenden Sie diese Protokolle, um Probleme schnell zu lokalisieren. In MySQL sind Protokolle in die folgenden Kategorien unterteilt:
Langsames Abfrageprotokoll Wenn die Ausführungszeit von SQL den festgelegten Wert überschreitet, wird dies aufgezeichnet
-
Fehlerprotokoll: Wenn beim Starten, Stoppen oder Ausführen von MySQL ein Fehler auftritt, wird dieser im Fehlerprotokoll aufgezeichnet
Binärprotokoll, dieses Protokoll zeichnet die SQL-Anweisungen auf, die sich ändern Durch ihn können wir MySQL-Daten wiederherstellen.
Abfrageprotokoll wird aufgezeichnet.
Heute werden wir über langsame Abfragen, Fehlerprotokolle, Abfrageprotokolle und binäre Protokolldateien sprechen. Wir werden sie später in einem neuen Artikel ausführlich erläutern.
Fehlerprotokoll
Das Fehlerprotokoll zeichnet Probleme auf, die beim Starten und Stoppen von MySQL auftreten, und zeichnet auch größere Probleme auf, die beim Ausführen von MySQL auftreten . . Sie können Show-Variablen wie „log_err%“ verwenden, um den Speicherort der Fehlerprotokolldatei anzuzeigen.
mysql> show variables like 'log_err%'; +---------------------+-------------------------------+ | Variable_name | Value | +---------------------+-------------------------------+ | log_error | ./iZbp171edtq2kx5iy0xufeZ.err | | log_error_verbosity | 3 | +---------------------+-------------------------------+ 2 rows in set (0.01 sec)
Das Fehlerprotokoll verwendet standardmäßig den Hostnamen als Dateinamen, err als Suffix und wird im Verzeichnis /var unter dem MySQL-Verzeichnis gespeichert. Wenn wir es ändern möchten, können wir das Element log_error in der Konfigurationsdatei ändern. Sie können einen relativen oder einen absoluten Pfad verwenden. Wenn Sie einen relativen Pfad verwenden, ändern Sie nur den Namen der Fehlerprotokolldatei. Wenn Sie einen absoluten Pfad verwenden, können Sie den Speicherort des Fehlerprotokolls ändern.
Das Anzeigen des Fehlerprotokolls ist ebenfalls sehr einfach. Verwenden Sie einfach cat oder vim, um es anzuzeigen.
Allgemeines Abfrageprotokoll
Das allgemeine Abfrageprotokoll zeichnet alle Benutzervorgänge auf, nimmt daher im Allgemeinen viel Platz ein und wird im Allgemeinen täglich verwendet Betrieb und Wartung Es wird nicht aktiviert und das Protokoll ist standardmäßig ebenfalls geschlossen. Wenn Sie es aktivieren möchten, können Sie die Protokolloption zur Konfigurationsdatei hinzufügen.
Slow Query Log
Slow Query ist ein sehr gutes Tool zur Fehlerbehebung bei SQL-Problemen. In vielen Fällen ist es unser SQL, das das verursacht System läuft nicht rund. Der Autor hat diesen Fehler schon einmal gemacht, indem er eine sehr komplexe Abfrageanweisung verwendet hat, und das System hat 502 erhalten, sobald sie veraltet war. Vor einiger Zeit stellte ich fest, dass das alte Projekt des Unternehmens auch entsprechende Probleme hatte. Wenn die Datenmenge ein bestimmtes Niveau erreichte, traten viele langsame Abfragen auf und die CPU des gesamten Systems war voll. Daher müssen wir das Protokoll der langsamen Abfrage regelmäßig überprüfen, um das SQL-Problem zu finden.
Konfigurationselement für langsame Abfragen
slow-query-log={0|off|1|on} Ob Aktivieren Sie die Protokollfunktion für langsame Abfragen
Der durch slow-query-time=10 festgelegte Schwellenwert in Sekunden unterstützt Gleitkommazahlen. Wenn die Ausführungszeit von SQL diesen Wert überschreitet, wird dies im langsamen Abfrageprotokoll aufgezeichnet. Wenn auf 0 gesetzt, werden alle Abfragen aufgezeichnet
slow_query_log_file=/mydata/data/hostname-slow.log Der Speicherort und Dateiname des langsamen Abfrageprotokolls
log_queries_not_using_indexes=OFF Dieses Element gibt an, dass Abfragen, die keine Indizes verwenden, auch im langsamen Abfrageprotokoll aufgezeichnet werden.
Fall
Jetzt schalte ich mein langsames MySQL-Abfrageprotokoll ein und setze die Zeit auf 0, um alles aufzuzeichnen SQL. Schauen wir uns dann an, wie das Slow-Query-Log aussieht.
Tcp port: 3306 Unix socket: /tmp/mysql.sock Time Id Command Argument # Time: 2020-05-31T12:00:01.895700Z # User@Host: blog[blog] @ localhost [] Id: 3 # Query_time: 0.000170 Lock_time: 0.000000 Rows_sent: 0 Rows_examined: 0 use blog; SET timestamp=1590926401; SET NAMES utf8mb4; # Time: 2020-05-31T12:00:01.902684Z # User@Host: blog[blog] @ localhost [] Id: 3 # Query_time: 0.006914 Lock_time: 0.006529 Rows_sent: 0 Rows_examined: 120 SET timestamp=1590926401; SELECT * FROM knowledge WHERE is_delete=0 AND star < 5 AND show_time <= 1590854400 ORDER BY show_time ASC LIMIT 1;
Wir schauen uns hauptsächlich die Zeile „Query_time“ an
Query_time: Abfragezeit
-
Lock_time: Sperrtabellenzeit
Rows_sent: Erhaltene Datenzeilen
Rows_examined: Gescannte Datenzeilen
Das obige ist der detaillierte Inhalt vonMySQL-Betriebs- und Wartungsprotokollverwaltung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

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

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

Stock Market GPT
KI-gestützte Anlageforschung für intelligentere Entscheidungen

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Die Antwort lautet: MySQLs Fallanweisung wird verwendet, um eine bedingte Logik in der Abfrage zu implementieren und unterstützt zwei Formulare: Einfach und Suche. Unterschiedliche Werte können dynamisch in Klauseln wie SELECT, WO und OrderBy zurückgegeben werden. In der Auswahl der Bewertungen nach fraktionalen Segmenten, der Kombination von Aggregatfunktionen zum Zählen der Anzahl der Zustände oder der Priorisierung bestimmter Rollen in der Reihenfolge beispielsweise ist es erforderlich, immer mit dem Ende zu enden.

Erstellen Sie ein Shell -Skript, das die Datenbankkonfiguration und den Befehl mySQldump enthält, und speichern Sie es als mySQL_Backup.sh; 2. Speichern Sie MySQL -Anmeldeinformationen, indem Sie ~/.my.cnf -Datei erstellen, und setzen Sie 600 Berechtigungen, um die Sicherheit zu verbessern, das Skript so, dass die Konfigurationsdateiauthentifizierung verwendet wird. 3.. Verwenden Sie CHMOD X, um das Skript ausführbar zu machen, und testen Sie manuell, ob die Sicherung erfolgreich ist. 4. Fügen Sie zeitgesteuerte Aufgaben durch Crontab-e hinzu, wie z. 5.

Unterabfragen können verwendet werden, um die Filterung oder Berechnung von Klauseln auszuwählen und auf der Grundlage einer anderen Abfrage zu implementieren. Operatoren wie in Anyery werden üblicherweise in wo verwendet; Alias werden als Ableitungsabellen in aus von; Einzelwerte müssen in SELECT zurückgegeben werden. Verwandte Unterabfragen stützen sich auf die äußere Abfrage, um jede Zeile auszuführen. Überprüfen Sie beispielsweise Mitarbeiter, deren Durchschnittsgehalt höher ist als die Abteilung, oder fügen Sie die durchschnittliche Gehaltsliste des Unternehmens hinzu. Unterabfragen verbessern die logische Klarheit, aber die Leistung kann niedriger sein als der Join. Sie müssen daher sicherstellen, dass Sie die erwarteten Ergebnisse zurückgeben.

Einfügen ... ONDUPLICEKEYUPDATE -Implementierung wird aktualisiert, wenn sie vorhanden ist, andernfalls wird sie eingefügt und benötigt einzigartige oder primäre Schlüsselbeschränkungen. 2. Nach dem Löschen von Ersatz intino, was zu Änderungen der automatischen Inkrement-ID führen kann; 3.. Insertigore wird nur einfügt und sich nicht wiederholt und nicht aktualisiert. Es wird empfohlen, die erste Implementierung von Upsert zu verwenden.

ErklärenmysqlrevealSQueryExecutionPlans, zeigt, dassIndexusage, tablereadorder, AndrowfilteringToopTimizeperformance; UseItBeforeSelecttoanalyzesteps, CheckkeyColumnSliketypeandrowrowrows, IdentificiencieSextra und CombinewithIndexingsexingsexingsexingsForfasterqueri

Verwenden Sie das bestimmte Schlüsselwort, um doppelte Werte aus der angegebenen Spalte zu entfernen und eindeutige Werte zurückzugeben. 1. Die grundlegende Syntax ist selectDistinctColumn_namefromtable_name; 2. Fragen Sie den eindeutigen Wert einer einzelnen Spalte ab, z. B. SelectDistinctCityFromcustomere; 3.. Fragen Sie die eindeutige Kombination mehrerer Spalten ab, z. 4. Filter mit der Where -Klausel und erhalten

MySQL kann geografische Entfernungen durch die Haversin -Formel oder die Funktion st_distance_Sphere berechnen. Ersteres ist für alle Versionen geeignet, und letztere liefert seit 5,7 einfachere und genauere Berechnungen der kugelförmigen Entfernung.

Verwenden Sie UTC, um die Zeit zu speichern, die MySQL -Server -Zeitzone auf UTC festlegen, verwenden Sie Zeitstempel, um die automatische Zeitzone -Konvertierung zu realisieren, die Zeitzone gemäß den Benutzern Anforderungen in der Sitzung anzupassen, die lokale Zeit über die Funktion Convert_TZ anzeigen und sicherstellen, dass die Zeitzone -Tabelle geladen wird.
