mysql缓存

mysql中缓存随处可见,常见的有权限缓存cache,主机缓存名cache,存储程序缓存cache以及innodb全文索引缓存cache等。缓存是个很大的话题,下面只是简单说明。

1.查看主机名缓存的大小,

建议:如果有多台主机与mysql服务器相连,或者DNS较慢,可以适当地增加主机名缓存的大小。

查看每一个会话提供的存储程序缓存的个数上限,

查看全文索引缓存大小

查询缓存Query Cache

查询缓存不仅将查询语句缓存起来,还将查询结果缓存起来。

查询缓存最忌讳修改,因为它会使mysql的查询缓存失效。

have_query_cache:是否支持查询缓存

query_cache_limit:如果某条查询语句的查询结果超过了这个结果集,那么将不会添加到查询缓存。

query_cache_min_res_unit:查询缓存是以块为单位申请内存空间,过大会多出分配,过小会导致内存碎片。

query_cache_size :设置查询缓存的内存大小。

query_cache_type  :有三个参数,0表示查询缓存关闭,1表示查询总是先到查询缓存中查找,2表示表示不使用查询缓存,除非在sql中指定sql_cache选项。

query_cache_wlock_invalidate:该参数用于设置行级排它锁与查询缓存之间的关系,0(默认)表示加行级排他锁的同时,该表的所有查询缓存依然有效。如果设置为1,表示加行级排他锁的同时

该表的所有查询缓存将失效。

获取当前实例的查询状态信息,从而可以计算出当前查询缓存的命中率,继而确定query_cache_size的设置是否合理。

Qcache_free_blocks:表示查询缓存中处于空闲状态的内存块数量(碎片的数量),如果此值太大表示碎片过多,缓存的碎片率=Qcache_free_blocks/Qcache_total_blocks *100%

Qcache_free_memory:表示当前实例中还有多少可用缓存。

Qcache_hits  :表示使用查询缓存的次数,此值会依次递增,过大考虑增加缓存,过少考虑关闭。

Qcache_inserts :表示查询缓存中,此前总共缓存过多少select语句的结果集。

Qcache_lowmem_prunes :表示因为查询缓存已满而溢出,删除的查询个数,如果太高要增加查询缓存。

Qcache_not_cached  :表示没有进入查询缓存的select语句的个数。

Qcache_queries_in_cache:表示查询缓存中缓存着多少条select语句的结果集。

Qcache_total_blocks :查询缓存总块数。

总结:查询命中率=Qcache_hits/(Qcache_hits+Qcache_inserts+Qcache_not_cached),如果查询命中率比较高,说明大部分select语句都命中了查询缓存。

查看结果集缓存:

查看排序缓存,排序缓存分为普通排序缓存,MyISAM排序缓存以及InnoDB排序缓存。

注意:如果想提升排序速度,首先考虑使用索引,其次可以考虑尝试增加sort_buffer_size参数的大小。

InnoDB缓存池(InnoDB)缓存池是InnoDB性能提升的核心,它既可以缓存数据又可以缓存索引。

innodb_buffer_pool_size  :缓存池的大小,这个很重要,在允许的范围内越大越好。

innodb_buffer_pool_instances:缓冲池划分的区域默认是1,表示划分为一个区域。可以划分为多个区域,但是建议每个区域不小于1G的空间。

呵呵。。。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值