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

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

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

 

   共享访问索引缓存

  在MySQL 4.1以前,访问索引缓存是串行的:两个线程不能并行地访问索引缓存缓冲。服务器处理一个访问索引区块的请求只能等它之前的请求处理完。结果,新的请求所需的索引区块就不在任何索引缓存环冲区块中,因为其他线程把包含这个索引区块的缓冲给更新了。 网管网www_bitscn_com

  从MySQL 4.1.0开始,服务器支持共享方式访问索引缓存:

网管朋友网www_bitscn_net

  没有正在被更新的缓冲可以被多个线程访问。

网管朋友网www_bitscn_net

  缓冲正被更新时,需要使用这个缓冲的线程只能等到更新完成之后。 网管朋友网www_bitscn_net

  多个线程可以初始化需要替换缓存区块的请求,只要它们不干扰别的线程(也就是,它们请求不同的索引区块,因此不同的缓存区块被替换)。

网管u家bitscn.net

  共享方式访问索引缓存令服务器明显改善了吞吐量。 中国网管联盟bitsCN.com

  多重索引缓存

网管论坛bbs_bitsCN_com

  共享访问索引缓存改善了性能,却不能完全消除线程间的冲突。它们仍然争抢控制管理存取索引缓存缓冲的结构。为了更进一步减少索引缓存存取冲突,MySQL 4.1.1提供了多重索引缓存特性。这能将不同的表索引指定到不同的索引缓存。

网管u家www.bitscn.net

  当有多个索引缓存,服务器在处理指定的 MyISAM 表查询时必须知道该使用哪个。默认地,所有的 MyISAM 表索引都缓存在默认的索引缓存中。想要指定到特定的缓存中,可以使用 CACHE INDEX 语句。

网管u家bitscn.net

  如下语句所示,指定表的索 t1, t2 和 t3 引缓存到名为 hot_cache 的缓存中:

网管u家bitscn.net


  mysql> CACHE INDEX t1, t2, t3 IN hot_cache;
  +---------+--------------------+----------+----------+
  | Table | Op | Msg_type | Msg_text |
  +---------+--------------------+----------+----------+
  | test.t1 | assign_to_keycache | status | OK |
  | test.t2 | assign_to_keycache | status | OK |
  | test.t3 | assign_to_keycache | status | OK |
  +---------+--------------------+----------+----------+
网管bitscn_com

  注意,如果服务器编译支持存 ISAM 储引擎了,那么 ISAM 表也使用索引缓存机制。不过,ISAM 表索引只能使用默认的索引缓存而不能自定义。 网管联盟bitsCN@com

网管u家www.bitscn.net

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

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