query_cache_type = 0

关闭mysql查询缓存功能

query_cache_size = 0

用于缓存sql语句查询结果的缓冲区大小,在一次查询之后,会将查询结果缓存,如果涉及到的表未发生变化,在下次查询时,直接在缓存取结果,如果涉及到的表发生变化,将和该表对应的全部缓存失效。在插入或者更新很多的系统,由于>缓存失效带来的影响可能会超过缓存带来的收益,所以可以根据业务特点选择禁用缓存。

tmp_table_size = 32M

临时表大小,默认32M,如果做很多高级groupby操作,适当增加这个值。

innodb_additional_mem_pool_size = 16M

这个参数用来设置 InnoDB 存储的数据目录信息和其它内部数据结构的内存池大小

IO相关参数:

innodb_log_file_size = 256M

控制单个事物日志文件大小,如果业务繁忙,大log文件会带来较好的性能,一般事物文件应当可以记录服务器一个小时左右时间的事物,但是在崩溃恢复时需要更久时间。事物日志是循环使用的,写满一个就会使用下一个。

事物日志并不是直接写入到日志文件中,而是先写入到缓冲区,缓冲区大小由innodb_log_buffer_size控制。

innodb_log_buffer_size = 32M

事务日志所用缓冲区大小,一般情况下,不需要设置非常大,因为一般1秒钟就会进行一次刷新到磁盘的操作,缓冲区一般只要可以保存至少1秒钟的事物就足够了。适当增大可以提高性能,但是一般情况下32M-128M就已经可以了。

innodb_log_files_in_group:

控制事物日志文件的个数,事物日志总大小=innodb_log_file_size * innodb_log_files_in_group

innodb_flush_log_at_trx_commit = 2 # may change to 2 or 0

刷新事物日志的频繁程度,对性能的影响比较大。

0 表示每秒钟进行一次log写入到cache,并刷新cache到磁盘,在事务提交时并不会进行任何操作,在mysql崩溃时,会丢失一秒钟的事务。

1 默认值,表示在每个事物结束后,都会执行log写入cache,并将cache flush到磁盘,这是最安全的设置,保证不会丢失任何已提交的事务,除非操作系统或者磁盘做了伪刷新,这个值性能是最差的。

2 建议值,表示每次事务提交后,将log写入cache,每秒钟将cache刷新到磁盘。

0 与 2 的区别在与,如果mysql进程崩溃,设置为2不会丢失任何数据,只有服务器宕机才会丢失一秒钟的数据。

在myisam中delay_key_write控制缓冲数据什么时候刷到磁盘文件中.

off: 表示关闭延迟键写入,每次写操作后刷新数据到磁盘文件中,最安全也是性能比较差的选项。

on: 只对建表时指定了delay_key_write的选项的表进行延迟刷新。

all: 对所有myisam表都使用延迟键写入。

如果启用了延迟刷新,服务器崩溃时候,有数据没有刷新到磁盘,将会导致myisam索引文件的损坏,则需要使用repair table 对损坏的表进行修复。

innodb_flush_method = O_DIRECT

避免操作系统和innodb对数据的双重缓冲,对linux设置为O_DIRECT

innode_file_per_table = 1

控制innodb如何使用表空间,如果设置这个参数,会为每个表建立一个单独的表空间,否则会将所有表的数据放在系统表空间,强烈建议启用这个参数。

innodb_doublewrite = 1

控制innodb是否使用双写缓存,主要用于避免页没有写完整导致的数据损坏,会对性能有些影响但是提高了数据安全性。

max_connections = 1024

最大连接数,如果同时连接mysql的程序很多,需要对应增加这个参数的值,比如2000,具体值根据应用环境定。

内存相关参数:

sort_buffer_size = 2M

排序缓冲区大小,定义了每个线程使用的排序缓冲区的大小,不是为每个连接都分配这个缓冲区,只有当连接查询需要排序操作时才进行分配。

与connection相关,每个connection 需要使用这个buffer时,一次分配指定缓冲大小的全部内存,不管改排序是否需要这么大的内存,不是越大越好,过大的值在连接过多的时候会耗尽系统资源。

join_buffer_size

join操作用到的buffer的大小,如果一个查询join了多张表,就会为每个join分配一个缓冲区,不宜过大。

read_buffer_size

对myisam(不确定是不是不包含innodb)表进行全表扫描时,读缓冲池的大小,只会在有查询需要时才会一次性分配该参数制定的大小的内存,一定要是4k的倍数。

顺序读读入缓冲区大小,如果顺序读请求频繁,可以增加这个值.

read_rnd_buffer_size

