Heim  >  Artikel  >  Datenbank  >  Einführung in die Verwendung von MySQLSlap

Einführung in die Verwendung von MySQLSlap

PHP中文网
PHP中文网Original
2017-06-21 16:15:281781Durchsuche

Mysqlslap ist ein Stresstest-Tool, das offiziell von MySQL ab Version 5.1.4 bereitgestellt wird. Stresstests werden durchgeführt, indem mehrere gleichzeitige Clients simuliert werden, die auf MySQL zugreifen, und können die Leistungsunterschiede bei gleichzeitigem Stress mehrerer Speicher-Engines in derselben Umgebung gut vergleichen.

mysqlslap muss die folgenden drei Schritte ausführen: <br>1. Erstellen Sie ein Schema, eine Tabelle, Testdaten usw. über eine einzige Verbindung (in MySQL). , Schema Es ist die Datenbank); <br>2. Um den Lasttest auszuführen, können Sie mehrere gleichzeitige Client-Verbindungen verwenden (löschen Sie die erstellten Daten, Tabellen usw.). der Verbindung), verwenden Sie eine einzige Verbindung. <br>

Die Verwendungssyntax lautet wie folgt: # mysqlslap [Optionen]<br>

Gemeinsame Parameter [Optionen] Detaillierte Beschreibung: <br>--auto-generate-sql, -a generiert automatisch Testtabellen und -daten, was darauf hinweist, dass das vom MySQLslap-Tool selbst generierte SQL-Skript zum Testen des Parallelitätsdrucks verwendet wird. <code><br>--auto-generate-sql, -a 自动生成测试表和数据,表示用mysqlslap工具自己生成的SQL脚本来测试并发压力。<br>--auto-generate-sql-load-type=type 测试语句的类型。代表要测试的环境是读操作还是写操作还是两者混合的。取值包括:read,key,write,update和mixed(默认)。<br>--auto-generate-sql-add-auto-increment 代表对生成的表自动添加auto_increment列,从5.1.18版本开始支持。<br>--number-char-cols=N, -x N 自动生成的测试表中包含多少个字符类型的列,默认1<br>--number-int-cols=N, -y N 自动生成的测试表中包含多少个数字类型的列,默认1<br>--number-of-queries=N 总的测试查询次数(并发客户数×每客户查询次数)<br>--query="sql statement",-q 使用自定义脚本执行测试,例如可以调用自定义的一个存储过程或者sql语句来执行测试。<br>--create="sql statement" 创建表的SQL语句或文件<br>--concurrency=N, -c N 表示并发量,也就是模拟多少个客户端同时执行select。可指定多个值,以逗号或者--delimiter参数指定的值做为分隔符。例如:--concurrency=100,200,500。<br>--engine=engine_name, -e engine_name 代表要测试的引擎,可以有多个,用分隔符隔开。例如:--engines=myisam,innodb。<br>--iterations=N, -i N 测试执行的迭代次数,代表要在不同并发环境下,各自运行测试多少次。<br>--only-print 只打印测试语句而不实际执行。<br>--debug-info, -T 打印内存和CPU的相关信息。<br>--auto-generate-sql-load-type=type Der Typ der Testanweisung. Gibt an, ob es sich bei der zu testenden Umgebung um einen Lesevorgang, einen Schreibvorgang oder eine Mischung aus beiden handelt. Zu den Werten gehören: Lesen, Schlüssel, Schreiben, Aktualisieren und gemischt (Standard).

--auto-generate-sql-add-auto-increment bedeutet das automatische Hinzufügen der auto_increment-Spalte zur generierten Tabelle, unterstützt ab Version 5.1.18.

--number-char-cols=N, -x N Wie viele Zeichentypspalten sind in der automatisch generierten Testtabelle enthalten, Standard 1

--number-int-cols=N, -y N Automatisch generiert Wie viele numerische Spalten sind in der Testtabelle enthalten, Standard 1

--number-of-queries=N Gesamtzahl der Testabfragen (Anzahl gleichzeitiger Kunden × Anzahl der Abfragen pro Kunde)

