Einführung in die Verwendung des offiziellen MySQL-Leistungstesttools mysqlslap

Einführung in die Verwendung des offiziellen MySQL-Leistungstesttools mysqlslap

Einführung

MySQL ist die beliebteste Open-Source-Datenbank und wird in vielen Bereichen eingesetzt. Als MySQL-DBA führen Sie häufig einige Leistungstests an der Datenbank durch, um den Geschäftsdruck aktiv (oder passiv) zu bewerten und die aktuelle Datenbanklast und die höchste Leistungskapazität zu ermitteln.

Zu den gängigen Leistungstesttools gehören Sysbench und TPCC. Beide sind hervorragende Stresstesttools, erfordern jedoch eine spezielle Kompilierung oder Installation sowie bestimmte Entwicklungsfähigkeiten, um bestimmte Testanweisungen zu ändern.

mysqlslap wird automatisch bei der Installation von MySQL installiert und mysqlslap kapselt viele benutzerdefinierte Testfunktionen extern. Benutzer müssen nur extern SQL-Anweisungsskripte bereitstellen, um Testanweisungen anzupassen, was die Verwendung erleichtert.

Anweisungen

mysqlslap bietet viele Parameter zum Konfigurieren der Art der Testelemente. Hier wählen wir zur Erläuterung nur einige allgemeine Parameter aus. Detaillierte Informationen finden Sie in den Hilfeinformationen von mysqlslap selbst.

Parametername

veranschaulichen

Anmeldepfad=#

Von der neuen MySQL-Version bereitgestellte Anmeldemethoden

-a, --auto-generate-sql

SQL-Anweisungen automatisch generieren

--auto-generate-sql-add-autoincrement

Fügen Sie der automatisch generierten Tabelle eine Auto-Increment-Spalte hinzu

--auto-generate-sql-execute-number=#

Die Gesamtzahl der während des Tests ausgeführten SQL-Anweisungen

--auto-generate-sql-guid-primary

GUID-basierte Primärschlüssel generieren

--auto-generate-sql-load-type=Name

Das Lademodell des Tests umfasst gemischt, aktualisieren, schreiben, Schlüssel und lesen. Der Standardwert ist gemischt.

--auto-generate-sql-secondary-indexes=#

Die Anzahl der Sekundärindizes in automatisch generierten Tabellen

--auto-generate-sql-unique-query-number=#

Die Anzahl der Abfragen mit eindeutigen Indizes im Test

--auto-generate-sql-unique-write-number=#

Die Anzahl der DML-Anweisungen, die während des Tests eindeutige Indizes verwenden

--auto-generate-sql-write-number=#

Die Anzahl der von jedem Thread während des Tests ausgeführten Einfügeanweisungen beträgt standardmäßig 100.

--commit=#

Während des Tests wird alle paar Anweisungen ein Commit ausgeführt.

-c, --concurrency=Name

Die Anzahl gleichzeitiger Threads/Clients im Test

--create=Name

Benutzerdefinierte Tabellenerstellungsanweisung oder die Adresse der SQL-Datei

--create-schema=Name

Der im Test verwendete Datenbankname

--detach=#

Stellen Sie während des Tests die Verbindung wieder her, nachdem Sie eine bestimmte Anzahl von Anweisungen ausgeführt haben

-e, --engine=Name

Geben Sie beim Erstellen einer Tabelle die Speicher-Engine an

-h, --host=Name

Geben Sie die Hostadresse der Testinstanz an

-u, --user=Name

Geben Sie den Benutzernamen für die Testinstanz an

-p, --password=Name

Geben Sie das Passwort für die Testinstanz an

-P, --port=#

Geben Sie den Port der Testinstanz an

-i, --iterations=#

Geben Sie an, wie oft der Test wiederholt werden soll.

--kein Tropfen

Nachdem der Test abgeschlossen ist, wird die für den Test verwendete Bibliothekstabelle nicht gelöscht.

-x, --number-char-cols=Name

Gibt die Anzahl der varchar-Spalten in der Testtabelle an

-y, --number-int-cols=Name

Gibt die Anzahl der int-Spalten in der Testtabelle an

--Anzahl der Abfragen=#

Gibt die Obergrenze für die Anzahl der von jedem Thread ausgeführten SQL-Anweisungen an (ungenau)

