首页 > 数据库 >一文搞定MySQL性能调优

一文搞定MySQL性能调优

时间:2023-02-16 17:35:22浏览次数:52  
标签:搞定 log 调优 innodb MySQL 磁盘 CPU size

数据库的操作越来越成为整个应用的性能瓶颈,这对于Web应用尤其明显。关于数据库的性能,这并不只是DBA需要关心的,而更是后端开发需要去关注的事情。

所以本文讲解MySQL在各个方面的优化方向,方便后端开发人员在调优和问题排查过程中找到切入点。

1.服务器硬件的优化

提升硬件设备,例如选择尽量高频率的内存(频率不能高于主板的支持)、提升网络带宽、使用SSD高速磁盘、提升CPU性能等。

CPU的选择:

对于数据库并发比较高的场景,CPU的数量比频率重要。
对于CPU密集型场景和频繁执行复杂SQL的场景,CPU的频率越高越好。

2.MySQL数据库配置优化

表示缓冲池字节大小。
推荐值为物理内存的50%~80%。
innodb_buffer_pool_size

用来控制redo log刷新到磁盘的策略。
innodb_flush_log_at_trx_commit=1

每提交1次事务同步写到磁盘中,可以设置为n。
sync_binlog=1

脏页占innodb_buffer_pool_size的比例时,触发刷脏页到磁盘。 推荐值为25%~50%。
innodb_max_dirty_pages_pct=30

后台进程最大IO性能指标。
默认200,如果SSD,调整为5000~20000
innodb_io_capacity=200

指定innodb共享表空间文件的大小。
innodb_data_file_path

慢查询日志的阈值设置,单位秒。
long_qurey_time=0.3

mysql复制的形式,row为MySQL8.0的默认形式。
binlog_format=row

调高该参数则应降低interactive_timeout、wait_timeout的值。
max_connections=200

过大,实例恢复时间长;过小,造成日志切换频繁。
innodb_log_file_size

全量日志建议关闭。
默认关闭。
general_log=0

本文由博客一文多发平台 OpenWrite 发布!

标签:搞定,log,调优,innodb,MySQL,磁盘,CPU,size
From: https://www.cnblogs.com/liuyunshengsir/p/17127524.html

相关文章

  • 两次循环搞定一维数组到多位数组的转换(菜单树生成)
    原数组:constarr=[{id:1,title:'第一层1000',parentId:0},{id:2,title:'第一层2000',parentId:0},{id:3,title:'第二层1100',parentId:1......
  • mysql 修改表
    altertableuser_infoaddschoolvarchar(15)afterlevel;增加列在某列之后altertable增加的表格add增加列的名称数据类型位置(afterlevel在level之后)al......
  • MySQL
    原文链接:https://blog.csdn.net/K346K346/article/details/52106044#2mysql__41、启动MySQL:mysql-u用户名-p密码-P端口-h地址 添加用户:createuser[usernam......
  • MySQL学习
    SQL全称StructuredQueryLanguage,结构化查询语言。操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准。1SQL通用语法SQL语句可以单行或多行书写......
  • mysql学习
    一、事务就是一堆操作,看成一个操作。然后解决可能存在的问题。(1)ACID原则A(Automic)原子性事务里面的操作是一个整体。操作就像原子一样,不可分割C(Consistency)一......
  • 【MYSQL异常处理】记录一次MYSQL数据库断电无法启动异常,错误提示为 ERROR! The server
    某xx项目,系统一直用着好好的,虽然无客户真实数据,但包含许多现场定制配置数据,结果客户突然把服务器给断电关机了,服务器环境大致如下1服务器环境描述:2centos7三台3其中......
  • mysql 占用CPU资源过大原因分析
    输入showprocesslist;命令注意state字段,Sendingdate;Waitingfortables;或各种lock(锁)大概率因为这些sql造成Checkingtable正在检查数据表(这是自动的)。Closing......
  • 如何从MySQL中的当前日期时间减去30天?
    要从当前日期时间中减去30天,首先我们需要获取有关当前日期时间的信息,然后使用now()MySQL中的方法。在now()给出当前日期时间。用于此的方法是MySQL的DATE_SUB()。这是从当......
  • mysql重置自增id
    1、删除表中数据并且重置id这种方法好处是运行速度超快‘truncatetable表名; 2、删除表中数据并且重置id这种方法好处是可以从任何值开始,缺点是如果数据量大的话d......
  • docker离线安装mysql镜像
    docker离线安装mysql镜像1、拷贝mysql离线包安装包地址:链接:https://pan.baidu.com/s/13JfkqlkIMglo3tHImOUm_w密码:622t1.1、将mysql-57.gz安装文件拷贝......