【问题标题】:Optimising WordPress query speed by grouping metadata通过分组元数据优化 WordPress 查询速度
【发布时间】:2016-12-23 19:54:05
【问题描述】:

我正在构建一个电子商务网站,我有大约 10 种不同的自定义帖子类型。对于每个自定义帖子类型,我有大约 20 个自定义字段(每个 meta_key 分配一个 meta_value)。

我正在考虑将所有 20 个自定义字段分组到一个自定义字段中,以便将 20 个元值(数组)分配给单个元键。这实际上会将数据库表中的行数从 20 行减少到每个自定义帖子类型的单行。

例如,假设我的帖子类型为“书”。 目前,我的这种帖子类型的 post_meta 表可能如下所示:

元密钥 |元值 _________________________ 章节 | 5 _________________________ 段落 | 10 _________________________ 作者 |约翰·史密斯 _________________________ 价格 | 19 _________________________

如果我把它转换成这个:

元密钥 |元值 ____________________________ book_detail | [章节:5,段落:10,作者:john_smith,价格:19] ____________________________

这样做会优化 WordPress 查询速度还是只是在浪费时间?

【问题讨论】:

  • 您使用的是哪个 DBMS?以及 meta_key 是如何成为 book_detail 的?
  • 我正在使用 mariadb。我会手动重新编写 php 代码以适应更改。
  • book_detail 是如何进入 meta_key 列的?它是恒定的吗?
  • 我会通过 update_post_meta(1, 'book_detail' , array("chapter"=>5,"paragraphs"=>10,"author"=>"john_smith","price" 手动 book_detail =>19). 基本上我会手动删除当前表中的所有元键并将其转换为“优化?”元键
  • 我没听懂你刚才说的话。您作为上面示例发布的表格中是否还有另一列? 'post_type' 可能吗?

标签: database wordpress optimization metadata


【解决方案1】:

表格应尽可能规范化。不建议存储 CSV 或任何分隔值。

此外,如果您需要查询帖子的特定方面,例如仅chapters,那么规范化数据会派上用场,您只需放置一个简单的谓词:

where metakey = 'chapters';

【讨论】:

  • 非常感谢您的回复,但我不是在寻找任何代码。我需要知道的是,如果我将第一个表转换为第二个表会加快 wordpress 查询速度?
  • 您当前的结构更好。不要对数据进行反规范化。
  • 谢谢,这就是我要找的答案。
猜你喜欢
  • 2015-04-03
  • 1970-01-01
  • 2022-11-11
  • 2019-08-30
  • 1970-01-01
  • 2020-01-26
  • 2013-09-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多