mysql benchmark基准测试

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql benchmark基准测试相关的知识,希望对你有一定的参考价值。

git项目地址:

https://github.com/akopytov/sysbench

利用sysbench很容易对mysql做性能基准测试(当然这个工具很强大,除了测试主流数据库性能,还能测试其它方面,详情自己看官网项目文档)

 

mac上的用法:

一、安装 

brew install sysbench

 

二、先在mysql上创建一个专门的测试数据库,比如test

 

三、利用sysbench先生成测试数据 

sysbench --test=oltp --oltp-table-size=5000000 --oltp-table-name=t_test --mysql-table-engine=innodb --mysql-host=localhost --mysql-db=test --mysql-user=root --mysql-password=*** prepare

上面这一堆的意思,是在本机localhost的test数据库的t_test中创建500万条测试数据,表的数据库引擎为innodb.

tips:如果想知道还有哪些参数可用,可输入命令

sysbench --test=oltp help

   

四、运行测试

sysbench --test=oltp --oltp-table-size=5000000 --oltp-table-name=t_test --mysql-table-engine=innodb --mysql-host=localhost --mysql-db=test --mysql-user=root --mysql-password=*** run

最后一个prepare改成run就行了,测试完后,会输出类似以下结果:

sysbench 0.4.12:  multi-threaded system evaluation benchmark

No DB drivers specified, using mysql
Running the test with following options:
Number of threads: 1

Doing OLTP test.
Running mixed OLTP test
Using Special distribution (12 iterations,  1 pct of values are returned in 75 pct cases)
Using "BEGIN" for starting transactions
Using auto_inc on the id column
Maximum number of requests for OLTP test is limited to 10000
Threads started!
Done.

OLTP test statistics:
    queries performed:
        read:                            140000
        write:                           50000
        other:                           20000
        total:                           210000
    transactions:                        10000  (514.48 per sec.)
    deadlocks:                           0      (0.00 per sec.)
    read/write requests:                 190000 (9775.14 per sec.)
    other operations:                    20000  (1028.96 per sec.)

Test execution summary:
    total time:                          19.4371s
    total number of events:              10000
    total time taken by event execution: 19.3581
    per-request statistics:
         min:                                  1.65ms
         avg:                                  1.94ms
         max:                                 13.48ms
         approx.  95 percentile:               2.34ms

Threads fairness:
    events (avg/stddev):           10000.0000/0.00
    execution time (avg/stddev):   19.3581/0.00

一般我们比较关心:

    transactions:                        10000  (514.48 per sec.)

    read/write requests:                 190000 (9775.14 per sec.)

这代表每秒能处理的事务数,以及每秒的读写次数。

 

五、清理测试数据

sysbench --test=oltp --oltp-table-size=5000000 --oltp-table-name=t_test --mysql-table-engine=innodb --mysql-host=localhost --mysql-db=test --mysql-user=root --mysql-password=*** cleanup

最后一个换成cleanup即可。 

 

春晚实在太无聊了,还不如写二行代码有意思,祝各位园友猴年大吉,身体健康,心想事成!

以上是关于mysql benchmark基准测试的主要内容,如果未能解决你的问题,请参考以下文章

使用JMH做Benchmark基准测试

Go语言基准测试(benchmark)三部曲之一:基础篇

解读 ruby​​ 的基准测试结果:Benchmark.bm 和 Benchmark.bmbm 的区别

MySQL基准测试--原因,策略,思路

PHP Framework MVC Benchmark 基准测试

如何对你的Python代码进行基准测试