MySql 优化

1 简述

  日常工作中,会用到 MySql 做关系型数据库,会进行表设计、写SQL、建索引、存储过程等。那么我们应该遵循什么样的软件使用规则,才能让设计的表结构不会再变更、写过的SQL 无法再优化,没有更好只有最好呢(不考虑业务的变更)。这里简单记录一下 MySql 优化方面的内容。
  既然要使用一款软件,那么与这款软件有牵扯的周边因素都要考虑进去,比如说:运行软件的平台、软件本身、使用软件的人。 维度如下图,平台基本上就是指硬件设备、操作系统,软件本身就是MySql服务,使用的人就是我们这些瞭望江河山还在的开发人员。接下来一起从这几个维度来记录一下应该指定、或许用不上的使用规则。
优化纬度

2 硬件设备

  影响数据库最大的性能问题就是磁盘 I/O,为了提升数据库的 IOPS 性能,可以使用 SSD 或者 PICE-SSD 高速磁盘设备,至少可以获得上百倍或者上万倍的 IOPS 性能提升。如果你细心些,有没有发现使用安装在自己笔记本设备上的 Mysql 进行查询时,速度竟然会比服务器还要快,是不是太不可思议了。

2.1 磁盘方面

  1. 尽可能的使用 SSD 或者 PICE-SSD 高速磁盘设备
  2. 数据库系统 TPS 过高或者业务量较高时,一定要配置阵列卡
  3. 阵列卡一定要配备 cache 模块,cache 模块还要配置 BBU 模块来提供持续电量;
  4. cache 策略选择 Write Back(WB) 可以提高 I/O 写数据性能。
  5. 建议关闭预读功能。

2.2 CPU

  1. CPU 建议采用最大性能模式,选择 performance per watt optimized;
  2. 同时建议关闭 CIS 和 C stats 节能选项;

2.3 内存

  1. 选择最大性能模式,maximum performance ;
  2. 尽量在BIOS 禁掉 NUMA 功能,将Node Interleaving 设置成 Enabled 模式,让内存在多个CPU 节点之间循环使用。

有时候,作为开发人员在硬件选择方面能做的会很少,但是这并不影响我们对完美的追求。

2 MySql 服务

关于 MySql 服务本身配置的优化,能体现的基本上是一些参数的设置。

  1. innodb_buffer_pool_size: 如果服务是单实例且绝大多数是 InnoDB 引擎表,可以设置为物理内存的 50%~80%左右。
  2. innodb_flush_log_
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值