mysqlslap은 MySQL 버전 5.1.4부터 공식적으로 제공하는 스트레스 테스트 도구입니다. 스트레스 테스트는 MySQL에 액세스하는 여러 동시 클라이언트를 시뮬레이션하여 수행되며 동일한 환경에서 여러 스토리지 엔진의 동시 스트레스 성능 차이를 잘 비교할 수 있습니다.
mysqlslap 작업은 다음 세 단계로 구성됩니다. <br>1. 단일 연결을 사용하여 스키마, 테이블, 테스트 데이터 등을 생성합니다(MySQL에서는 스키마가 데이터베이스임). 로드 테스트, 여러 동시 클라이언트 연결을 사용할 수 있습니다. <br>3. 테스트 환경 정리(<br>삭제생성된 데이터, 테이블 등, 연결 끊기), 단일 연결을 사용합니다.
사용 구문은 다음과 같습니다. # mysqlslap [옵션]<br>
공통 매개변수 [옵션] 상세 설명: <br>--auto-generate-sql, -a 자동으로 테스트 테이블 및 데이터 생성 mysqlslap 도구는 동시성 압력을 테스트하기 위해 자체 SQL 스크립트를 생성합니다. <code><br>--auto-generate-sql, -a 自动生成测试表和数据,表示用mysqlslap工具自己生成的SQL脚本来测试并发压力。<br>--auto-generate-sql-load-type=type 测试语句的类型。代表要测试的环境是读操作还是写操作还是两者混合的。取值包括:read,<a href="http://www.php.cn/wiki/1051.html" target="_blank">key</a>,write,up<a href="http://www.php.cn/wiki/1255.html" target="_blank">date</a>和mixed(默认)。<br>--auto-generate-sql-add-auto-increment 代表对生成的表自动添加auto_increment列,从5.1.18版本开始支持。<br>--number-char-cols=N, -x N 自动生成的测试表中包含多少个<a href="http://www.php.cn/code/6739.html" target="_blank">字符类型</a>的列,默认1<br>--number-int-cols=N, -y N 自动生成的测试表中包含多少个数字类型的列,默认1<br>--number-of-queries=N 总的测试<a href="http://www.php.cn/php/php-tp-demand.html" target="_blank">查询</a>次数(并发客户数×每客户查询次数)<br>--query="sql statement",-q 使用自定义脚本执行测试,例如可以调用自定义的一个<a href="http://www.php.cn/code/12179.html" target="_blank">存储过程</a>或者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-<a href="http://www.php.cn/wiki/1362.html" target="_blank">print</a> 只打印测试语句而不实际执行。<br>--debug-info, -T 打印内存和CPU的相关信息。
--auto-generate-sql-load-type=type 테스트 문의 유형입니다. 테스트할 환경이 읽기 작업, 쓰기 작업 또는 이 둘의 혼합인지 여부를 나타냅니다. 값에는 다음이 포함됩니다: 읽기, key
및 혼합(기본값). <br>--auto-generate-sql-add-auto-increment는 생성된 테이블에 auto_increment 열을 자동으로 추가하는 것을 의미합니다. 버전 5.1.18부터 지원됩니다. --only-print
--number-char-cols=N, -x N 자동 생성된 테스트에 가 몇 개 포함되어 있습니까? table 문자 유형
--number-int-cols=N, -y N 자동 생성된 테스트 테이블에 포함되는 숫자 유형 열 수, 기본값 1--number-of-queries=N 총 테스트 쿼리 시간(동시 고객 수 × 고객당 쿼리 수) --query= "sql 문",-q 사용자 정의 스크립트를 사용하여 테스트를 실행합니다. 예를 들어 사용자 정의 저장 프로시저
또는 SQL 문을 사용하여 테스트를 실행합니다.--create="sql 문" 테이블의 SQL 문이나 파일을 생성합니다
--concurrency=N, -c N은 동시성 양, 즉 동시에 select를 실행하기 위해 시뮬레이션되는 클라이언트 수를 나타냅니다. 쉼표나 --delimiter 매개변수에 지정된 값을 구분 기호로 사용하여 여러 값을 지정할 수 있습니다. 예: --concurrency=100,200,500.--engine=engine_name, -e 엔진 이름은 테스트할 엔진을 나타내며, 여러 개가 있을 수 있으며 구분 기호로 구분됩니다. 예: --engines=myisam,innodb. <br>--iterations=N, -i N은 테스트 실행의 반복 횟수로, 다양한 동시 환경에서 테스트를 실행해야 하는 횟수를 나타냅니다. # mysqlslap -a -uroot -p123456
--only-print<br> 실제로 실행하지 않고 테스트 문만 인쇄합니다. --debug-info, -T 메모리 및 CPU 관련 정보를 인쇄합니다. <br>참고: # mysqlslap -a -c 100 -uroot -p123456
테스트 테이블을 생성하고 테스트 데이터를 삽입해야 합니다. 이 mysqlslap은 기본적으로 생성됩니다. 이미 존재하는 경우 먼저 삭제하세요. <br>를 사용하여 실제 테스트 과정을 인쇄할 수 있으며 전체 테스트가 완료된 후에는 데이터베이스에 흔적이 남지 않습니다. <br># mysqlslap -a -i 10 -uroot -p123456
<br>다양한 테스트 매개변수의 예(-p 뒤에 mysql의 루트 비밀번호가 옵니다):
Demo 2:<br>
데모 1:
단일 스레드 테스트. 테스트 결과 <br># mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --iterations=5 --engine=myisam,innodb -uroot -p123456
<br>
데모 2:
🎜
🎜🎜 두 테스트 모두 자동으로 SQL 테스트 스크립트를 생성하고 각각 10번 반복하여 평균을 구합니다. 테스트 환경에는 읽기, 쓰기, 🎜update🎜 혼합 테스트, 자체 증가 필드가 포함되며 테스트 엔진은 innodb입니다. 🎜🎜# mysqlslap –uroot –p –concurrency=500 –I 10 –a –auto-generate-sql-type=mixed –auto-generate-sql-add-autoincrement –engine=innodb –number-of-queries=500🎜 🎜# mysqlslap –uroot –p –concurrency=1000 –I 10 –a –auto-generate-sql-type=mixed –auto-generate-sql-add-autoincrement –engine=innodb –number-of-queries=1000🎜🎜 반환 결과는 다음과 같습니다. 🎜
위의 두 테스트에서 볼 수 있듯이 동시성 볼륨이 500에서 1000으로 변경되면 쿼리 시간이 약 두 배로 늘어납니다.
위 내용은 mysqlslap 스트레스 테스트 mysql에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!