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

So erstellen Sie Benutzer und verwalten Berechtigungen in MySQL

1. So erstellen Sie einen Benutzer und ein Passwo...

So erstellen Sie eine LNMP-Umgebung unter Ubuntu 20.04

Einfache Beschreibung Da es zuvor mit Centos7 ers...

Verwenden des JS-Timers zum Verschieben von Elementen

Verwenden Sie einen JS-Timer, um ein Element zu e...

Mysql NULL verursachte die Grube

Verwenden von NULL in Vergleichsoperatoren mysql&...

Der gesamte Prozessbericht der Vue-Exportfunktion für Excel

Inhaltsverzeichnis 1. Front-End-Führungsprozess: ...

Anwendungsszenario für die MySQL-Konfiguration mehrerer Instanzen

Inhaltsverzeichnis Mehrere MySQL-Instanzen Übersi...

Tabelle zeigt den Grenzcode, den Sie anzeigen möchten

Gemeinsame Eigenschaften von Tabellen Die grundle...

Zusammenfassung von 6 Lösungen zur Implementierung des Singleton-Modus in JS

Vorwort Heute habe ich das Erzeugungsmuster im En...

Eine einfache Möglichkeit, das Passwort in MySQL 5.7 zu ändern

Dies ist ein offizieller Screenshot. Nach der Ins...

URL-Rewrite-Modul 2.1 URL-Rewrite-Modul – Regeln schreiben

Inhaltsverzeichnis Voraussetzungen Einrichten ein...