Inhaltsverzeichnis
1. ENGINES ANZEIGEN
2.SHOW PROCESSLIST
7.ANALYZE TABLE
Heim Datenbank MySQL-Tutorial Allgemeine SQL-Anweisungen zur Datenbankoptimierung in MySQL (Zusammenfassungsfreigabe)

Allgemeine SQL-Anweisungen zur Datenbankoptimierung in MySQL (Zusammenfassungsfreigabe)

Aug 24, 2022 am 09:02 AM
mysql

Empfohlenes Lernen: MySQL-Video-Tutorial

1. ENGINES ANZEIGEN

Ausführungs-Engine und Standard-Engine anzeigen.

2.SHOW PROCESSLIST

SHOW PROCESSLIST ist sehr nützlich, um die Nutzung der aktuellen Datenbankverbindung und verschiedene Statusinformationen anzuzeigen. SHOW PROCESSLIST; Wenn Sie sie alle auflisten möchten, verwenden Sie bitte SHOW FULL PROCESSLIST; Sie wollen eine Aussage töten.

Benutzer

Zeigen Sie den aktuellen Benutzer an. Wenn Sie kein Root sind, zeigt dieser Befehl nur die SQL-Anweisungen innerhalb Ihrer Berechtigung an. State-Spalte und ihre Bedeutung, der von MySQL aufgelistete Status:
Host Zeigt an, von welcher IP und welchem ​​Port diese Anweisung gesendet wird. Kann verwendet werden, um den Benutzer zu verfolgen, der die problematische Aussage gepostet hat.
db Zeigt, mit welcher Datenbank dieser Prozess derzeit verbunden ist.
Befehl Zeigt den ausgeführten Befehl der aktuellen Verbindung an, normalerweise Ruhezustand, Abfrage und Verbindung.
Überprüfen der Tabelle Überprüfen der Datentabelle (dies erfolgt automatisch).
Das Schließen von Tabellen

bedeutet, geänderte Daten in der Tabelle auf die Festplatte zu schreiben und gleichzeitig aufgebrauchte Tabellen zu schließen. Dies ist ein schneller Vorgang. Sollte dies jedoch nicht der Fall sein, sollten Sie überprüfen, ob der Speicherplatz voll ist oder die Festplatte stark ausgelastet ist.
Ausgehend verbinden Der Replikations-Slave-Server stellt eine Verbindung zum Master-Server her.
Kopieren in die tmp-Tabelle auf der Festplatte Da der temporäre Ergebnissatz größer als tmp_table_size (Standard 16 MB) ist, wird die temporäre Tabelle vom Speicher in den Festplattenspeicher konvertiert, um Speicherplatz zu sparen.
Tmp-Tabelle erstellen Eine temporäre Tabelle erstellen, um einige Abfrageergebnisse zu speichern.
Löschen aus der Haupttabelle Der Server führt den ersten Teil eines Löschvorgangs für mehrere Tabellen durch und hat gerade die erste Tabelle gelöscht.

3.SHOW STATUS LIKE 'InnoDB_row_lock%'

InnoDBs Sperrstatusvariable auf Zeilenebene.

Die Sperrstatusvariable auf Zeilenebene von InnoDB zeichnet nicht nur die Anzahl der Sperrwartezeiten auf, sondern auch die gesamte Sperrdauer, die durchschnittliche Dauer jedes Mals und die maximale Dauer Statusvariable, die die Anzahl der Sperren anzeigt, die derzeit auf die Sperre warten. Die Beschreibung jeder Statusmenge lautet wie folgt:

  • InnoDB_row_lock_current_waits: die Anzahl der Sperren, die derzeit auf Sperren warten;
  • InnoDB_row_lock_time: die gesamte Sperrzeit vom Systemstart bis jetzt;
  • InnoDB_row_lock_time_avg: die durchschnittliche Wartezeit jedes Mal;
  • InnoDB_row_lock_time_max: Die Zeit, die am häufigsten vom Systemstart bis jetzt gewartet wurde;
  • InnoDB_row_lock_waits: Die Gesamtzahl der Wartezeiten vom Systemstart bis jetzt; durchschnittliche Wartezeit), InnoDB_row_lock_waits (Gesamtzahl der Wartezeiten) und InnoDB_row_lock_time (Gesamtwartezeit). Insbesondere wenn die Anzahl der Wartezeiten hoch ist und die Länge jeder Wartezeit nicht gering ist, müssen wir analysieren, warum es so viele Wartezeiten im System gibt, und dann mit der Festlegung eines Optimierungsplans basierend auf den Analyseergebnissen beginnen.
