Mysql性能有哪些调优与测试的方法

  

本文主要给大家介绍Mysql性能有哪些调优与测试的方法,文章内容都是笔者用心摘选和编辑的,具有一定的针对性、对大家的参考意义还是比较大的、下面跟笔者一起了解下Mysql性能有哪些调优与测试的方法吧。

一、关键性指标

在数据库性能评测中,有几项指标很重要,用它来评估数据库的能力,不是他们能起着多么关键的作用,而是他们能够较为明确的代表数据库在某些方面的能力。

1。IOPS

IOPS:每秒输入/输出操作,每秒处理的IO请求次数。
我们知道I/O就是磁盘的读写能力,比如每秒读300,写200,这个即数据的吞吐量(I/O能力的另一个关键指标),但是IOPS指的可不是读写的数据吞吐量,IOPS指的是每秒能够处理的I/O请求次数。

如果想I/O系统响应够快,那么IOPS越高越好,因为IOPS和硬件有关,所以,要提高IOPS,就目前来看基本只能拼硬件,传统方案是使用多块磁盘通过突袭条带后,使I/O读写能力获得提升,我们也可以使用固态硬盘SSD来提升IOPS,不过固态硬盘成本可能比较大。

2。每秒

每秒:每秒查询,每秒请求(查询)次数。
这个参数非常重要,可以直观的反映系统的性能,这就像IOPS衡量磁盘每秒钟能接收多少次请求。

我们可以在MySQL命令行模式下执行地位命令,返回的最后一行输出信息中就包含每秒指标。

3。TPS

TPS:每秒事务,每秒事务数。
TPS参数MySQL原生没有提供,如果需要我们自己算,可以利用计算的公式:

 TPS=(Com_commit + Com_rollback)/秒

这个公式有两个状态变量,分别代表提交次数和回滚次,数秒就是我们定义的时间间隔。

二,TPCC测试关键性指标

TPCC-MySQL由Percona基于TPCC规范开发的一套MySQL基准测试程序,我们使用这套工具来测试前面的三个重要指标。

1。TPCC工具安装及使用

具体的安装,可以看这这两篇博文mysql压力测试工具tpcc-mysql安装测试使用,mysql性能测试-tpcc, TPCC更能模拟线上业务。

三,数据库参数配置优化

如果数据库参数配置合理,则可以大大的提高运行效率,即最大化利用系统资源。

1。连接相关参数

1.1 max_connections

max_connections:指定mysql服务端最大并发连接数,值得范围从1 ~ 10万,默认值为151。
这个参数非常重要,因为它决定了同时最多能有多少个会话连接到MySQL服务。设定该参数时,根据数据库云服务器的配置和性能,一般将参数值设置在500 ~ 2000年都没太大的问题。

1.2 max_connect_errors

max_connect_errors:指定允许连接不成功的最大尝试次数,值得范围从1 ~ 2 ^ 64年之间,在5.6.6版本默认值是100 .

一定不要忽视这个参数,如果尝试连接的错误数量超过该参数指定值,则云服务器就不再允许新的连接,没错,就是拒绝连接,尽管MySQL仍在提供服务,但无法创建新的连接了。可以使用冲洗主机,使状态清零或重新启动数据库服务,不过这个代价太高了,一般不会这么干,所以,这个参数的默认值太小,这里建议将之设置为10万以上的量级。

1.3 interactive_timeout和wait_timeout

这两个参数都与连接会话的自动超时断开有关,前者用于指定关闭交互连接前等待的时间,后者用于指定关闭非交互连接前的等待时间,单位均是秒,默认值均为28800,即8个小时。

1.4 skip-name-resolve

skip-name-resolve:可以将其简单的理解为禁用DNS解析,注意啊,这个是服务端的行为,连接时不检查客户端主机名,而只使用IP。如果制定了该参数,那么在创建用户及授予权限时,主机列必须是IP而不能是主机名。建议启用该参数,对于加快网络连接有一定的帮助,等于是跳过了主机名的解析。

1.5 back_log

back_log:指定MySQL连接请求队列中存放的最大连接请求数量,在5.6.6版本之前,默认是50个,最大值不超过65535年。在5.6.6版本之后,默认值为1,表示由MySQL自动调节,所谓自行调节其实也有规则,即50 + (max_connections/5)。

该参数主要应对短时间内有大量的连接请求,MySQL主线程无法及时为每一个连接请求分配(或创建)连接的线程,怎么办呢,它也不能直接拒绝,于是就将一部分请求放到等待队列中待处理,这个等待队列的长度就是back_log的参数值,若等待队列也被放满了,那么后续的连接请求才会被拒绝。

2。文件相关参数

2.1 sync_binlog

sync_binlog:指定同步二进制日志文件的平率,默认为0。
如果要性能,则指定该参数为0,为了安全起见则指定该参数值为1 .

Mysql性能有哪些调优与测试的方法