网站运营 | 站长学院 | 技术文档 | 成语 | 歇后语 | 桌面壁纸 | 帝国时代 | 代码收藏 | IP地址查询 | 生活百科 | 生日密码 | CSS压缩 | 用户评论

mysql优化的重要参数 key_buffer_size table_cache

【 更新时间:2011-05-03 | 字体:
[导读]MySQL服务器端的参数有很多,但是对于大多数初学者来说,众多的参数往往使得我们不知所措<,但是哪些参数是需要我们调整的<,哪些对服务器的性能影响最大呢<?对于使用Myisam存储引擎来说<,主要有key_buffer_size和tabl...
MySQL服务器端的参数有很多,但是对于大多数初学者来说,众多的参数往往使得我们不知所措<,但是哪些参数是需要我们调整的<<,哪些对服务器的性能影响最大呢?对于使用Myisam存储引擎来说<,主要key_buffer_sizetable_cache两个参数<。对于InnoDB引擎来说主要还是以innodb_开始的参数,也很好辨认。
查看MySQL参数<,可以使用show variablesshow status命令查看<,前者查看服务器静态参数<<,即在数据库启动后不会动态更改的值<<,比如缓冲区<、字符集等。后者查看服务器的动态运行状态信息,即数据库运行期间动态变化的信息<,比如锁,当前连接数等<。
key_buffer_size这个参数是用来设置索引块(index blocks)缓存的大小<,它被所有线程共享<<,严格说是它决定了数据库索引处理的速度,尤其是索引读的速度<<<。那我们怎么才能知道key_buffer_size的设置是否合理呢<,一般可以检查状态值Key_read_requests和Key_reads<,比例key_reads / key_read_requests应该尽可能的低<<,比如1:100,1:1000 ,1:10000<。其值可以用以i下命令查得:
mysql> show status like 'key_read%';
+-------------------+------------+
| Variable_name     | Value      |
+-------------------+------------+
| Key_read_requests | 3916880184 |
| Key_reads         | 1014261    |
+-------------------+------------+
2 rows in set (0.00 sec)
3916880184/1024/1024=?M    //单位为兆
我的key_buffer_size值为:
key_buffer_size=536870912/1024/1024=512M,
key_reads / key_read_requests=1014261: 3916880184≈1:4000,照上面来看,健康状况还行。
table_cache指定表高速缓存的大小<。每当MySQL访问一个表时,如果在表缓冲区中还有空间<,该表就被打开并放入其中<,这样可以更快地访问表内容<<。通过检查峰值时间的状态值Open_tables和Opened_tables,可以决定是否需要增加table_cache的值<<<。如果你发现open_tables等于table_cache<,并且opened_tables在不断增长<<<<<,那么你就需要增加table_cache的值了(上述状态值可以使用SHOW STATUS LIKE ‘Open%tables’获得)。注意<,不能盲目地把table_cache设置成很大的值<。如果设置得太高<,可能会造成文件描述符不足,从而造成性能不稳定或者连接失败。
open_tables表示当前打开的表缓存数,如果执行flush tables操作,则此系统会关闭一些当前没有使用的表缓存而使得此状态值减??;
opend_tables表示曾经打开的表缓存数,会一直进行累加<<,如果执行flush tables操作<<,值不会减小。
在mysql默认安装情况下,table_cache的值在2G内存以下的机器中的值默认时256到512,如果机器有4G内存,则默认这个值是2048,但这决意味着机器内存越大,这个值应该越大<,因为table_cache加大后<<,使得mysql对SQL响应的速度更快了<<,不可避免的会产生更多的死锁(dead lock),这样反而使得数据库整个一套操作慢了下来<,严重影响性能。所以平时维护中还是要根据库的实际情况去作出判断,找到最适合你维护的库的table_cache值。
就是table_cache加大后碰到文件描述符不够用的问题,在mysql的配置文件中有这么一段提示:
引用
“The number of open tables for all threads. Increasing this value increases the number of file descriptors that mysqld requires.
Therefore you have to make sure to set the amount of open files allowed to at least 4096 in the variable "open-files-limit" in” section [mysqld_safe]”
说的就是要注意这个问题<<<,一想到这里<,部分兄弟可能会用ulimit -n 作出调整,但是这个调整实际是不对的,换个终端后<,这个值又会回到原始值<,所以最好用sysctl或者修改/etc/sysctl.conf文件,同时还要在配置文件中把open_files_limit这个参数增大<,对于4G内存服务器,相信现在购买的服务器都差不多用4G的了<,那这个这个open_files_limit至少要增大到4096<,如果没有什么特殊情况<<,设置成8192就可以了。
innodb_buffer_pool_size 这个参数和MyISAM的key_buffer_size有相似之处<,但也是有差别的。这个参数主要缓存innodb表的索引<,数据<,插入数据时的缓冲<<。为Innodb加速优化首要参数<<
友荐云推荐
  • 转载请注明来源:网站运营 网址:http://www.chinawobo.com/ 向您的朋友推荐此文章
  • 特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载<,但请务必注明出处和原始作者<<。文章版权归文章原始作者所有<。对于被本站转载文章的个人和网站<,我们表示深深的谢意<。如果本站转载的文章有版权问题请联系我们<<,我们会尽快予以更正。
RSS订阅
  • QQ邮箱
  • 填写您的邮件地址,订阅我们的精彩内容:
更多
© 2014 网站运营 - T086.com(原itlearner.com)
  • 张天爱变胖了?淡雅甜笑险露双下巴 2018-05-26
  • 论对汉文化东传的基本认识 2018-05-26
  • 4月台州全市新建商品住宅成交3444套 2018-05-25
  • 河北盐山:“点、线、面”结合推进人才强县 2018-05-25
  • 北京市幼儿园年内完成全员培训 2018-05-25
  • 河南职业技术学院全国技能(导游类)大赛获佳绩 2018-05-24
  • Футбол -- Арены ЧМ-2018 -- Стадион Нижний Новгород 2018-05-24
  • 美媒:美国对华战略缺乏头脑 2018-05-23
  • 中国钢企布局沿海 柳钢瞄准东盟经济圈 2018-05-23
  • 2018的偶像元年是否只是一场美丽的谎言?偶像练习生创造101选秀 2018-05-22
  • 上海临港有个“儿童大学” 2018-05-20
  • 2017年世界大学学术排名发布 清华进前50大学学术排名大学排行榜 2018-05-20
  • 日本战犯侵华罪行自供 2018-05-19
  • 塑料污染让人痛心 世界最深海沟竟成“垃圾场” 2018-05-19
  • 男子因琐事杀害女友并分尸抛河 警方根据美甲破案嘉兴美甲死者 2018-05-18
  • 微商货源 | 冠珠陶瓷 | 6688电视家官网 | 中康体检网 | 安徽极热网 | 北京赛车开奖号码 | 快猴网 | 迪威乐云商devmsn | 易奇八字 | wwe美国职业摔角 | 八字算命 | 河南旅游景点大全 | 冠珠陶瓷 | 广东旅游景点大全 |
    RunTime:6.03ms QueryTime:7