Wenn Sie feststellen, dass der Sperrkonflikt schwerwiegend ist, z. B. wenn die Werte von InnoDB_row_lock_waits und InnoDB_row_lock_time_avg relativ hoch sind, können Sie InnoDB-Monitore auch so einstellen, dass die Tabellen und Datenzeilen, in denen Sperrkonflikte auftreten, weiter beobachtet und die Gründe dafür analysiert werden der Sperrenkonflikt.

4.SHOW ENGINE INNODB STATUS

SHOW ENGINE INNODB STATUS gibt viele Informationen aus, die derzeit vom InnoDB-Monitor überwacht werden. Die Ausgabe ist eine einzelne Zeichenfolge ohne Zeilen und Spalten. Der Inhalt ist jeweils in viele kleine Segmente unterteilt Das Segment entspricht Informationen zu verschiedenen Teilen der InnoDB-Speicher-Engine, von denen einige für InnoDB-Entwickler sehr nützlich sind.

Es gibt einen Abschnitt „LETZT ERKENNTER DEADLOCK“, der die zuletzt aufgezeichneten Deadlock-Informationen enthält, wie im folgenden Fall gezeigt:

"(1) TRANSACTION" zeigt die Informationen der ersten Transaktion an;

    "(1 ) WARTEN AUF DIE GEWÄHRUNG DIESER SPERRE“ zeigt die Sperrinformationen an, auf die die erste Transaktion wartet
  • „(2) TRANSAKTION“ zeigt die Informationen der zweiten Transaktion an;
  • „(2) HÄLT DIE SPERRE(N)“ wird angezeigt die zweite Transaktion Die Sperrinformationen werden gehalten;
  • „(2) WARTEN AUF DIE GEWÄHRUNG DIESER SPERRE“ zeigt die Sperrinformationen an, die auf die zweite Transaktion warten
  • Die letzte Zeile gibt das Verarbeitungsergebnis an, z. B. „WIR ROLL BACK TRANSACTION (2 ), was einen Rollback anzeigt. Die zweite Transaktion.
  • 5.SHOW INDEXS
SHOW INDEXS fragt die Indexinformationen in einer Tabelle ab: SHOW INDEXES FROM table_name;

Die SQL zum Erstellen der Tabelle lautet wie folgt:

CREATE TABLE contacts(
    contact_id INT AUTO_INCREMENT,
    first_name VARCHAR(100) NOT NULL comment 'first name',
    last_name VARCHAR(100) NOT NULL,
    email VARCHAR(100),
    phone VARCHAR(20),
    PRIMARY KEY(contact_id),
    UNIQUE(email),
    INDEX phone(phone) ,
    INDEX names(first_name, last_name) comment 'By first name and/or last name'
);
Nach dem Login kopieren

Die gespeicherte Prozedur Fügt 50.000 Daten ein:

