阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

MySQL性能参数配置总结

154次阅读
没有评论

共计 2610 个字符,预计需要花费 7 分钟才能阅读完成。

以下 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_size67108864
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_commit0: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_capacityInnoDB 有后台线程在不断地做 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_binlogMySQL 同步 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_packetMySQL 发送和接受的最大数据包大小,设置过小会导致数据包分裂情况严重。134217728
thread_stack每个连接线程被创建时,MySQL 给它分配的内存大小。262144

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-22发表,共计2610字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中