控制索引缓冲区的大小,只有在有查询需要时,才会为该缓存区分配内存,并且分配需要的内存大小而不是参数指定的内存大小(和上面三个不一样?),随机读(查询)缓冲区大小,需要排序大量数据时,增大该值可以避免进行磁盘搜索,提高速度。

以上四个参数都是对线程而言,如果一个数据库线程数很多,以上四个参数设置过大,很有可能造成内存溢出,导致服务器崩溃。

缓冲池大小参数:

innodb_buffer_pool_size = 1G # (adjust value here, 50%-70% of total RAM)

对innodb性能影响很大,innodb缓冲不仅要缓冲索引还要缓冲数据,锁,以及其他内部数据结构,同时还使用缓冲池帮助延迟写入以合并多个写入操作,一起顺序写入磁盘,innodb性能严重有依赖缓冲池。但是过大的缓冲池会影响数据库关闭时的速度,在数据库关闭时,需要更多时间将缓冲中的数据刷新到磁盘。

缓冲池是用来在内存中缓存数据和索引的区域,它用来将经常使用的数据缓存在内存,这个值可以设置为50%-70%的内存值,并且innode_buffer_pool_size=innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances,mysql官方文档在这里。

总内存 - (每个线程使用的内存数 * 连接数)- 系统保留内存

key_buffer_size = 32M

用于索引的缓冲区大小,增加可以获得更好的索引处理性能。

主要用于myisam存储引擎,myisam存储引擎只会缓存索引,数据的缓存依赖与操作系统。

使用select sum(index_length) from information_schema.tables where engine = "myisam"获取myisam表索引占据的空间大小。

及时数据库中所有表都是使用innodb存储引擎,还是要为这个值制定一部分缓冲空间,因为系统表还在使用myisam存储引擎。

安全相关参数:

expire_log_days:

制定自动清理binlog天数,如果启用了binlog,则应该打开这个选项,让服务器在制定的天数之后自动清理旧的日志。至少覆盖两次全备的天数,如果每天全备,则至少保存7天左右。

max_allowed_packet = 33554432 # 32M

mysql接受的最大包的大小,也会影响用户定义的最大变量的大小。如果主从复制,主从的大小应该一致。

网络中一次传输量的最大值

skip_name_resolve

禁用DNS查找

sysdate_is_now

确保sysdate()函数和now()函数返回的结果一致

read_only

主从复制的从库中启用,禁止没有super权限的用户的数据变更操作,只接受主库中传输过来的数据变更,对保证主从复制数据的一致性很有用。

skip_slave_start

禁用slave自动恢复,阻止mysql在启动后自动进行复制,在服务器崩溃重启后,检查服务器无问题后,再手动启动复制。

sql_mode

设置mysql所使用的sql模式

strict_trans_tables如果给定的数据不能插入到事务型存储引擎中,则会中断当前操作,对非事务存储引擎,该参数无任何影响。

no_engine_subtition 在建表语句中制定的存储引擎不可用的情况下,不会使用默认存储引擎建立表。

no_zero_date 禁止0000年00月00日这样的日期写入到日期字段。

no_zero_in_date 不接受部分日期为0的日期。

only_full_grouy_by 分组查询中,groupby 将所有没有聚合函数的列列出,否则报错。

生产环境不要轻易改动这个值,否则可能造成应用程序出错。

max_connect_errors = 512

如果客户端尝试连接,错误次数超过此限制,则拒绝连接。

thread_cache_size = 128

表示可以重新利用,放在缓存的线程数量,根据服务器内存大小进行调整。

其他参数

sync_binlog

控制MySQL怎么刷新二进制日志到磁盘

0 默认值, 表示MySQL并不会主动刷新日志到磁盘,而是有操作系统决定何时刷新日志到磁盘

其它大于0的值,表示两次刷新到磁盘之间间隔多少次二进制日志的写操作,如果设置为1表示每次写二进制日志都刷新到磁盘,对于主从复制的主库,建议设置为1,这样每次事务之后都会进行磁盘写操作,以保证数据安全 。

tmp_table_size和max_heap_table_size

控制使用memory引擎的内存临时表能使用内存大小,如果内存临时表大小超过了指定的大小,将转换为磁盘临时表,这两个值应当保持一致,并且不要过大。

ref: https://blog.csdn.net/orichisonic/article/details/48026031

http://mysql.rjweb.org/doc.php/memory

