innodb_io_capacity

描述:

此参数用于控制InnoDB引擎刷脏页的速度,数据变更只记录到内存还未写入到磁盘的数据页称为脏页;把内存页数据写入到磁盘的过程,称为刷脏页(flush)。若刷脏页速度太快超过磁盘的IO写入能力,或者磁盘IO能力很高但刷脏页速度设置得太低,都会影响数据库的性能。

默认值:

200

建议值:

设置成磁盘的 IOPS,磁盘的 IOPS 可以通过 fio 这个工具来测试,命令:

fio -filename=$filename -direct=1 -iodepth 1 -thread -rw=randrw -ioengine=psync -bs=16k -size=500M -numjobs=10 -runtime=10 -group_reporting -name=mytest

innodb_flush_neighbors

描述:

若开启此参数,在刷某个脏页时,如果它旁边的内存页也是脏页,就会连带把它一起刷掉,而且这个把“邻居”拖下水的逻辑还可以继续蔓延。

默认值:

8.0(不含)版本之前默认为ON

建议值

若使用机械硬盘建议设为ON,可以减少随机IO;若是SSD建议设为OFF

innodb_stats_on_metadata

描述:

若开启此参数,在执行SHOW TABLE STATUS命令或访问INFORMATION_SCHEMA库里的表时,会更新InnoDB数据表的统计信息,更新过程可能会导致大量读盘操作,占用InnoDB buffer pool,从而影响数据库性能。

参阅:https://www.iteye.com/blog/dinglin-1575840

默认值:

5.6.5(含)之前版本默认是为ON

建议值:

OFF

innodb_file_per_table

描述:

若关闭此参数,InnoDB表的数据会存放在共享表空间(ibdata1文件)里;
若开启此参数,每个 InnoDB 表数据存储在一个以 .ibd 为后缀的文件中;

默认值:

5.6.5(含)之前版本默认是为OFF

建议值:

若数据放在共享表空间里,即使把数据表删除,MySQL也不会释放磁盘空间,为了方便回收空间,建议设为ON

innodb_deadlock_detect

描述:

自动检测事务之间的死锁,若检测到死锁,InnoDB会回滚其中一个事务并报错(1213 - Deadlock found when trying to get lock; try restarting transaction),这样另外一个事务就可以继续执行下去

默认值:

ON

建议值:

ON。自动检测是有性能代价的,如果锁的冲突很严重,例如经常会出现几百个事务同时更新同一行的情况,这种情况开启自动检测反而会增加机器CPU负担,此时可以考虑关闭,仅依靠等待锁超时innodb_lock_wait_timeout来处理。

innodb_lock_wait_timeout

描述:

等待行锁的超时时间,超时后放弃执行当前语句并报错(1205 - Lock wait timeout exceeded; try restarting transaction),但InnoDB默认情况下并不会自动回滚当前事务,若需要自动回滚,可以把innodb_rollback_on_timeout设置为ON

默认值:

50

建议值:

根据业务可以忍受的超时时间设置

innodb_flush_log_at_trx_commit

描述:

每次执行事务后的redo log持久化策略。
0:每次事务提交时都只把redo log留在redo log buffer中(MySQL崩溃或系统崩溃重启会导致丢数据)

InnoDB 有一个后台线程,每隔 1 秒,就会把 redo log buffer 中的日志,调用 write 写到文件系统的 page cache,然后调用 fsync 持久化到磁盘,因此设置为0时,最严重会丢失1秒钟的日志数据。

1:每次事务提交时都将redo log持久化到磁盘(不会丢数据)
2:每次事务提交时都只把redo log写到系统的page cache(系统崩溃重启会丢数据)

默认值:

1

建议值:

只考虑性能,不考虑数据安全性建议设置为0;
不考虑性能,只考虑数据安全性建议设置为1;
两者兼顾建议设置为2;

sync_binlog

描述:

每次执行事务后的binlog持久化策略。
0:表示每次提交事务都只write到系统page cache,不fsync到磁盘
1:表示每次提交事务都会执行fsync
N>1:表示每次提交事务都write,但累积N个事务后才fsync

默认值:

0

建议值:

在出现 IO 瓶颈的场景里,将 sync_binlog 设置成一个比较大的值,可以提升性能。在实际的业务场景中,考虑到丢失日志量的可控性,一般不建议将这个参数设成 0,比较常见的是将其设置为 100~1000 中的某个数值。
但是,将 sync_binlog 设置为 N,对应的风险是:如果主机发生异常重启,会丢失最近 N 个事务的 binlog 日志。
sync_binlog 设置为1,可以保证binlog不丢失,但对性能有影响。

开启慢日志

开启慢日志记录功能,可以方便我们针对慢SQL语句进行监控和及时优化:

slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 2

详情参阅这里

skip_name_resolve

描述

禁用IP反向解析主机名。不禁止的话,每次客户端连接后,MySQL都会根据客户端的IP去查询对应的主机名,如果这个查询过程很缓慢的话,会导致建立连接缓慢。详情参阅这里

