Jul
16


2010-07-16 12:55 am 作者:Codytan

如还没有注册使用过监控宝的请先注册:http://www.jiankongbao.com
mysql的缓存对mysql的高效查询有很大的作用,其原理是将 SELECT 语句和语句的结果做了一个 HASH 映射关系然后保存在内存区域中。在mysql默认配置中,查询缓存是打开的。
在监控宝的服务监控中创建mysql监控,填写一些必要的信息,这并不会有什么安全问题。
添加完成后便能看到监控到的各项mysql数据指标,这里只说缓存。
首先说控制mysql缓存的配置参数:

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  1. query_cache_size:Cache所使用的内存大小,默认值为0,可以带单位MB
  2. query_cache_limit:Cache 的单条Query结果集的最大容量,默认是1MB,超过此参数设置的查询结果集将不会被缓存
  3. query_cache_min_res_unit:Cache中每次分配内存的最小空间,也就是每个Query的Cache最小占用的内存空间大小
  4. query_cache_type:可选值为0(OFF),1(ON)2(DEMAND)三种,分别指关闭Cache;开启Cache;开启Cache,但是只有当SELECT语句中使用了SQL_CACHE 提示后,才使用Cache
  5. query_cache_wlock_invalidate:控制当有写锁定发生在表上的时刻是否先失效该表相关的Cache

jiankongbao mysql

在监控宝监控页面将能看到query_cache_size,query_cache_limit等配置中设定的值,然后通过图表能得到缓存的使用空间情况,命中率,缓存查询次数等,这些都能帮你很好的分析mysql缓存的使用情况,命中率的情况直接影响到你mysql服务器的查询效率。
cache的单位是select语句,当然也包括各种复杂的select,如子查询,join,union等。
cache的效率高是因为使用cache得到结果之前只是进行了权限验证即可,不需要select的优化和分析,当然因为cache查询语句的保存是通过hash的,所以select必须完全一样才能命中缓存。
通过图表,你能随时关注mysql的缓存使用情况,如空间大小,命中率等直接体现查询性能,另外查询缓存不适合写密集型的mysql,每次写都需要更新缓存,这样反而影响整体性能。
当然只凭缓存来判断mysql的运行情况是不够的,可以查看其它监控视图,如连接,流量等,稍后再介绍。

推荐(0)
收藏

相关日志

最近读者

最近还没有登录用户看过这篇文章

发表评论: