税务查询比元查询快多少?

时间:2012-04-06 作者:helgatheviking

我正在构建一个公文包帖子类型,我希望有一种方法可以将某些文章标记为特色,一些是正常的(默认),另一些是存档的。这些碎片永远只能是这三件中的一件。由于单数值,我认为这是后元。但是,我读到,按分类法进行查询据说更快,所以我构建了一个解决方案,其中特色、普通和存档是自定义分类法中的3个术语。

我应该坚持这种情况下的分类法,还是切换到post meta。我意识到这是一个意见问题,所以更具体地说:查询速度的提高是否值得创建自定义分类法并对其进行修改以使其只能有一个术语的复杂性?在分类法中,一开始只能有一个术语与分类法的目的背道而驰吗?

2 个回复
最合适的回答,由SO网友:Boone Gorges 整理而成

我不确定其中一个能被直截了当地称为比另一个快。而且,在任何情况下,只有当你开始缩放到很多很多对象时,它才会真正出现。

问题是:Posteta表是一个没有索引的键值表。如果表中有一定数量的行,比如说几十万行,这可能会导致速度问题,因为每当执行以下查询时,MySQL都必须执行完整的表扫描...FROM $wpdb->posts WHERE meta_value = \'foo\' and meta_value = \'bar\'...

另一方面,分类查询需要一个或两个子查询。但是所讨论的表被积极地索引(查询可以很好地缓存),因此这些查询在规模上的性能显著提高(同样,“规模”意味着许多、数千篇帖子)。

就“复杂性”而言,它实际上只是register_taxonomy(). 这个tax_query 参数WP_Query 不比meta_query, 以及wp_x_post_terms() 只是比x_post_meta(). 我也不会担心“破坏分类学的目的”。这些工具是供您使用的,但它最适合您的项目:)并且可能有一天,由于某种原因,您实际上希望每个项目有多个术语,在这种情况下,选择分类法将是一种前瞻性的选择。

SO网友:Rajeev Vyas

在分类法中,一开始只能有一个术语与分类法的目的背道而驰吗?

您可以使用metabox更改它在编辑后页面中的显示方式,使分类法选择框变为只选择一个术语。。。。

我认为在您的情况下,元查询将比税务查询更快,因为元查询需要两个表来连接POST和POSTETA,而分类法将需要三个表POST、taxonomyrelation表和terms表。。。。

结束

相关推荐