MySQL查询缓存(Query Caching)

本文介绍了MySQL查询缓存的工作原理及如何配置开启查询缓存。包括查询缓存的重要参数query_cache_type、query_cache_size和query_cache_limit的具体作用,以及如何通过my.ini文件设置这些参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

查询缓存(Query Caching)



查询缓存是MySQL的一个重要性能特性,他缓存了SELECT查询及其结果数据集。当一个同样的SELECT查询发生时,MySQL从内存中直接取出结果,这样就加快了查询的执行速度,同时减小了数据库的压力。

   若要查看MySQL服务器上的查询缓存是否已经打开,要在MySQL命令行界面执行以下命令。

SHOW VARIABLES LIKE 'have_query_cache';
执行上述命令将会输出如下结果。


  上面的结果显示查询缓存已经开启。如果查询缓存是关闭的,变量的值回事NO。

   若要开启查询缓存,可以打开 my.ini文件 ,并输入以下内容。如果已经有这些内容但是包含注释,则取出注释即可。

query_cache_type= 1
query_cache_size= 128MB
query_cache_limit= 1MB

  保存my.ini文件,重启MySQL服务器。我们来看看上述配置代码的含义。

  • query_cache_type = :这是个容易迷惑人的选项。
——如果query_cache_type被设置为1 并且query_cache_size为0,则不会分配任何内存空间,查询缓存被禁用;如果query_cache_size值大于0,那么就开启了查询缓存,并且分配了内存空间。所有不超过query_cache_limit值的查询,或者不使用SQL_NO_CACHE选项的查询,都会被缓存。

——如果query_cache_type被设置为0并且query_cache_size为0,则不会分配任何内存空间,查询缓存被禁用;如果query_cache_size大于0,内存将会分配,但不会缓存任何数据,查询缓存被禁用 。

  • query_cache_size:这个选项表示将会分配多少内存。
——有人认为内存分配的越多就越好,这是个误区。这个选项之依赖数据库体积、查询类型和读写比例、硬件、数据库流量和其他因素。query_cache_size较适合的值是在100-200MB之间。

  • query_cache_limit 定义了能被缓存的查询结果的最大体积。

——如果查询结果的体积大于这个值,将不会被缓存。这个配置值可以通过找到最大的SELECT查询结果的体积而推测出来。




摘自《高性能PHP7》——Aitaf Hussain著 吕毅 译

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值