简单实现MySQL服务器的优化配置方法

2019-01-03 18:30:42王振洲


connect_timeout

MySQL(和PHP搭配之最佳组合)d服务器在用Bad handshake(糟糕的握手)应答前正在等待一个连接报文的秒数。

delayed_insert_timeout

一个INSERT DELAYED线程应该在终止之前等待INSERT语句的时间。

delayed_insert_limit

在插入delayed_insert_limit行后,INSERT DELAYED处理器将检查是否有任何SELECT语句未执行。如果这样,在继续前执行允许这些语句。

delayed_queue_size

应该为处理INSERT DELAYED分配多大一个队列(以行数)。如果排队满了,任何进行INSERT DELAYED的客户将等待直到队列又有空间了。

flush_time

如果这被设置为非零值,那么每flush_time秒所有表将被关闭(以释放资源和sync到磁盘)。

interactive_timeout

MySQL服务器在关上它前在一个交互连接上等待行动的秒数。一个交互的客户被定义为对MySQL(和PHP搭配之最佳组合)_real_connect()使用CLIENT_INTERACTIVE选项的客户。也可见wait_timeout。

join_buffer_size

用于全部联结(join)的缓冲区大小(不是用索引的联结)。缓冲区对2个表间的每个全部联结分配一次缓冲区,当增加索引不可能时,增加该值可得到一个更快的全部联结。(通常得到快速联结的最佳方法是增加索引。)

key_buffer_size

索引块是缓冲的并且被所有的线程共享。key_buffer_size是用于索引块的缓冲区大小,增加它可得到更好处理的索引(对所有读和多重写),到你能负担得起那样多。如果你使它太大,系统将开始换页并且真的变慢了。记住既然MySQL(和PHP搭配之最佳组合)不缓存读取的数据,你将必须为OS文件系统缓存留下一些空间。为了在写入多个行时得到更多的速度,使用LOCK TABLES。见7.24LOCK TABLES/UNLOCK TABLES语法。

long_query_time

如果一个查询所用时间超过它(以秒计),Slow_queries记数器将被增加。

max_allowed_packet

一个包的最大尺寸。消息缓冲区被初始化为net_buffer_length字节,但是可在需要时增加到max_allowed_packet个字节。缺省地,该值太小必能捕捉大的(可能错误)包。如果你正在使用大的BLOB列,你必须增加该值。它应该象你想要使用的最大BLOB的那么大。

max_connections

允许的同时客户的数量。增加该值增加MySQL(和PHP搭配之最佳组合)d要求的文件描述符的数量。见下面对文件描述符限制的注释。见18.2.4 Too many connections错误。

max_connect_errors

如果有多于该数量的从一台主机中断的连接,这台主机阻止进一步的连接。你可用FLUSH HOSTS命令疏通一台主机。

max_delayed_threads

不要启动多于的这个数字的线程来处理INSERT DELAYED语句。如果你试图在所有INSERT DELAYED线程在用后向一张新表插入数据,行将被插入,就像DELAYED属性没被指定那样。