网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > 数据库技术 > Oracle > 性能调优 > MySQL数据库优化(七)-性能调优  

MySQL数据库优化(七)-性能调优

2008-06-14  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

 

  索引缓存大小

  MySQL 4.1引进了对每个索引缓存的新变量 key_cache_block_size。这个变量可以指定每个索引缓存的区块大小。用它就可以来调整索引文件I/O操作的性能。

网管联盟bitsCN_com

  当读缓冲的大小和本地操作系统的I/O缓冲大小一样时,就达到了I/O操作的最高性能了。但是设置索引节点的大小和I/O缓冲大小一样未必能达到最好的总体性能。读比较大的叶子节点时,服务器会读进来很多不必要的数据,这大大阻碍了读其他叶子节点。

网管bitscn_com

  目前,还不能控制数据表的索引区块大小。这个大小在服务器创建索引文件 `.MYI' 时已经设定好了,它根据数据表的索引大小的定义而定。在很多时候,它设置成和I/O缓冲大小一样。在将来,可以改变它的值,并且会全面采用变量 key_cache_block_size。

网管u家u.bitscn@com

  重建索引缓存

网管网www_bitscn_com

  索引缓存可以通过修改其参数值在任何时候重建它,例如:

网管u家u.bitscn@com


  mysql> SET GLOBAL cold_cache.key_buffer_size=4*1024*1024;

网管论坛bbs_bitsCN_com

  如果设定索引缓存的结构体变量组件变量 key_buffer_size 或 key_cache_block_size 任何一个的值和它当前的值不一样,服务器就会清空原来的缓存,在新的变量值基础上重建缓存。如果缓存中有任何的'脏'索引块,服务器会先把它们保存起来然后才重建缓存。重新设定其他的索引缓存变量并不会重建缓存。

网管联盟bitsCN_com

  重建缓存时,服务器会把所有的'脏'缓冲的内容先刷新到磁盘中去。之后,缓存的内容就无效了。不过,重建的时候并不阻止那些需要使用指向到缓存中的索引的查询。相反地,服务器使用本地文件系统缓存直接访问数据表索引。文件系统缓存不如索引缓存来的高效,因此,可以预见这时的查询会比较慢。一旦缓存重建完了,指向它的索引又可以使用了,同时也就不再使用文件系统缓存来访问索引了。 网管联盟bitsCN@com

网管联盟bitsCN_com

TAGs   性能   优化   数据库   索引   区块       使用   访问   一个   这个      
 上一篇:MySQL数据库优化(六)-性能调优   下一篇:MySQL数据库优化(八)-性能调优
MySQL数据库优化(七)-性能调优 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: