如果我的文章对您有帮助,麻烦回复一个赞,给我坚持下去的动力

mysql参数详解

#开启慢查询,旧版

slow_query_log

# (超过2秒的SQL语法记录起来,设短一点来记录除错也是一种方法.)

long_query_time = 2

log-slow-queries=D:\mysql-5.6.23-winx64\log\mysql-slow.log

log= D:\mysql-5.6.23-winx64\log\mysql.log

 

#开启慢查询,新版5.6

slow-query-log=1

long_query_time = 2 #这个没变,2秒

slow-query-log-file=D:\mysql-5.6.23-winx64\log\mysql-slow.log

#慢查询日志文件

general_log=ON
general_log_file=D:\mysql-5.6.23-winx64\log\mysql.log
 
log-error=D:\mysql-5.6.23-winx64\log\error.log
log-bin=bin
#二进制日志路径和名称,排在最后的为日志名
 
expire_log_days=5  
#保留二进制日志天数
net_buffer_length=16384
max_allowed_packet=25165824 
max_binlog_size=200M
 
 
#一下配置,没有全部测试过,不保证正确性
[mysqld] 
port = 3306 
serverid = 1 
socket = /tmp/mysql.sock 
 
back_log=500
#由默认的80修改为500.(每个连接256kb,占用:125M)
#back_log值 指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。也就是说,如果MySql的连接数据达到#max_connections 时,新来的请求将会被存在堆栈中,以等待某一连接释放资源,该堆栈的数量即back_log,如果等待连接的数量超过#back_log,将不被授予连接资 源。

skip-locking
#避免MySQL的外部锁定,减少出错几率增强稳定性。 

skip-name-resolve 
#禁止MySQL对外部连接进行DNS解析,使用这一选项可以消除MySQL进行DNS解析的时间。但需要注意,如果开启该选项,则所有远程主机连接授权都要使用IP地址方式,否则MySQL将无法正常处理连接请求! 
 
key_buffer_size = 256M 
#key_buffer_size指定用于索引的缓冲区大小,增加它可得到更好的索引处理性能。对于内存在4GB左右的服务器该参数可设置为256M或384M。
#注意:该参数值设置的过大反而会是服务器整体效率降低! 
innodb_buffer_pool_size=1024M
#主要针对InnoDB表性能影响最大的一个参数。功能与Key_buffer_size一样。值越大越好,这能保证你在大多数的读取操作时使用的是内存而不是硬盘

max_allowed_packet = 4M 
#导入恢复大的sql时,max_allowed_packet 和 net_buffer_length 这两个参数起着决定性作用,速度差别几百上千倍,但是我没看出来

thread_stack = 256K 
table_cache = 128K 
sort_buffer_size = 6M 

#查询排序时所能使用的缓冲区大小。注意:该参数对应的分配内存是每连接独占,如果有100个连接,那么实际分配的总共排序缓冲区大小为100 × 6 = 600MB。所以,对于内存在4GB左右的服务器推荐设置为6-8M。 

read_buffer_size = 4M 
#读查询操作所能使用的缓冲区大小。和sort_buffer_size一样,该参数对应的分配内存也是每连接独享。 
join_buffer_size = 8M 
#联合查询操作所能使用的缓冲区大小,和sort_buffer_size一样,该参数对应的分配内存也是每连接独享。 

myisam_sort_buffer_size = 64M 
 
tmp_table_size = 256M 
max_connections = 768 
#指定MySQL允许的最大连接进程数。如果在访问论坛时经常出现Too Many Connections的错误提 示,则需要增大该参数值。 
#max_user_connections
#每个用户的最大连接数,设置为0表示不限制。

max_connect_errors = 10000000 
wait_timeout = 10 

#MySQL客户端的数据库连接闲置最大时间值。如果有大量的空闲MySQL链接请求,会白白占用内存资源,可以将值设置小一点

thread_concurrency = 8 
#thread_concurrency应设为CPU核数的2倍,错误设置了thread_concurrency的值, 会导致mysql不能充分利用多cpu(或多核)

skip-networking 
#开启该选项可以彻底关闭MySQL的TCP/IP连接方式,如果WEB服务器是以远程连接的方式访问MySQL数据库服务器则不要开启该选项!否则将无法正常连接! 

table_cache=1024 
#物理内存越大,设置就越大.默认为2402,调到512-1024最佳 

innodb_additional_mem_pool_size=4M 
#默认为2M 

innodb_flush_log_at_trx_commit=1 
#设置为0就是等到innodb_log_buffer_size列队满后再统一储存,默认为1 

innodb_log_buffer_size=2M 
#InnoDB存储引擎的事务日志所使用的缓冲区

innodb_thread_concurrency=8 
#你的服务器CPU有几个就设置为几,建议用默认一般为8 

key_buffer_size=256M 
#默认为218,调到128最佳 

tmp_table_size=64M 
#默认为16M,调到64-256最挂 


read_rnd_buffer_size=16M 
#MySql的随机读缓冲区大小,每个线程独享
sort_buffer_size=32M 
#排序缓存
thread_cache_size=120 
#这个值表示可以重新利用保存在缓存中线程的数量,当断开连接时如果缓存中还有空间,那么客户端的线程将被放到缓存中,如果线程重新被请求,
#那么请求将从缓存中读取,如果缓存中是空的或者是新的请求,那么这个线程将被重新创建,如果有很多新的线程,增加这个值可以改善系统性能

query_cache_size=32M 
#主要用来缓存MySQL中的ResultSet,也就是一条SQL语句执行的结果集
# 指定MySQL查询缓冲区的大小。可以通过在MySQL控制台观察,如果Qcache_lowmem_prunes的值非常大,则表明经常出现缓冲不够的 情况;#如果Qcache_hits的值非常大,则表明查询缓冲使用非常频繁,如果该值较小反而会影响效率,那么可以考虑不用查询缓 冲;#Qcache_free_blocks,如果该值非常大,则表明缓冲区中碎片很多。
query_cache_type
#和query_cache_size配合使用,建议设置查询缓存时,详细查询一下用法和注意事项
 
 
 
 
 
posted @ 2016-05-11 17:02  无所事事O_o  阅读(1031)  评论(0编辑  收藏  举报