MySQL数据库的查询缓冲机制 |
本文标签:MySQL 查询缓冲 MySQL数据库提供了查询缓冲机制 。使用该查询缓冲机制,MySQL将SELECT语句和查询结果存放在缓冲区中,以后对于同样的SELECT语句(区分大小写),将直接从缓冲区中读取结果 。以节省查询时间,提高了SQL查询的效率 。本文我们主要就介绍一下MySQL数据库的查询缓冲机制,接下来就让我们来一起了解一下这部分内容 。 通过调节以下几个参数可以知道query_cache_size设置得是否合理: Qcache inserts Qcache hits Qcache lowmem prunes Qcache free blocks Qcache total blocks Qcache_lowmem_prunes的值非常大,则表明经常出现缓冲不够的情况,同时Qcache_hits的值非常大,则表明查询缓冲使用非常频繁,此时需要增加缓冲大小Qcache_hits的值不大,则表明你的查询重复率很低,这种情况下使用查询缓冲反而会影响效率,那么可以考虑不用查询缓冲 。此外,在SELECT语句中加入SQL_NO_CACHE可以明确表示不使用查询缓冲 。 Qcache_free_blocks,如果该值非常大,则表明缓冲区中碎片很多query_cache_type指定是否使用查询缓冲 。 如果设置为: query_cache_size = 32M query_cache_type= 1 得到如下状态值: Qcache queries in cache 12737 //表明目前缓存的条数 。 Qcache inserts 20649006 Qcache hits 79060095 //看来重复查询率还挺高的 。 Qcache lowmem prunes 617913 //有这么多次出现缓存过低的情况 。 Qcache not cached 189896 Qcache free memory 18573912 //目前剩余缓存空间 。 Qcache free blocks 5328 //这个数字似乎有点大,碎片不少 Qcache total blocks 30953 如果内存允许,还可以将query_cache_size再设大一些 。 关于MySQL数据库查询缓存机制的介绍就到这里了,如果您想了解更多MySQL数据库的知识,可以去这里看一看:http://database.51cto.com/mysql/,相信一定能够给您带来收获的! |