【发布时间】:2012-08-13 04:51:57
【问题描述】:
这是我一直在努力解决的一个问题的概括。我的情况是我有一个 WordPress 网站,其中包含多种“帖子类型”(例如文章、博客文章、产品等)。按照现在的惯例,我想在不同的类别中显示每种帖子类型的搜索结果。
我遇到的问题是构建搜索。我应该为每种帖子类型运行一个单独的数据库查询,还是应该运行一个大查询并通过 PHP 将所有内容分开?我倾向于倾向于后者,但我遇到的问题是分页。我可能不必在查询中设置任何LIMIT,因为如果我有来自一种帖子类型的多个匹配项,则搜索不会返回来自其他帖子类型的任何结果。
那么,从性能和一般最佳实践的角度来看,最好是在没有LIMIT 子句的情况下使用一个大查询,还是为每次搜索运行多个查询?
注意:这类似于我不久前在 WordPress Stack Exchange 网站上询问过的a question。我当时接受了多查询解决方案,但我仍然对此不太确定。
【问题讨论】:
-
为什么不是多查询解决方案?从用户的角度来看更好:我不想在只搜索一种数据时支付大搜索的成本。从代码的角度来看它更好,因为独立地发展这样的搜索更容易。它更清洁、更轻。
-
如果用户愿意,我肯定会允许用户将搜索范围缩小到特定的内容类型,在这种情况下,我肯定会在数据库中进行过滤。在这个问题中,我关注的是用户没有指定内容类型的情况。我不确定运行通过 PHP 过滤的大型搜索或几个较小的搜索是否会花费更多。这有意义吗?
标签: php mysql performance wordpress