--only-print

Ähnlich wie beim Probelauf wird die Ausgabe durchgeführt, aber nicht tatsächlich ausgeführt.

-F, --delimiter=Name

Wenn Sie in einer Datei bereitgestellte SQL-Anweisungen verwenden, geben Sie das Trennzeichen zwischen den Anweisungen explizit an

--post-query=Name

Geben Sie die Abfrageanweisung an, die nach Abschluss des Tests ausgeführt werden soll, oder die Datei mit SQL-Anweisungen

--pre-query=Name

Geben Sie die Abfrageanweisung an, die vor dem Start des Tests ausgeführt werden soll, oder die Datei mit SQL-Anweisungen

-q, --query=Name

Gibt die während des Tests auszuführende Abfrageanweisung oder die Datei mit SQL-Anweisungen an.

Tatsächliche Erfahrung

Hier ist ein einfacher Test von mysqlslap. Die Zielinstanz verwendet Tencent Cloud Database MySQL. Das einfachste Testbeispiel ist wie folgt:

root@VM-64-10-debian:~# mysqlslap --concurrency=100 --iterations 10 -a --auto-generate-sql-add-autoincrement --engine=innodb --number-of-queries=1000 -h172.1.100.10 -uroot -p
Passwort eingeben:
Vergleichsindex
	Wird für die Engine InnoDB ausgeführt
	Durchschnittliche Anzahl von Sekunden zum Ausführen aller Abfragen: 0,046 Sekunden
	Mindestanzahl von Sekunden zum Ausführen aller Abfragen: 0,042 Sekunden
	Maximale Anzahl von Sekunden zum Ausführen aller Abfragen: 0,049 Sekunden
	Anzahl der Clients, die Abfragen ausführen: 100
	Durchschnittliche Anzahl der Anfragen pro Kunde: 10

root@VM-64-10-debian:~#

In diesem Beispiel wird das einfachste Testmodell verwendet, bei dem mysqlslap alle Testanweisungen und Anweisungen zur Tabellenerstellung selbst generiert.

Wenn Sie die Leistung unter verschiedenen Parallelitätsbedingungen vergleichen möchten, können Sie sie folgendermaßen testen:

root@VM-64-10-debian:~# mysqlslap --concurrency=100,200 --iterations 10 -a --auto-generate-sql-add-autoincrement --engine=innodb --number-of-queries=1000 -h172.16.0.40 -uroot -p
Passwort eingeben:
Vergleichsindex
	Wird für die Engine InnoDB ausgeführt
	Durchschnittliche Anzahl von Sekunden zum Ausführen aller Abfragen: 0,046 Sekunden
	Mindestanzahl von Sekunden zum Ausführen aller Abfragen: 0,045 Sekunden
	Maximale Anzahl von Sekunden zum Ausführen aller Abfragen: 0,048 Sekunden
	Anzahl der Clients, die Abfragen ausführen: 100
	Durchschnittliche Anzahl der Anfragen pro Kunde: 10

Vergleichsindex
	Wird für die Engine InnoDB ausgeführt
	Durchschnittliche Anzahl von Sekunden zum Ausführen aller Abfragen: 0,037 Sekunden
	Mindestanzahl von Sekunden zum Ausführen aller Abfragen: 0,034 Sekunden
	Maximale Anzahl von Sekunden zum Ausführen aller Abfragen: 0,052 Sekunden
	Anzahl der Clients, die Abfragen ausführen: 200
	Durchschnittliche Anzahl der Anfragen pro Kunde: 5

root@VM-64-10-debian:~#

Das Ausgabeergebnis ist die Zeit. Je kürzer also die Zeit, desto besser die Gesamtleistung.

Wenn Sie die Testanweisung anpassen möchten, können Sie die SQL-Anweisung beispielsweise in die Datei schreiben:

