집 >데이터 베이스 >MySQL 튜토리얼 >mysqlslap 스트레스 테스트 mysql에 대한 자세한 소개
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!