最新消息:欢迎加入小松的QQ群一起讨论一起学习,本站启用elasticsearch全文检索系统,提供搜索的精确度

mysql配置优化

MYSQL 1460浏览 0评论

公司的访问量不断增加,网站的功能也不断增加,mysql自然就成了瓶颈,应公司的要求最近开始研究mysql的优化,第一步想到的就是mysql索引和mysql语句的优化,第二步就是mysql服务器配置的优化,公司的用的是myisam 。
这里主要讲mysql配置优化
mysql配置都在my.cnf文件中,下面讲一下mysql性能相关的关键参数

skip-locking #取消文件系统的外部锁,减少出错几率增强稳定性
skip-name-resolve #它将禁止 MySql Server 对外部连接进行 DNS 解析,使用这一选项可以消除 MySql 进行 DNS 解析的时间。
但需要注意,如果开启该选项,则所有远程主机连接授权都要使用IP地址方式,否则MySQL将无法正常处理连接请求。
如果开启 skip-name-resolve 选项,要确认 MySql 是否采用过主机名的授权,
在 mysql 中运行如下命令:
mysql> select user,host from mysql.user where host <> 'localhost' ;
一般会得到以“%”授权(也就是任何地址)的记录:
mysql用户
key_buffer_size = 256M
 #key_buffer_size指定用于索引的缓冲区大小,这个是重点参数,增加它可得到更好的索引处理性能。注意:该参数值设置的过大反而会是服务器整体效率降低!
 我们再看一下key_buffer_size的使用情况:
 mysql> show global status like 'key_read%';
mysql速度
 计算索引未命中缓存的概率:
 key_cache_miss_rate = Key_reads / Key_read_requests * 100%
 key_cache_miss_rate在0.1%以下都很好(每1000个请求有一个直接读硬盘),如果key_cache_miss_rate在0.01%以下的话,key_buffer_size分配的过多,可以适当减少
sort_buffer_size = 6M
 #查询排序时所能使用的缓冲区大小。注意:该参数对应的分配内存是每连接独占,如果有100个连接,那么实际分配的总共排序缓冲区大小为100 × 6 = 600MB。所以,对于内存在4GB左右的服务器推荐设置为6-8M。
query_cache_size = 64M
 # 指定MySQL查询缓冲区的大小。可以通过在MySQL控制台观察,如果Qcache_lowmem_prunes的值非常大,则表明经常出现缓冲不够的情况;如果Qcache_hits的值非常大,则表明查询缓冲使用非常频繁,如果该值较小反而会影响效率,那么可以考虑不用查询缓冲;Qcache_free_blocks,如果该值非常大,则表明缓冲区中碎片很多。
max_connections = 1000
 #指定MySQL允许的最大连接进程数。如果在访问论坛时经常出现Too Many Connections的错误提示,则需要增大该参数值。
wait_timeout = 120
 #指定一个请求的最大连接时间
loose-skip-innodb
 #MySQL禁用InnoDB引擎
QQ交流群:136351212

如无特别说明,本站文章皆为原创,若要转载,务必请注明以下原文信息:
转载保留版权:小松博客» mysql配置优化
本文链接地址:https://www.phpsong.com/78.html

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
木有头像就木有JJ!点这里按步骤申请Gravatar头像吧!

网友最新评论 (1)

加载中,请稍候...
  1. 好文章,内容言简意赅.
    菱镁板2年前 (2015-04-03)回复