我知道下载的数据较少会改善最终用户的体验,但我的问题与实际服务器性能有关,响应是否会更快?
将添加\\u字段[]=id(&_字段[]=标题等。。。到上面的url提高服务器性能?
No it would not, 还有几个原因。
当您请求一篇文章时,它会获取数据库中的整个post行,并且还会获取任何post meta和terms,以便一次性批量获取它们,而不是大量低效的较小查询。
因此,当您只要求这些字段的一个子集时,不会节省任何数据库时间或内存,只需添加少量处理即可将其过滤到所需的部分。
最重要的是,你要求定制一款专为你量身定制的女装。这意味着我们无法缓存结果并将其重复使用数百或数千次。因此,我们的可伸缩性可以显著降低,并且可能会有新的查询来获取我们筛选出的数据,因为现在客户端需要这些数据。
服务器端可以节省带宽,但服务器端将位于具有fat网络管道的数据中心,因此与CPU节省相比,这一优势微不足道。
可以采取措施缓解这种情况,例如确保客户端只能请求少量的唯一查询,以便缓存是可行的。
否则,存在一个非常现实的风险,即向客户端进行较小网络传输所节省的时间/速度与服务器生成响应所花费的额外时间相比相形见绌。较大的缓存响应可能需要更多的时间来传输,但传输可以立即开始,浏览器可以在下载时对其进行处理。
所以,进行现实生活中的测量和比较。
但是,如果我构建了自定义端点来进行优化的数据库调用呢
仍然没有,即使您硬编码响应以便不发生数据库查询,服务器仍然必须加载WordPress。它永远无法与专用缓存(如Varnish)或在WP完全加载之前加载并退出的缓存选项(如Batchache)竞争。
同样,您也会错过对象缓存的所有好处。当WP获取POST术语和元数据时,它们会被放入WP_Cache
这样就不会在同一个请求中多次获取它们。如果存在一个对象缓存,那么这个缓存会在主内存中的多个请求之间持续存在,速度会更快。具有此类缓存的站点可能不会进行数据库调用,因为数据已被提取。