注:在禁用后,MySQL用户授权表中的host字段就不能够使用域名而只能够使用IP地址了

默认值

不禁用

建议值

禁用

MySQL参数优化总结相关推荐

  1. Mysql性能优化、Mysql参数优化、Mysql配置优化

    码字不易,转载请附原链,搬砖繁忙回复不及时见谅,技术交流请加QQ群:909211071 Mysql性能优化.Mysql参数优化.Mysql配置优化.Mysql参数优化对于不同的网站,及在线量等,以及机 ...

  2. MySQL系列之优化——1.优化哲学、2. 优化工具的使用、3. 优化思路分解、4. MySQL参数优化测试、5.1 参数优化、6. 参数优化结果、7. 锁的监控及处理、8. 主从优化

    文章目录 1.优化哲学 1.1 为什么优化? 1.2 优化风险 1.3 谁参与优化 1.4 优化方向 1.5 优化的范围及思路 优化效果和成本的评估: 2. 优化工具的使用 2.1 系统层面的 2.1 ...

  3. mysql参数优化51cto_超详细MySQL数据库优化

    前言 数据库优化一方面是找出系统的瓶颈,提高MySQL数据库的整体性能,而另一方面需要合理的结构设计和参数调整,以提高用户的相应速度,同时还要尽可能的节约系统资源,以便让系统提供更大的负荷. 1. 优 ...

  4. Linux记录-mysql参数优化

    1.参数优化 show variables like '' /etc/my.cnf [mysqld] Max_connections =1024 #请求的最大连接数 back_log =1024 #m ...

  5. mysql参数优化步骤_MySQL架构优化实战系列4:SQL优化步骤与常用管理命令2(转)

    MySQL架构优化实战系列4:SQL优化步骤与常用管理命令 原文:http://dbaplus.cn/news-11-649-1.html 一.SQL语句优化步骤 1.查看MySQL状态及配置 sho ...

  6. linux 内核参数优化 mysql_Linux记录-mysql参数优化

    1.参数优化 show variables like '' /etc/my.cnf [mysqld] Max_connections =1024 #请求的最大连接数 back_log =1024 #m ...

  7. mysql 参数优化配置

    网站访问量大 怎样优化mysql数据库 MySQL优化的一些建议,单机MySQL的优化我分为三个部分,一是服务器物理硬件的优化,二是 MySQL安装时的编译优化,三是自身配置文件my.cnf的优化:如 ...

  8. mysql参数优化和硬件优化等分享

    innodb参数调优最主要的地方: innodb 最重要的参数就是buffer_pool,这个对innodb有着决定性的作用,再者就是buffer_log的大小,脏页的大小,加载谷歌优化的innodb ...

  9. 浅谈Mysql参数优化

    MySQL优化 优化哲学 1.1 优化有风险 1.2 优化的范围 存储.主机和操作系统: 主机架构稳定性 I/O规划及配置 Swap OS内核参数 网络问题 应用 :(Index,lock,sessi ...

最新文章

  1. 使用cmd将磁盘转化为GPT格式
  2. Spring嵌套事务控制
  3. linux apache 2.2下载,Linux下的Apache 2.2.* SSL证书安装
  4. ITK:在签名图像中找到零交叉点
  5. mono for android 使用Tab 控件
  6. linux头文件怎么编译,microsoft编译器怎么使用Linux头文件
  7. Mobvista首席架构师蔡超:工作感悟之失败与成功,我的8点总结
  8. 算法导论 思考题6-2
  9. 达观杯文本智能处理(2)
  10. php laravel 相关收集
  11. matlab2016a网盘
  12. 综合支撑【恶灵附身 Psycho Break】的世界观的概念艺术
  13. easypoi插入超链接
  14. flyingsaucer转换多个html,java - 使用FlyingSaucer将包含阿拉伯字符的HTML页面转换为PDF - 堆栈内存溢出...
  15. java white case语句_JAVA基础(一)
  16. 05-SA8155 QNX I2C框架及代码分析
  17. C语言数据结构——广义表
  18. 利用JS写一个计算平方的网页
  19. 【从0到1搭建LoRa物联网】1、LoRa物联网的架构
  20. goland 使用 gorm 执行 存储过程 : go语言 执行存储过程

热门文章

  1. chatGPT聊天记录:小王子与玫瑰
  2. 初等模型---核军备竞赛
  3. 7.连连看的数据结构与算法(数组存储和图的邻接矩阵存储)。
  4. CORS 跨域解决方案
  5. 服务器被黑客攻击了,如何去处理?
  6. TP-LINK好?还是去美团做共享单车
  7. 苹果手机充电口接触不良怎么办_成都iPhone手机充电口接触不良怎么办
  8. micropython常用模块有那个_Python常用模块,不明觉厉先马后看
  9. C# 用VScrollBar控制webbrowser的滚动条
  10. 数据表中通过关联查询到每个外键ID所指的name以及其他属性