我的一个网站的大部分页面只能由注册用户访问。虽然这些页面确实共享一些常见的静态内容(标题等),但页面上的大多数信息都是使用各种usermeta、postmeta和自定义表数据专门为该用户填充的。
此外,用户不太可能多次访问同一页面。然而,有成千上万的用户可能希望同时访问自己的信息页面,因此性能备受关注。
我对缓存插件的理解是,它们在处理相对静态的内容(如博客条目或“关于我们”的页面)方面做得很好,这些内容很少发生变化,但必须向大量同时请求提供(没有任何差异或自定义信息)。在我的情况下,一旦用户登录并访问其个人信息,真正的性能“命中”就会出现。
在这种情况下缓存插件的效果如何?除了DB优化之外,是否还有其他方法可以帮助减少内存和DB负载?
最合适的回答,由SO网友:chrisguitarguy 整理而成
缓存完整页面对于您描述的情况没有任何好处。用户将更新内容,并期望立即看到他们的更新,这意味着您将花费更多的服务器时间使缓存的页面无效。数据库服务器可能是几乎所有webapp中最大的瓶颈。
您可以做两件事:
将数据库移动到一个单独的服务器上——理想情况下,这个服务器可能有大量内存,唯一的工作就是为数据库提供服务使用更持久的缓存对象,如memcached 或APC. WordPress的核心中有一个对象缓存,但它的生存期仅为一个页面加载。两个链接的对象缓存后端是用memcached替换该缓存的“插件”。任何时候wp_cache_get
调用时,将首先命中memcached/APC,然后再调用数据库