是否最大限度地减少对用户表的数据库查询?

时间:2014-03-07 作者:Caroline

我正试图想出一种战略性的方法来收集大量的用户元数据(并输出到屏幕上),同时保持低数据库查询量。有些页面(如主页、单页和类别页面)在不到半秒钟的时间内加载了40-60个查询。其他包含大量usermeta的页面在5-6秒内加载200-220个查询。

是否有“最佳实践”方法可以在网站加载之前(或网站首次加载时)以某种方式提取所有用户数据,然后为网站上所有其他基于用户的查询利用该信息(即基于用户ID的多维数组)?信息是否会在访问时保存(缓存在浏览器上),或者是否有必要使用瞬态api?

有什么想法吗?

1 个回复
最合适的回答,由SO网友:Rarst 整理而成

你在这里做了很多陈述,让我们一点一点地看一下。

同时保持较低的数据库查询

查询的数量不是一个直接的问题,它们所花费的时间是一个问题。一个非常慢的查询可能比数百个非常快的查询花费更多的时间。

网站加载前(或网站首次加载时)

由于WP是PHP应用程序,所以每个加载都包括整个周期,并且不是持久的。没有“第一次”,因为每次加载都是从零开始的。唯一的持久性部分是保存到数据库或其他文件中的部分。

信息是否会在访问时保存(缓存在浏览器上),或者是否有必要使用瞬态api?

浏览器缓存虽然很重要,但对提高网站本身的性能并没有什么帮助。瞬态恰恰是一种适合此类用例的持久性存储。

然而,与性能任务一样,如果不分析缓慢的操作,就很难推荐任何东西。很容易对性能低下的原因做出错误的假设,并浪费时间试图解决这些问题。

结束