root@VM-64-10-debian:~# cat erstellen.sql
Tabelle erstellen a (b int); In a Werte einfügen (23);
root@VM-64-10-debian:~# cat query.sql
WÄHLEN SIE * AUS a;
WÄHLE b AUS a;
root@VM-64-10-debian:~#
root@VM-64-10-debian:~# mysqlslap --concurrency=100,200 --query=query.sql --create=create.sql --delimiter=";" --engine=innodb --number-of-queries=1000 -h172.16.0.40 -uroot -p
Passwort eingeben:
Vergleichsindex
	Wird für die Engine InnoDB ausgeführt
	Durchschnittliche Anzahl von Sekunden zum Ausführen aller Abfragen: 0,045 Sekunden
	Mindestanzahl von Sekunden zum Ausführen aller Abfragen: 0,045 Sekunden
	Maximale Anzahl von Sekunden zum Ausführen aller Abfragen: 0,045 Sekunden
	Anzahl der Clients, die Abfragen ausführen: 100
	Durchschnittliche Anzahl der Anfragen pro Kunde: 10

Vergleichsindex
	Wird für die Engine InnoDB ausgeführt
	Durchschnittliche Anzahl von Sekunden zum Ausführen aller Abfragen: 0,023 Sekunden
	Mindestanzahl von Sekunden zum Ausführen aller Abfragen: 0,023 Sekunden
	Maximale Anzahl von Sekunden zum Ausführen aller Abfragen: 0,023 Sekunden
	Anzahl der Clients, die Abfragen ausführen: 200
	Durchschnittliche Anzahl der Anfragen pro Kunde: 5

root@VM-64-10-debian:~#

Zusammenfassung

Auf dem Markt sind viele MySQL-Stresstest-Tools erhältlich und jedes Tool hat seine eigenen Vor- und Nachteile. Indem Sie mehr über die Tools erfahren und dann das am besten geeignete Tool entsprechend Ihren tatsächlichen Anforderungen auswählen, können Sie die erforderlichen Stresstests auf die effizienteste Weise durchführen.

Das Obige ist eine ausführliche Einführung in die Verwendung des offiziellen Leistungstesttools von MySQL, mysqlslap. Weitere Informationen zur Verwendung von mysqlslap finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Verwendung des MySQL-Stresstesttools Mysqlslap
  • Detaillierte Erklärung des mysqlslap-Befehls und der Syntax für den integrierten Stresstest in MySQL 5.7
  • Einführung und Verwendung des MySQL-Stresstesttools mysqlslap
  • Methode zum Testen von MySQL-Stress. Wie verwende ich mysqlslap zum Testen von MySQL-Stress?
  • Mysqlslap MySQL-Stresstest-Tool – einfaches Tutorial

<<:  3 Möglichkeiten zum Erstellen von JavaScript-Objekten

>>:  CSS verwendet radialen Farbverlauf zur Implementierung von Coupon-Stilen

Artikel empfehlen

Schritte zum Importieren von Millionen von Daten in MySQL mit .Net Core

Inhaltsverzeichnis Vorbereitende Vorbereitung Imp...

Warum wirkt sich die Verwendung von Limits in MySQL auf die Leistung aus?

Lassen Sie mich zunächst die MySQL-Version erklär...

19 MySQL-Optimierungsmethoden im Datenbankmanagement

Nach der MySQL-Datenbankoptimierung kann nicht nu...

Linux verwendet stty zum Anzeigen und Ändern von Terminalzeileneinstellungen

Sttty ist ein gängiger Befehl zum Ändern und Druc...

Detaillierte Erklärung von count(), group by, order by in MySQL

Ich bin vor Kurzem auf ein Problem gestoßen, als ...

Zusammenfassung ungewöhnlicher JS-Operationsoperatoren

Inhaltsverzeichnis 2. Komma-Operator 3. JavaScrip...

So installieren Sie Oracle_11g mit Docker

Installieren Sie Oracle_11g mit Docker 1. Ziehen ...

Eine dauerhafte Lösung für MySQLs Unfähigkeit, Chinesisch zu erkennen

In den meisten Fällen unterstützt MySQL Chinesisc...

HTML übertrifft das Implementierungsprinzip und den Code des Textzeilenabfangs

Der HTML-Code zum Abfangen von mehrzeiligem Text l...

So implementieren Sie geplante MySQL-Aufgaben zur Datensicherung unter Linux

Vorwort Backup ist die Grundlage der Notfallwiede...

Ein einfaches Beispiel für die Verwendung von Vue3-Routing VueRouter4

Routenplanung vue-router4 behält den Großteil der...

Der gesamte Prozess der Optimierung des ersten Ladens einer Vue-Seite

Inhaltsverzeichnis Vorwort 1. Bildoptimierung 2. ...