--query=" sql-Anweisung",-q Verwenden Sie ein benutzerdefiniertes Skript, um den Test auszuführen. Sie können beispielsweise eine benutzerdefinierte gespeicherte Prozedur oder SQL-Anweisung aufrufen, um den Test auszuführen.

--create="sql-Anweisung" Erstellen Sie die SQL-Anweisung oder Datei der Tabelle <br>--concurrency=N, -c N stellt den Grad der Parallelität dar, d. h. wie viele Clients simuliert werden, um select auszuführen zur gleichen Zeit. Es können mehrere Werte angegeben werden, wobei Kommas oder der durch den Parameter --delimiter angegebene Wert als Trennzeichen verwendet werden. Beispiel: --concurrency=100.200.500. --only-print--engine=engine_name, -e engine_name stellt die zu testende Engine dar. Es können mehrere vorhanden sein, die durch Trennzeichen getrennt sind. Zum Beispiel: --engines=myisam,innodb.

--iterations=N, -i N Die Anzahl der Iterationen der Testausführung, die angibt, wie oft der Test in verschiedenen gleichzeitigen Umgebungen ausgeführt werden muss.

--only-print druckt nur die Testanweisung, ohne sie tatsächlich auszuführen.

--debug-info, -T Gibt Speicher- und CPU-bezogene Informationen aus.

Detailliertere Parameter finden Sie in der offiziellen Website-Dokumentation:

<br>Hinweis: Der Testprozess erfordert die Erstellung eines Tests Tabelle und Einfügen von Testdaten. Dieses MySQLSLAP-Schema wird standardmäßig generiert. Wenn es bereits vorhanden ist, wird es zuerst gelöscht. Mit

können Sie den tatsächlichen Testverlauf ausdrucken und nach Abschluss des gesamten Tests bleiben keine Spuren in der Datenbank zurück.

<br> # mysqlslap -a -uroot -p123456<br><br>Beispiele für verschiedene Testparameter (auf -p folgt das Root-Passwort von MySQL): # mysqlslap -a -c 100 -uroot -p123456<br><br># mysqlslap -a -i 10 -uroot -p123456<br>

Demo 1:

Demo 2:<br>Single-Threaded-Test. Was der Test bewirkt hat.

<br>Multithread-Tests. Verwenden Sie –concurrency, um die Anzahl gleichzeitiger Clientverbindungen zu simulieren. Beispielsweise stellen 100 Clients gleichzeitig eine Verbindung zur Datenbank her. # mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --iterations=5 --engine=myisam,innodb -uroot -p123456

Iteratives Testen. Wird verwendet, um Tests mehrmals durchzuführen, um den Durchschnitt zu ermitteln. Iterieren Sie beispielsweise zehnmal und ermitteln Sie den Durchschnitt. <br>

Demo 2:

Testen und vergleichen Sie die Leistung verschiedener Speicher-Engines gleichzeitig:

jeweils 500 Parallelität, jeder gleichzeitige Client führt eine Abfrage aus, also insgesamt 500 Abfragen, und 1000 Parallelität, jeder gleichzeitige Client führt eine Abfrage aus, also insgesamt 1000 Abfragen. Aus Gründen der Genauigkeit können Sie den Test mehrmals iterieren:

Beide Tests generieren automatisch SQL-Testskripte und iterieren jeweils zehnmal, um den Durchschnitt zu ermitteln. Die Testumgebung umfasst gemischte Tests zum Lesen, Schreiben und Aktualisieren. Das Feld für die automatische Erhöhung und die Test-Engine sind innodb. # mysqlslap –uroot –p –concurrency=500 –I 10 –a –auto-generate-sql-type=mixed –auto-generate-sql-add-autoincrement –engine=innodb –number-of- query=500# mysqlslap –uroot –p –concurrency=1000 –I 10 –a –auto-generate-sql-type=mixed –auto-generate-sql-add-autoincrement –engine=innodb –number -of-queries=1000Das Rückgabeergebnis lautet wie folgt:Wie aus den beiden obigen Tests ersichtlich ist, ändert sich die Parallelität von 500 auf 1000, die Abfragezeit wird wahrscheinlich fast verdoppelt.

Das obige ist der detaillierte Inhalt vonEinführung in die Verwendung von MySQLSlap. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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