如何在使用对象缓存时防止/延迟MySQL连接?

时间:2014-09-30 作者:gamedancer

我们使用的是一个由memcached支持的对象缓存,但是我认为WordPress在每次加载页面时都会连接到MySQL,如果所有查询都可以由对象缓存处理,那么这应该是不需要的,对吗?

这带来的问题是,我仍然需要扩展MySQL服务器,以便能够同时处理多个连接,即使执行的查询并不多,所以这听起来像是一种巨大的浪费。这个问题在我的设置中是个额外的问题,因为我的页面需要来自外部API的数据,所以页面加载时间会比平时要长,在这段时间内,连接只会在MySQL数据库上休眠,浪费一点时间。

关于如何解决这个问题,有什么建议吗?在理想情况下,除非必须在数据库上运行实际的MySQL查询,否则不应该建立任何MySQL连接。

1 个回复
SO网友:david.binda

我目前正在处理一个使用W3TC plugin 该插件似乎提供了一个定制的数据库处理程序,它实际上将查询缓存到memcache。试试看。

Sidenote: 如果您使用多个生产服务器,请确保使用共享memcache服务器,并且不将这些查询缓存在本地memcache服务器上(这就是我的网站正在做的,您会同意这并不聪明)

此外,我认为尝试在memcache中复制MySQL查询缓存不是一个好主意。默认情况下,MySQL数据库处理查询缓存,并且性能足够好。

我要做的是为未登录的用户提供页面级缓存。如果您将提供从memcache生成的HTML,而不是每次都尝试从头构建输出,尽管它是对象缓存的,那么您甚至可以保存mysql连接,因为不需要服务器端工作。

我不喜欢W3TC,但在这种情况下,该插件也可以为您提供页面级缓存。

结束

相关推荐

Complicated MySQL Query

我正在尝试建立一个成员目录,在顶部有一些搜索选项。每个成员也有几个自定义字段(使用高级自定义字段)。希望有一个一次收集所有数据的单一查询,包括每个成员的所有自定义字段,而不仅仅是查询帖子和循环,并且必须查询自定义字段(一次显示100个,每个都有10个自定义字段)。我们已经非常接近了,下面的查询可以正常工作,并以干净的行返回所有必要的数据。然而,它的速度非常慢,大约10秒,我们知道这是来自ORDERBY子句。这个查询让我有点不知所措,我不知道如何优化它,让它运行得更快。请注意,orderby字段来自wp\\