0

我想做一个 ajax 后置过滤器。过滤 wordpress 帖子元(自定义字段)。

我的帖子有演员、流派、持续时间等后元数据。

如果我使用来自 wordpress 的元数据制作脚本,我预计会出现性能问题。因此,我想构建一个包含 post-id 的自定义数据库表,然后是 post-meta 的副本。

我的结构将是这样的:

后身份演员流派持续时间

这是最有效的方法,还是我应该为每个后元制作单独的表格?

像这样:

表 1:身份识别后的演员

表 2:后 ID 类型

表 3 post-id 持续时间

它需要针对大型数据库和大流量进行优化。

  • 我对数据库结构设计有点陌生,我也在阅读索引,他们有任务吗?
  • Actor 的值应该是:Brad Pitt 还是与他的名字相关的整数:232?

我也愿意接受比上述更好的想法。

4

1 回答 1

1

Wordpress 看起来设计得非常糟糕,但它确实完成了工作并且做得很好。奇怪的是,它比我们通过研究它的设计所能想到的要高效得多。

如果要使用另一个表,则必须在发布更新时将其内容与 wp 数据库同步。可能并不容易。

我会在以下任何一个方向上解决这个问题:

1 做 wp 风格并优化

使用自定义帖子类型创建您的数据库。在 admin 中创建一个名为 ajax-actors 的页面,创建一个 page-ajax-actor.php 文件来处理查询并发送原始结果(无页眉,无页脚)。使用 ajax 调用 www.yoursite.com/ajax-actor。这将是“缓慢的”,因此您必须对其进行优化。确保您的 apc 运行时分配了足够多的内存。使用 wordpress 超级缓存或类似插件/使用反向代理

2 使用轻量级数据库

将 wordpress 用于您的编辑内容,并从头开始创建第二个轻量级数据库。通过这种方式,您可以针对特定内容优化数据库。

如果您要创建一个新网站,请使用第一种解决方案。它会更快,您会更快地让您的网站上线。然后,您可以使用收入来优化它,甚至进行彻底的重塑。

Actor 的值应该是:Brad Pitt 还是与他的名字相关的整数:232?

您应该为每个实体类型使用一个表。主键必须是整数。然后你从其他表中引用这个主键。示例:表参与者 id:整数/主键名称:varchar/带索引

name 上的索引会减慢插入速度,但会显着加快使用演员姓名的搜索。在电影表中,您通过 id 引用演员。实际上,由于每部电影有几个演员,所以你需要一个像这样的表: Actors_Movie actor_id : integer movie_id : integer role : varchar (这部电影中这个演员的角色的名字是什么)

希望这可以帮助。

于 2012-09-02T15:30:07.243 回答