1. Einführung in Mysqlslap
Mysqlslap ist das mit MySQL5.1 gelieferte Benchmark-Benchmarking-Tool. Es generiert Schemata, lädt Daten, führt Benchmarks aus und fragt Daten ab . Dieses Tool kann mehrere Clients simulieren, die gleichzeitig Abfrageaktualisierungen an den Server senden, Leistungstestdaten bereitstellen und Leistungsvergleiche mehrerer Engines ermöglichen. MySQLslap bietet eine intuitive Überprüfungsbasis für die Optimierung der MySQL-Leistung vor und nach dem Start. Der Autor empfiehlt, dass das Systembetriebs- und Wartungspersonal einige gängige Stresstest-Tools beherrschen sollte, damit es die Obergrenze des Benutzerverkehrs, die das Online-System unterstützen kann, genauer erfassen kann und seine Druckfestigkeit und andere Probleme.
2. Parametereinführung
--auto-generate-sql -a 自动生成MySQL测试语句 --auto-generate-sql-add-autoincrement 添加AUTO_INCREMENT字段 --auto-generate-sql-execute-number=# 查询的个数 --auto-generate-sql-guid-primary 添加GUID字段 --auto-generate-sql-load-type=name mixed:混合、update:更新、write:写入、key:读主键、read:查询 --auto-generate-sql-secondary-indexes=# 设置索引字段个数 --auto-generate-sql-unique-query-number=# 生成N条不同的query sql语句 --auto-generate-sql-unique-write-number=# 生成N条不同的write sql语句 --auto-generate-sql-write-number=# 每个线程write sql语句数量 --commit=# 设置每多少条sql语句提交一次 --compress -C 启用压缩协议 --concurrency=# -c 客户端数量(并发量) --create=name 测试的SQL语句或文件 --create-schema=name 测试的数据名 --csv=name 生产CSV格式数据文件 --debug -# 写调试日志(windows不可用) 如:mysqlslap -a -#"d:t:o,c:/debug.txt" --debug-check 测试后打印调试信息(windows不可用) --debug-info -T 打印内存和CPU的相关信息 --default-auth=plugin 验证插件 --delimiter=str -F 语句分隔符默认是 ; --detach=# 执行N条语句后断开重连 --enable-cleartext-plugin 启用明文身份验证插件 --engine=engine_name -e 测试引擎 如:mysqlslap -e"myisam"或-e"myisam,innodb" --help 帮助信息 --host=host_name -h 数据库host --iterations=# -i 重复运行的次数 --login-path=name 登陆配置文件 --no-drop 测试后不删除schema --number-char-cols=# -x 设置VARCHAR类型字段数量 --number-int-cols=# -y 设置INT类型字段数量 --number-of-queries=# 每个客户端运行sql语句数量 --only-print 仅显示将被运行的SQL语句--delimiter选项影响 --password=password -p 数据库密码 --pipe 启用管道 --plugin-dir=path 插件目录 --port=port_num -P 数据库端口 --post-query=value 测试后执行的SQL语句 --post-system=str 测试后执行的系统语句 --pre-query=value 测试前执行的SQL语句 --pre-system=str 测试前执行的系统语句 --protocol=type 链接协议 tcp, socket, pipe --query=value -q 测试的SQL语句 如:mysqlslap --query="SELECT * FROM t1" --secure-auth 不要发送密码到服务器 --silent -s 不显示测试(静音测试) --socket=path -S 连接服务器的socket --ssl-ca=file_name --ssl-capath=dir_name --ssl-cert=file_name --ssl-cipher=cipher_list --ssl-crl=file_name --ssl-crlpath=dir_name --ssl-key=file_name --ssl-verify-server-cert --user=user_name -u 数据库用户名 --verbose -v 输出更多的信息 --version -V 版本信息
3. Einfaches Beispiel
1. Testen Sie 100, 200 bzw. 400 gleichzeitige Ausführungen von 100.000 SQL-Anweisungen.
mysqlslap -uroot -proot -h192.168.10.43 -P3306 --create-schema=chenmh --delimiter=";" --query="call pro_auto_select_pri" --concurrency=100,200,400 --number-of-queries=100000
Hinweis: Die Berichtsausgabezeit spiegelt sich hauptsächlich in der Zeit wider, die zum Ausführen der durch –number-of-queries angegebenen Abfrage benötigt wird. Hier sind 100 gleichzeitige, 200 gleichzeitige und 400 gleichzeitige Ausführungen von 100.000 Aufrufen erforderlich die Zeit. Standardmäßig ist -iterations nicht angegeben, was bedeutet, dass die Operation wiederholt ausgeführt wird. Wenn N wiederholt ausgeführt wird, spiegelt die Ausgabezeit auch die in einer einzelnen Schleife verbrachte Zeit wider.
2. CSV generieren
mysqlslap -a -e"myisam,innodb" --csv="c:/a.csv"
4. Zusammenfassung
Mysqlslap dient hauptsächlich zum Testen der Datenbankleistung. Die automatische Testfunktion ist begrenzt und die Produktionsberichte sind nicht detailliert genug. Daher wird empfohlen, Sysbench für Benchmark-Tests zu verwenden. Das Obige ist die vollständige Einführung zu MySQL. Ich hoffe, dass es für das Studium oder die Arbeit aller hilfreich ist. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen.