wp query是否仍执行元比较
WP Query doesn\'t do comparisons, it asks the database to do them in an SQL query. MySQL/MariaDB does the comparison.
您需要通过通过
EXPLAIN
查询以查看特定数据库安装如何计划查询。不同的数据库版本和配置可能表现不同。
如果你的怀疑是正确的,那么从WordPress的角度来看,你将无能为力。但这是一个骗局,一场白费力气的追逐。这不是一个您可以修复的问题,而且一切都会非常快,因为这个查询从根本上讲总是很慢。
请记住,因为它是post meta表,而该表不是为执行此类查询而设计的,因此默认情况下每页请求的post数为10,需要计算出页数,因此使用问题中的代码不可避免地要进行全表扫描。否则它怎么知道只有5个呢?
这个查询会很慢,但会很慢,因为您要求它按元数据过滤帖子ID,而该表不是为这些类型的查询设计的,这就是为什么要为类别和标记创建专用表,而不是将它们存储在帖子元数据中。meta_query
以及相关的meta_value
参数不可缩放,因为它涉及全表扫描。随着您的站点规模的增长,查询将变得越来越慢,越来越昂贵。为你的post meta设置一个数值将有助于缓解这种情况,而且你可能会问到更糟糕的post meta查询WP_Query
创建。
你的理想情况可能是,帖子有expired
通过常规cron作业自动添加的某种标记,但这是另一个需要另一个问题的主题。