Mysql性能调优

一、数据访问概述

一个互联网应用,访问数据库的流程大致如下:
在这里插入图片描述
根据此流程,进行各个节点的优化

1 选用分布式缓存

如:redis、memcache

2 选用ORM框架

选用ORM框架,如mybatis、hibernate,开启ORM层缓存

3 分库分表中间件

合理配置分库分表中间件,比如合理设置分库分表键,比如对同一个用户的数据,最好落到同一个库里。尽量避免跨库跨表操作数据。

4 数据库连接池

使用数据库连接池,避免大量的创建连接、销毁连接的开销。如Druid

5 选用合适的存储引擎

各种mysql存储引擎简介,传送门

6 SQL优化

各种SQL优化方案,传送门

2、MySQL性能调优

2.1 关键性指标

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

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

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

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

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

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

TPS = (Com_commit + Com_rollback) / Seconds
这个公式有两个状态变量,分别代表提交次数和回滚次数,Seconds 就是我们定义的时间间隔。

2.2 数据库参数配置优化

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

可以使用该命令查看MySQL的默认配置:

show global variables
show global variables like '%max_connections%'
2.2.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。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值