http://www.jb51.net/article/26470.htm
http://www.jb51.net/article/26471.htm
http://tech.it168.com/a2009/0429/274/000000274277_2.shtml
http://blog.sina.com.cn/s/blog_7fe211be01010lax.html
网上教mysql参数设置的文章相当多,这里只归纳几个常用上的
flush privileges;刷新
1,临时表
show status”命令返回的状态进行微调。我主要注意以下变量的数值,越小越好,最好为零:)
Created_tmp_disk_tables
Created_tmp_tables
Created_tmp_files
Slow_queries
.如果Created_tmp_disk_tables太大,就要增加my.cnf中tmp_table_size的值,用基于内存的临时表代替基于磁盘的
2,max_connections,100是不够的.要大于threads_connected值。
1、数据库系统允许的最大可连接数max_connections。这个参数是可以设置的。如果不设置,默认是100。最大是16384。
2、数据库当前的连接线程数threads_connected。这是动态变化的。
查看max_connections、max_connections的办法见后。
如果 threads_connected == max_connections 时,数据库系统就不能提供更多的连接数了,这时,如果程序还想新建连接线程,数据库系统就会拒绝,如果程序没做太多的错误处理,就会出现类似强坛的报错信息。
Max_used_connections 同时使用的连接数
Max_used_connections / max_connections * 100% ≈ 85%
3,基本上所有教程都会建议关掉skip-name-resolve,但我就试过关了后,提示127.0.0.1不能连接
skip-locking
#避免MySQL的外部锁定,减少出错几率增强稳定性。
skip-name-resolve
#禁止MySQL对外部连接进行DNS解析,使用这一选项可以消除MySQL进行DNS解析的时间。但需要注意,如果开启该选项,则所有远程主机连接授权都要使用IP地址方式,否则MySQL将无法正常处理连接请求!
back_log = 384
#back_log参数的值指出在MySQL暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中。 如果系统在一个短时间内有很多连接,则需要增大该参数的值,该参数值指定到来的TCP/IP连接的侦听队列的大小。不同的操作系统在这个队列大小上有它自己的限制。 试图设定back_log高于你的操作系统的限制将是无效的。默认值为50。对于Linux系统推荐设置为小于512的整数。
4,query_cache_size查询缓冲
SHOW STATUS LIKE 'Qcache%';
如果Qcache_lowmem_prunes的值非常大,则表明经常出现缓冲不够的情况,就要增加Query_cache_size的值。
如果Qcache_hits的值非常大,则表明查询缓冲使用非常频繁,如果该值较小反而会影响效率,那么可以考虑不用查询缓冲
Qcache_free_blocks,如果该值非常大,则表明缓冲区中碎片很多
5,key
key_buffer_size是对MyISAM表性能影响最大的一个参数
show global status like "key_read%";
如果Key_reads太大,则应该把my.cnf中Key_buffer_size变大,保持Key_reads/Key_read_requests至少1/100以上,越小越好
Key_blocks_used / (Key_blocks_unused + Key_blocks_used) * 100%≈ 80%
6,opened_tables
opened_tables太大,应该把my.cnf中的table_cache变大
7,索引
如果Handler_read_rnd太大,则你写的SQL语句里很多查询都是要扫描整个表,而没有发挥索引的键的作用
8,thread
如果Threads_created太大,就要增加my.cnf中thread_cache_size的值.可以用Threads_created/Connections计算cache命中率
9,aborted
aborted_clients 客户端非法中断连接次数
aborted_connects 连接mysql失败次数
10,日志
http://blog.sina.com.cn/s/blog_406127500100pvar.html
调试须要查看日志,至于慢查询就要看具体需要了
log-error=/usr/local/mysql/log/error.log
log=/usr/local/mysql/log/mysql.log
long_query_time=2
log-slow-queries= /usr/local/mysql/log/slowquery.log
11,timeout
http://blog.csdn.net/daemonpei/article/details/6307033
http://lqqnotes.blog.51cto.com/3329069/685073
当mysql独立出来时,机房与机房间的通信时间就会受到影响了
connect_timeout在获取连接阶段(authenticate)起作用,
interactive_timeout和wait_timeout在连接空闲阶段(sleep)起作用,
net_read_timeout和net_write_timeout在连接繁忙阶段(query)起作用。