查询缓存(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被设置为0并且query_cache_size为0,则不会分配任何内存空间,查询缓存被禁用;如果query_cache_size大于0,内存将会分配,但不会缓存任何数据,查询缓存被禁用
。
- query_cache_size:这个选项表示将会分配多少内存。
- query_cache_limit 定义了能被缓存的查询结果的最大体积。
——如果查询结果的体积大于这个值,将不会被缓存。这个配置值可以通过找到最大的SELECT查询结果的体积而推测出来。
摘自《高性能PHP7》——Aitaf Hussain著 吕毅 译