实例分析:MySQL优化经验

http://tech.ddvip.com   2008年02月19日    社区交流

内容摘要:MySQL使用是很具伸缩性的算法,因此你通常能用很少的内存运行或给MySQL更多的内存以得到更好的性能。专家通过phpmyadmin获得的实例分析为你讲解MySQL优化经验。

  关掉这个功能只需要在他前面加上#号:#log-bin

  开启慢查询日志( slow query log )

   慢查询日志对于跟踪有问题的查询非常有用。它记录所有查过long_query_time的查询,如果需要,还可以记录不使用索引的记录。下面是一个慢查询日志的例子:

  开启慢查询日志,需要设置参数log_slow_queries、long_query_times、log-queries-not-using-indexes。

  log_slow_queries指定日志文件,如果不提供文件名,MySQL将自己产生缺省文件名。long_query_times指定慢查询的阈值,缺省是10秒。log-queries-not-using-indexes是4.1.0以后引入的参数,它指示记录不使用索引的查询。笔者设置long_query_time=10

  设置:

  sort_buffer_size = 1M

  max_connections=120

  wait_timeout =120

  back_log=100

  read_buffer_size = 1M

  thread_cache=32

  interactive_timeout=120

  thread_concurrency = 4

  参数说明:

  back_log

  要求MySQL能有的连接数量。当主要MySQL线程在一个很短时间内得到非常多的连接请求,这就起作用,然后主线程花些时间(尽管很短) 检查连接并且启动一个新线程。back_log值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。只有如果期望在一个短时间内有很多连接,你需要增加它,换句话说,这值对到来的TCP/IP连接的侦听队列的大小。你的操作系统在这个队列大小上有它自己的限制。 Unix listen(2)系统调用的手册页应该有更多的细节。检查你的OS文档找出这个变量的最大值。试图设定back_log高于你的操作系统的限制将是无效的。

  max_connections

  并发连接数目最大,120 超过这个值就会自动恢复,出了问题能自动解决

来源:豆豆网转载    作者:IT专家网 Peak Wong    责编:豆豆技术应用

正在加载评论...