CREATE PROCEDURE zqtest ( ) BEGIN
	DECLARE
		i INT DEFAULT 0;
	DECLARE
		j VARCHAR ( 100 ) DEFAULT 'first_name';
	DECLARE
		k VARCHAR ( 100 ) DEFAULT 'last_name';
	DECLARE
		l VARCHAR ( 100 ) DEFAULT 'email';
	DECLARE
		m VARCHAR ( 20 ) DEFAULT '11111111111';
	
	SET i = 0;
	START TRANSACTION;
	WHILE
			i < 50000 DO
		IF
			MOD ( i, 100 ) = 0 THEN
				
				SET j = CONCAT( &#39;first_name&#39;, i );
			
		END IF;
		IF
			MOD ( i, 200 ) = 0 THEN
				
				SET k = CONCAT( &#39;last_name&#39;, i );
			
		END IF;
		IF
			MOD ( i, 50 ) = 0 THEN
				
				SET m = CONCAT( &#39;&#39;, CAST( m as UNSIGNED) + i );
			
		END IF;
		INSERT INTO contacts ( first_name, last_name, email, phone )
		VALUES
			( j, k, CONCAT(l,i), m );
		
		SET i = i + 1;
		
	END WHILE;
	COMMIT;
	
END;
Nach dem Login kopieren

Das Ergebnis nach Verwendung von „Index aus Kontakten anzeigen“ lautet wie folgt:

Feldbeschreibung:

TabelleTabellennameNicht_eindeutig Der einzigartige Index ist 0 und die anderen Indizes sind 1. Eindeutiger Index. SchlüsselnameIndexname bedeutet den gleichen Index und es handelt sich um einen gemeinsamen Index Index. Spaltensequenznummer, beginnend bei 1. Sie kann auch die Reihenfolge der Spalte im gemeinsamen Index angeben. Indexspaltenname, wenn es sich um einen gemeinsamen Index handelt Der Name einer bestimmten Spalte Wie es im Index gespeichert wird, bedeutet wahrscheinlich die Zeichenreihenfolge Die Anzahl der verschiedenen Werte in einem Index wird auch „Kardinalität“ genannt Dieser Wert wird als Kardinalität bezeichnet. Die Statistik dieses Werts ist nicht unbedingt genau und kann mit ANALYZE TABLE korrigiert werden Anzahl der indizierten Zeichen. NULL, wenn nicht komprimierte Spaltenlösung und komprimierte Tabellenlösung JAIndexstrukturtyp, häufige sind FULLTEXT, HASH, BTREE, RTREEComments
Seq_in_index
Spaltenname
Collation
Kardinalität
Gepackt
Index_type
Comment, Index_comment

6.ALTER TABLE xx ENGINE = INNODB

Erstellen Sie die Tabelle einschließlich der Indexstruktur neu. Kann Indexseitenaufteilungen und Festplattenfragmentierung beseitigen, die beim Löschen von Daten entstehen.

7.ANALYZE TABLE

erstellt die Tabelle nicht neu, sondern zählt nur die Indexinformationen der Tabelle neu, ohne dass die Daten geändert werden. Dabei wird eine MDL-Lesesperre hinzugefügt. Es kann verwendet werden, um die Situation zu korrigieren, in der die Kardinalität des statistischen Index in „show index from tablename“ abnormale Daten ist.

Empfohlenes Lernen: MySQL-Video-Tutorial

Das obige ist der detaillierte Inhalt vonAllgemeine SQL-Anweisungen zur Datenbankoptimierung in MySQL (Zusammenfassungsfreigabe). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

MySQL: Einfache Konzepte für einfaches Lernen MySQL: Einfache Konzepte für einfaches Lernen Apr 10, 2025 am 09:29 AM

MySQL ist ein Open Source Relational Database Management System. 1) Datenbank und Tabellen erstellen: Verwenden Sie die Befehle erstellte und creatEtable. 2) Grundlegende Vorgänge: Einfügen, aktualisieren, löschen und auswählen. 3) Fortgeschrittene Operationen: Join-, Unterabfrage- und Transaktionsverarbeitung. 4) Debugging -Fähigkeiten: Syntax, Datentyp und Berechtigungen überprüfen. 5) Optimierungsvorschläge: Verwenden Sie Indizes, vermeiden Sie ausgewählt* und verwenden Sie Transaktionen.

Wie man phpmyadmin öffnet Wie man phpmyadmin öffnet Apr 10, 2025 pm 10:51 PM

Sie können PhpMyAdmin in den folgenden Schritten öffnen: 1. Melden Sie sich beim Website -Bedienfeld an; 2. Finden und klicken Sie auf das Symbol phpmyadmin. 3. Geben Sie MySQL -Anmeldeinformationen ein; 4. Klicken Sie auf "Login".

So erstellen Sie Navicat Premium So erstellen Sie Navicat Premium Apr 09, 2025 am 07:09 AM

Erstellen Sie eine Datenbank mit Navicat Premium: Stellen Sie eine Verbindung zum Datenbankserver her und geben Sie die Verbindungsparameter ein. Klicken Sie mit der rechten Maustaste auf den Server und wählen Sie Datenbank erstellen. Geben Sie den Namen der neuen Datenbank und den angegebenen Zeichensatz und die angegebene Kollektion ein. Stellen Sie eine Verbindung zur neuen Datenbank her und erstellen Sie die Tabelle im Objektbrowser. Klicken Sie mit der rechten Maustaste auf die Tabelle und wählen Sie Daten einfügen, um die Daten einzufügen.

So erstellen Sie eine neue Verbindung zu MySQL in Navicat So erstellen Sie eine neue Verbindung zu MySQL in Navicat Apr 09, 2025 am 07:21 AM

