mysql的参数设置

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)起作用。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL参数设置有多种方式,具体如下: 1. 通过set命令设置参数: - 使用`set [session] 参数名 = 参数值;`来设置当前会话(连接)参数。这种方式会话断开后配置失效。 - 使用`set global 参数名 = 参数值;`来设置全局参数。这种方式需要MySQL实例重启后生效,配置也会在重启后失效。 - 注意,通过命令设置参数优先级高于配置文件,相同配置的命令执行后会覆盖配置值,但只在会话或MySQL实例中生效,不同步到配置文件中。 2. 通过配置文件设置参数: - 在Windows系统中,配置文件my.ini存放在MySQL安装的根目录下。 - 在Linux系统中,配置文件my.cnf存放在/etc目录下。 - 你可以编辑这些配置文件,在文件中设置参数值。这样每次启动MySQL实例时都会加载配置文件中的参数值。 3. Connection连接参数: - `max_connections`参数用于限制最大连接数。连接状态有两种:Sleep(连接处于闲置状态)/Query(连接正在处理任务的状态)。 - Sleep和Query状态的连接数之和不能超过`max_connections`的设置值,否则数据库会抛出异常“ERROR 1040: Too many connections”。 - 你可以使用`show VARIABLES like 'max_connections';`命令查看该参数的值。 以上是关于MySQL参数设置的一些方法和连接参数的说明。你可以根据具体需求选择适合的方式来进行参数设置。如果需要了解更多关于MySQL参数的信息,可以参考MySQL官方文档中的相关部分。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值