Maison  >  Article  >  base de données  >  Détails du code permettant à mysqlslap d'exécuter des tests de référence

Détails du code permettant à mysqlslap d'exécuter des tests de référence

黄舟
黄舟original
2017-03-04 14:43:541286parcourir

Affichez les principales configurations et descriptions des paramètres prises en charge par mysqlslap comme suit


<span style="color: #000000">-a, --auto-generate-sql 由系统自动生成SQL脚本进行测试<br/>                      Generate SQL where not supplied by file or command line.<br/>  --auto-generate-sql-add-autoincrement 生成的表中增加自增的ID<br/>                      Add an AUTO_INCREMENT column to auto-generated tables.--auto-generate-sql-load-type=name 制定测试过程中使用的查询类型<br/>                      Specify test load type: mixed, update, write, key, or<br/>                      read; default is mixed.--auto-generate-sql-write-number=# 制定所生成的初始化数据的条数<br/>                      Number of row inserts to perform for each thread (default<br/>                      is 100).-c, --concurrency=name 制定并发线程的数量<br/>                      Number of clients to simulate for query to run.<br/>  --create=name       File or string to use create tables.<br/>  --create-schema=name 创建一个测试数据库的schema名称<br/>                      Schema to run tests in.-T, --debug-info    This is a non-debug version. Catch this and exit.指定输出额外的内存及CPU统计信息-e,<br/>                       --engine=name   Storage engine to use for creating the table. 指定所测试的存储引擎,用逗号可以分割以便测试多个引擎<br/>  -h, --host=name     Connect to host. 链接远程主机的IP<br/>  -i, --iterations=#  Number of times to run the tests. 指定本次测试需要运行的次数<br/>  --no-drop           Do not drop the schema after the test. 指定测试完成后,不清理过程数据<br/>  -x, --number-char-cols=name 指定测试表中生成的varchar类型的数据数量<br/>                      Number of VARCHAR columns to create in table if<br/>                      specifying --auto-generate-sql.<br/>  -y, --number-int-cols=name 指定测试表中生成的int类型的数据数量<br/>                      Number of INT columns to create in table if specifying<br/>                      --auto-generate-sql.<br/>  --number-of-queries=# 指定每一个线程所执行的查询数量<br/>                      Limit each client to this number of queries (this is not<br/>                      exact).<br/>  --only-print        Do not connect to the databases, but instead print out 并不运行测试脚本,而是把生成的脚本打印出来<br/>                      what would have been done.<br/>  -p, --password[=name] 指定测试所用的链接数据库的密码<br/>                      Password to use when connecting to server. If password is<br/>                      not given it&#39;s asked from the tty.-q, --query=name    Query to run or file containing query to run.自定义测试用的sql<br/>  -u, --user=name     User for login if not current user. 指定测试所用的链接数据库的用户名<br/></span>


Parmi eux, le script complet en cours d'exécution est comme suit

mysqlslap -S /tmp/mysql3306.sock --concurrency=1,50,100,200 --iterations=3 --number-int-cols=5 --number-char-cols=5 
--auto-generate-sql --auto-generate-sql-add-autoincrement --engine=innodb --number-of-queries=10
 --create-schema=test -uroot -p

Après avoir saisi le mot de passe, les informations de test sont les suivantes

Enter password: 
Benchmark
        Running for engine innodb
        Average number of seconds to run all queries: 0.097 seconds
        Minimum number of seconds to run all queries: 0.093 seconds
        Maximum number of seconds to run all queries: 0.107 seconds
        Number of clients running queries: 1
        Average number of queries per client: 10Benchmark
        Running for engine innodb
        Average number of seconds to run all queries: 0.506 seconds
        Minimum number of seconds to run all queries: 0.447 seconds
        Maximum number of seconds to run all queries: 0.570 seconds
        Number of clients running queries: 50
        Average number of queries per client: 0Benchmark
        Running for engine innodb
        Average number of seconds to run all queries: 2.204 seconds
        Minimum number of seconds to run all queries: 1.595 seconds
        Maximum number of seconds to run all queries: 3.257 seconds
        Number of clients running queries: 100
        Average number of queries per client: 0mysqlslap: Error when connecting to server: 1040 Too many connections
mysqlslap: Error when connecting to server: 1040 Too many connections
mysqlslap: Error when connecting to server: 1040 Too many connections
mysqlslap: Error when connecting to server: 1040 Too many connections

On peut voir à ce moment que lorsque la concurrence atteint 200, une exception Trop de connexions Cela se produit car mysql Le nombre maximum de connexions dans la configuration par défaut est de 100, vous devez donc apporter les modifications suivantes à my.cnf

Ajouter max_connections=1024, puis exécuter normalement

Benchmark
        Running for engine innodb
        Average number of seconds to run all queries: 0.093 seconds
        Minimum number of seconds to run all queries: 0.087 seconds
        Maximum number of seconds to run all queries: 0.098 seconds
        Number of clients running queries: 1
        Average number of queries per client: 10Benchmark
        Running for engine innodb
        Average number of seconds to run all queries: 0.514 seconds
        Minimum number of seconds to run all queries: 0.462 seconds
        Maximum number of seconds to run all queries: 0.545 seconds
        Number of clients running queries: 50
        Average number of queries per client: 0Benchmark
        Running for engine innodb
        Average number of seconds to run all queries: 1.209 seconds
        Minimum number of seconds to run all queries: 1.173 seconds
        Maximum number of seconds to run all queries: 1.241 seconds
        Number of clients running queries: 100
        Average number of queries per client: 0Benchmark
        Running for engine innodb
        Average number of seconds to run all queries: 2.174 seconds
        Minimum number of seconds to run all queries: 1.978 seconds
        Maximum number of seconds to run all queries: 2.402 seconds
        Number of clients running queries: 200
        Average number of queries per client: 0

Ce qui précède est le code permettant à mysqlslap d'effectuer le test de référence. Pour une introduction détaillée, veuillez faire attention au site Web PHP chinois (www.php.cn) pour plus de contenu connexe !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn