使用MySQL查询缓存加快您的网站速度

提高Web应用程序速度的最佳方法之一是在数据库中启用查询缓存,这会将常用的SQL查询缓存到内存中,以便发出相同请求的下一个页面几乎可以即时访问。

此方法如此强大的原因是您不需要对Web应用程序进行任何更改,只需牺牲一点内存即可。这不会解决你所有的问题,但绝对不会有什么坏处。

注意:如果您的应用程序频繁更新表,那么查询缓存将不断被清除,您不会从中获得太多或任何好处。对于主要针对数据库进行读取的应用程序(如WordPress博客)来说,这是非常理想的。如果您在共享主机上运行,这也不会起作用。

在服务器运行时启用缓存

您需要做的第一件事是确保您的MySQL安装确实具有可用的查询缓存支持。大多数发行版都是这样做的,但无论如何您都应该检查一下。

您需要从MySQL控制台运行此命令,它将告诉您查询缓存是否可用。

不要误以为这意味着查询缓存实际上是启用的,因为大多数宿主提供程序在默认情况下不会启用这一功能。奇怪的是,我的Ubuntu活跃安装已经启用了…

接下来,我们需要检查并查看是否启用了查询缓存。我们将需要检查多个变量,因此我们也可以通过检查变量查询%来一次完成所有操作

以下是清单中的重要项目及其含义:

QUERY_CACHE_SIZE-这是以字节为单位的缓存大小。将此值设置为0将有效禁用缓存。 QUERY_CACHE_TYPE-此值必须为ON或1,才能在默认情况下启用查询缓存。 QUERY_CACHE_LIMIT-这是将缓存的最大查询大小(以字节为单位)。

如果QUERY_CACHE_SIZE值设置为0,或者您只想更改它,则需要运行以下命令,记住该值以字节为单位。例如,如果您希望将8MB分配给缓存,我们将使用1024x1024x8=8388608作为值。

同样,可以使用相同的语法设置其他选项:

现在我们怎么知道它是否真的起作用了呢?您可以使用show status命令提取所有以“qc”开头的变量,以查看幕后的情况。

您将在统计数据中注意到,我还有足够的空闲内存。如果您的服务器显示大量低MEM修剪,您可能需要考虑增加此值,但我不会在Web服务器…的查询缓存上花费太多内存。您需要为Apache、php、ruby或您正在使用的任何东西留出可用的内存。

在配置文件中启用

如果希望这些更改在重新启动或重新启动MySQL服务器后仍然有效,则需要将它们添加到MySQL的/etc/mysql/my.cnf配置文件中。请注意,它可能位于您安装的不同位置。

在sudo或root模式下使用文本编辑器打开文件,如果文件中不存在这些值,则添加它们。如果它们确实存在,只需取消对它们的注释。

查询缓存可以显著提高Web应用程序的速度,特别是在您的应用程序主要读取内容的情况下。使用上面的方法监视状态,并查看随着时间的推移它是如何工作的。

相关文章