mysql forward_only_mysql参数调优相关推荐

  1. mysql配置参数调优(8GB内存和64GB内存)

    文章目录 一.前言 二.查看服务器的CPU和内存 1.查看CPU的个数 2.查看服务器的内存 3.数据库版本 三.64GB内存的mysql配置参数 四.本机8GB内存的mysql配置参数 1.查看数据 ...

  2. mysql性能参数调优

    1 优化连接池 连接池运行机制 MySQL连接器中的连接池,用以提高数据库密集型应用程序的性能和可扩展性,默认启用.MySQL连接器负责管理连接池中的多个连接,自动创建.打开.关闭和破坏连接,多个连接 ...

  3. php+php-fom+nginx配置参数调优详解

    文章目录 一.前言 1.mysql配置参数: 2.注意 二.php参数配置及讲解 1.phpini的基本设置 2.php参数设置 三.php-fpm设置 1.设置子进程数,增加并发量 2.防止频繁出现 ...

  4. MySQL 数据库规范--调优篇(终结篇)

    前言 这篇是MySQL 数据库规范的最后一篇--调优篇,旨在提供我们发现系统性能变弱.MySQL系统参数调优,SQL脚本出现问题的精准定位与调优方法. 目录 1.MySQL 调优金字塔理论 2.MyS ...

  5. 【MySQL】——mysql系列之参数调优

    [前言] mysql调优视频学习:https://www.bilibili.com/video/av49548134/?p=1 一.mysql调优 数据库优化一方面是找出系统的瓶颈,提高MySQL数据 ...

  6. linux mysql数据库优化_MySQL_Linux下MySQL数据库性能调优方法,以下的环境具备一定的代表性 - phpStudy...

    Linux下MySQL数据库性能调优方法 以下的环境具备一定的代表性,可以说是中小企业一般配置和工作环境.希望通过本文能让大家理解Linux下MySQL数据库性能调优方法. 硬件准备环境: 硬盘: 1 ...

  7. MySQL多线程并发调优

    学习MySQL数据库技术,一个非常重要的技能就是性能调优.通常情况下,都是自下而上的调优方法,主要包括运行环境.配置参数.SQL性能和系统架构设计调优等. 本文从多线程并发的角度进行的思考,简单描述M ...

  8. 由美团技术文章整理---spark性能优化基础篇--开发调优与资源参数调优

    文章地址1:Spark性能优化指南--基础篇 - 美团技术团队 文章地址2:Spark性能优化指南--高级篇 - 美团技术团队 目录 一.关于性能优化基础篇--开发调优 1.避免创建重复RDD (1) ...

  9. CPU-IO-网络-内核参数调优

    一. 有关使用CPU资源的调优 1. nice概述 在LINUX系统中,Nice值的范围从-20到+19(不同系统的值范围是不一样的),正值表示低优先级,负值表示高优先级,值为零则表示不会调整该进程的 ...

最新文章

  1. javascript刷新页面的集中办法
  2. SpringBoot整合Druid数据源
  3. ASP.NET MVC 4高级编程(第4版)
  4. Java RandomAccessFile getFilePointer()方法与示例
  5. 编译安装的mysql如何更改文件路径
  6. 以太网的分层架构_以太网矩阵(Ethernet Fabric)简介
  7. Lunix服务器上项目迁移命令
  8. 联想y430完全拆机图解_联想Y430P笔记本拆机加内存和SSD图文教程
  9. 中国建设工程造价管理系统 http://zaojiasys.jianshe99.com/cecaopsys/
  10. 虚拟光驱打开.bin 文件
  11. 图形形状及颜色识别【Python大作业】
  12. Flutter 数据持久化
  13. R 中将图表导出成文件
  14. AD19--快速画原理图库文件、PCB库文件(以TL072为例)
  15. layui tpl中的if(){}else{}
  16. E4G刷Linux,易视宝E4-G 全志A20 刷机 armlinux ubuntu server 教程
  17. Vue调用本地摄像头权限
  18. php iphone壁纸,iphone 壁纸尺寸 PHP 图像尺寸调整代码
  19. 一劳永逸 让你与IE弹出窗口彻底告别
  20. 【Java网络编程与IO流】Http协议详解以及面试有关问题

热门文章

  1. 大唐移动android面试题,大唐移动面试经验
  2. IEEEXTREME15.0 游记
  3. 发一个mir2的内挂代码
  4. yocto编译错误- Error executing a python function in exec_python_func() autogenerated
  5. android电梯程序设计,[源码和文档分享]基于Android实现的电梯调度模拟
  6. LeetCode刷题日记盛最多水的容器
  7. c语言2级考试题下载,C语言二级考试题库
  8. Sass是什么?Sass优点和缺点
  9. 项目导入阿里字体图标库
  10. Proxy ARP--即ARP代理