mysql 那些事-配置优化

2019-06-28  本文已影响0人  空_a820

根据系统和数据合理配置mysql参数,如:缓存大小、排序空间大小等

max_connections 最大连接数

back_log 暂存的连接数

wait_timeout:指的是MySQL再关闭一个非交互的连接之前所需要等待的秒数。

interative_timeout:指的是关闭一个交互的连接之前所需要等待的秒数。

key_buffer_size 索引缓冲区的大小

query_cache_size(查询缓存简称QC)

show status like 'Qcache%' 可以知道query_cache_size的设置是否合理

    Qcache_free_blocks:内存块的个数

    Qcache_free_memory:Query Cache 中目前剩余的内存大小

    Qcache_hits:表示有多少次命中缓存

    Qcache_inserts:表示多少次未命中而插入

    Qcache_lowmen_prunes:多少条Query因为内存不足而被清除出Query Cache

    Qcache_queries_in_cache:当前Query Cache 中cache的Query数量

    Qcache_total_blocks:当前Query Cache中block的数量

query_cache_limit:超出此大小的查询将不被缓存

query_cache_min_res_unit:缓存块的最小大小

query_cache_type:缓存类型

max_connect_errors:阻止过多尝试失败的客户端以防止暴力破解密码

sort_buffer_size:每个需要排序的线程分配该大小的一个缓冲区

max_allowed_packet server接受的数据包大小

join_buffer_size 用于表示关联缓存的大小

thread_cache_size  服务器线程缓存,这个值表示可以重新利用保存在缓存中的线程数量

Innodb的几个变量

innodb_buffer_pool_size

innodb_flush_log_at_trx_commit 取值分别为0,1,2.

实际测试发现,该值对插入数据的速度影响非常大,设置为2时插入10000条记录只需要两秒,设置为0时只需要一秒,设置为1时,则需要229秒

innodb_thread_concurrency=0

此参数用来设置innodb线程的并发数,默认值为0表示不被限制,若要设置则与服务器的CPU核心数相同或是CPU的核心数的2倍

nnodb_log_buffer_size

    此参数确定日志文件所用的内存大小,以M为单位。缓冲区更大能提高性能,对于较大的事务,可以增大缓存大小

innodb_log_file_size=50M

    此参数确定数据日志文件的大小,以M为单位,更大的设置可以提高性能

innodb_log_files_in_group=3

    为提高性能,MySQL可以以循环方式将日志文件写到多个文件。推荐设置为3

read_buffer_size=1M

    MySQL 读入缓冲区大小。对表进行顺序扫描的请求将分配到一个读入缓冲区MySQL会为他分配一段内存缓冲区

read_rnd_buffer_size=16M

    MySQL 的随机读(查询操作)缓冲区大小

bulk_insert_buffer_size=64M

    批量插入数据缓存大小,可以有效的提高插入效率,默认为8M

binary log

    binlog_cache_size=2M   //为每个session分配的内存,在事务过程中用来存储二进制日志的缓存,提高记录bin-log的效率。

    max_binlog_cache_size=8M //表示的是binlog能够使用的最大cache内存大小

    max_binlog_size=512M  //指定binlog日志文件的大小。不能将变量设置为大于1G或小于4096字节。默认值为1G.在导入大容量的sql文件时,建议关闭,sql_log_bin,否则硬盘扛不住,而且建议定期做删除。

    expire_logs_days=7

上一篇下一篇

猜你喜欢

热点阅读