MySQL 服务器性能优化

MySQL的性能优化涵盖的领域很多,从基本的修改my.cnf配置参数,到相对复杂的I/O优化,都会对MySQL的访问产生不同的影响。

通过调整my.cnf参数来优化MySQL

my.cnf参数解释说明

默认错误日志已经在/etc/init.d/mysqld设置了–log-error=/var/log/mysql.log 错误日志设置,它记录了当mysqld启动和停止时,已经服务器在运行过程中发生任何严重错误的相关信息。

当数据库出现任何故障导致无法正常使用时,可以先查看此日志。 back_log = 384 指定MySQL可能的连接数量。

当MySQL主线程在很短的时间内接收到非常多的连接请求,该参数生效,主线程花费很短的时间检查连接并且启动一个新线程。

back_log参数的值指出在MySQL暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中。

如果系统在一个短时间内有很多连接,则需要增大该参数的值,该参数值指定到来的TCP/IP连接的侦听队列的大小。

不同的操作系统在这个队列大小上有它自己的限制。试图设定back_log高于你的操作系统的限制将是无效的。默认值为50。

对于Linux系统推荐设置为小于512的整数。 tmp_table_size = 64M mysql 的配置文件中,tmp_table_size 的默认大小是 32M。如果一张临时表超出该大小,MySQL产生一个 The table tbl_name is full 形式的错误,如果你做很多高级 GROUP BY 查询,增加 tmp_table_size 值。

MySQL服务器内存需求的一个简单计算公式为:

key_buffer_size+(sort_buffer_size+read_buffer_size)*max_connections,且总量不能高于实际的物理内存量。