前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL性能参数配置总结

MySQL性能参数配置总结

作者头像
星哥玩云
发布2022-08-17 20:16:53
6860
发布2022-08-17 20:16:53
举报
文章被收录于专栏:开源部署开源部署

以下List是我们常见的MySQL参数配置,这个参数对提高实例的性能大有裨益。

其中 建议设置值,仅供参考,需要根据自己的业务场景和硬件资源仔细推敲。

参数

设置说明

建议设置值

lower_case_table_names

大小写敏感:此参数不可以动态修改,必须重启数据库:0.表名存储为给定的大小和比较是区分大小写的1.表名存储在磁盘是小写的,但是比较的时候是不区分大小写 2.表名存储为给定的大小写但是比较的时候是小写的

0

max_connections

最大链接数据

2000

max_connect_errors

某一客户端链接失败的情况下尝试连接MySQL服务器最大尝试次数

100

sort_buffer_size

排序缓冲增加sort_buffer_size值可以加速ORDER BY或GROUP BY操作 想要加快ORDER BY的速度,首先看是否可以让MySQL使用索引而不是额外的排序阶段

8388608

join_buffer_size

联合查询缓冲此缓冲被使用来优化全联接(FULL JOINS 不带索引的联接),类似的联接在极大多数情况下有非常糟糕的性能表现,但是将此值设大能够减轻性能影响。如果全局大小比使用它的大多数查询都大,那么内存分配时就会导致性能下降

8388608

tmp_table_size

规定了内部内存临时表的最大值,每个线程都要分配。这两个参数是mysql对临时表的大小控制,tmp_table_size 控制内存临时表的最大值,超过限值后就往硬盘写,写的位置由变量 tmpdir 决定;max_heap_table_size 用户可以创建的内存表(memory table)的大小.这个值用来计算内存表的最大行数值。

67108864

max_heap_table_size

67108864

innodb_buffer_pool_size

innodb缓冲池,用来缓存InnoDB索引页面、Undo页面以及一些其它辅助数据。

一般为物理内存的75%-85%

innodb_buffer_pool_instances

将InnoDB缓冲池划分为多个实例适当地增加该参数,可以提升InnoDB的并发性能。通过这个参数,把原来一整块Buffer Pool分割为多块内存空间,每个空间独立管理自己的空闲链表、刷新链表、LRU及其它数据结构。

innodb_buffer_pool_dump_pct

InnoDB缓存池预热恢复buffer pool中百分比数据

40

innodb_flush_log_at_trx_commit

0:log buffer每秒一次写入log file,并且log file的flush(刷到磁盘)操作同时进行。该模式下在事务提交的时候,不会主动触发写入磁盘的操作。1:每次事务提交时MySQL都会把log buffer的数据写入log file,并且flush(刷到磁盘)中去,该模式为系统默认。2:每次事务提交时MySQL都会把log buffer的数据写入log file,但是flush(刷到磁盘)操作并不会同时进行。该模式下,MySQL会每秒执行一次 flush(刷到磁盘)操作

1

slow_query_log

开启慢查询日志,默认关闭.

1

log_slow_slave_statements

记录由Slave所产生的慢查询,默认值OFF。

1

log_queries_not_using_indexes

将没有使用索引的SQL语句记录到慢查询日志文件中,默认值OFF。

1

log_throttle_queries_not_using_indexes

来限制每分钟可以写入慢查询日志的数量。

10

long_query_time

慢查询超时时间,默认10秒修改为1秒。

1

thread_cache_size

重用保存在缓存中线程的数量:如果Threads_created值过大MySQL服务器一直在创建线程,比较耗资源,可以适当增加配置文件中thread_cache_size值。缓存命中率:Thread_Cache_Hit = (Connections - Threads_created) / Connections * 100%;

256

innodb_io_capacity

InnoDB有后台线程在不断地做Flush操作,影响这个操作频率的就是这个innodb_io_capacity参数。如果碰到系统因为后台Flush操作而产生周期性性能降低的情况,特别是在使用SSD设备的时候,可以适当提高这个参数的值,以加速Flush的频率。(但 For systems with individual 5400 RPM or 7200 RPM drives, you might lower the value to the former default of 100.)

32768 (SSD 配置)

innodb_thread_concurrency

在并发量大的实例上,增加这个值,可以降低InnoDB在并发线程之间切换的花销,以增加系统的并发吞吐量。

32

slave_parallel_workers

在进行多线程复制的时候,如果设置此参数为非零值,则可以打开多线程并发执行回放日志的操作,以提升Slave的同步性能。

16

sync_binlog

MySQL 同步Binlog到磁盘的方式。1 最安全,但性能较差,每一个事务提交时,MySQL都会把Binlog刷新到磁盘中;0性能最好,但不安全。事务提交时,MySQL将Binlog信息写入到Binlog文件(OS Cache)中,但是MySQL不控制Binlog的刷盘操作,由文件系统自己控制其缓存的刷新

0

tx_isolation

设置MySQL的隔离级别,读未提交(read-uncommitted);不可重复读(read-committed);可重复读(repeatable-read);串行化(serializable)。这四种级别越来越严格。

REPEATABLE-READ

binlog_order_commits

事务在提交的时候写入Binlog的顺序。这是把双刃剑,如果打开可以保证事务都以相同的顺序写入二进制文件,如果关闭则可以提升性能。需要根据实际情况决定。

on

max_allowed_packet

MySQL发送和接受的最大数据包大小,设置过小会导致数据包分裂情况严重。

134217728

thread_stack

每个连接线程被创建时,MySQL给它分配的内存大小。

262144

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档