Sie können eine neue MySQL -Verbindung in Navicat erstellen, indem Sie den Schritten folgen: Öffnen Sie die Anwendung und wählen Sie eine neue Verbindung (Strg N). Wählen Sie "MySQL" als Verbindungstyp. Geben Sie die Hostname/IP -Adresse, den Port, den Benutzernamen und das Passwort ein. (Optional) Konfigurieren Sie erweiterte Optionen. Speichern Sie die Verbindung und geben Sie den Verbindungsnamen ein.

MySQL: Eine Einführung in die beliebteste Datenbank der Welt MySQL: Eine Einführung in die beliebteste Datenbank der Welt Apr 12, 2025 am 12:18 AM

MySQL ist ein Open Source Relational Database Management -System, das hauptsächlich zum schnellen und zuverlässigen Speicher und Abrufen von Daten verwendet wird. Sein Arbeitsprinzip umfasst Kundenanfragen, Abfragebedingungen, Ausführung von Abfragen und Rückgabergebnissen. Beispiele für die Nutzung sind das Erstellen von Tabellen, das Einsetzen und Abfragen von Daten sowie erweiterte Funktionen wie Join -Operationen. Häufige Fehler umfassen SQL -Syntax, Datentypen und Berechtigungen sowie Optimierungsvorschläge umfassen die Verwendung von Indizes, optimierte Abfragen und die Partitionierung von Tabellen.

MySQL und SQL: Wesentliche Fähigkeiten für Entwickler MySQL und SQL: Wesentliche Fähigkeiten für Entwickler Apr 10, 2025 am 09:30 AM

MySQL und SQL sind wesentliche Fähigkeiten für Entwickler. 1.MYSQL ist ein Open -Source -Relational Database Management -System, und SQL ist die Standardsprache, die zum Verwalten und Betrieb von Datenbanken verwendet wird. 2.MYSQL unterstützt mehrere Speichermotoren durch effiziente Datenspeicher- und Abruffunktionen, und SQL vervollständigt komplexe Datenoperationen durch einfache Aussagen. 3. Beispiele für die Nutzung sind grundlegende Abfragen und fortgeschrittene Abfragen wie Filterung und Sortierung nach Zustand. 4. Häufige Fehler umfassen Syntaxfehler und Leistungsprobleme, die durch Überprüfung von SQL -Anweisungen und Verwendung von Erklärungsbefehlen optimiert werden können. 5. Leistungsoptimierungstechniken umfassen die Verwendung von Indizes, die Vermeidung vollständiger Tabellenscanning, Optimierung von Join -Operationen und Verbesserung der Code -Lesbarkeit.

So verwenden Sie ein einzelnes Gewinde -Redis So verwenden Sie ein einzelnes Gewinde -Redis Apr 10, 2025 pm 07:12 PM

Redis verwendet eine einzelne Gewindearchitektur, um hohe Leistung, Einfachheit und Konsistenz zu bieten. Es wird E/A-Multiplexing, Ereignisschleifen, nicht blockierende E/A und gemeinsame Speicher verwendet, um die Parallelität zu verbessern, jedoch mit Einschränkungen von Gleichzeitbeschränkungen, einem einzelnen Ausfallpunkt und ungeeigneter Schreib-intensiver Workloads.

So wiederherstellen Sie Daten nach dem Löschen von SQL Zeilen So wiederherstellen Sie Daten nach dem Löschen von SQL Zeilen Apr 09, 2025 pm 12:21 PM

Das Wiederherstellen von gelöschten Zeilen direkt aus der Datenbank ist normalerweise unmöglich, es sei denn, es gibt einen Backup- oder Transaktions -Rollback -Mechanismus. Schlüsselpunkt: Transaktionsrollback: Führen Sie einen Rollback aus, bevor die Transaktion Daten wiederherstellt. Sicherung: Regelmäßige Sicherung der Datenbank kann verwendet werden, um Daten schnell wiederherzustellen. Datenbank-Snapshot: Sie können eine schreibgeschützte Kopie der Datenbank erstellen und die Daten wiederherstellen, nachdem die Daten versehentlich gelöscht wurden. Verwenden Sie eine Löschanweisung mit Vorsicht: Überprüfen Sie die Bedingungen sorgfältig, um das Verhandlich von Daten zu vermeiden. Verwenden Sie die WHERE -Klausel: Geben Sie die zu löschenden Daten explizit an. Verwenden Sie die Testumgebung: Testen Sie, bevor Sie einen Löschvorgang ausführen.

See all articles