Wordpress数据库结构

时间:2012-09-02 15:02:09

标签: mysql database wordpress database-design

我想创建一个ajax post过滤器。过滤wordpress post meta(自定义字段)。

我的帖子有像元演员,流派,持续时间等等。

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

我的结构将是这样的:

后的id 演员 类型 持续时间

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

像这样:

表1: 后ID 演员

表2: 后ID 流派

表3 后ID 持续时间

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

  • 我对数据库结构设计有点新意,我也在阅读有关索引的内容,是否有针对它们的任务?
  • 演员的价值应该是:布拉德皮特还是与他的名字相关的整数:232?

此外,我愿意接受比上述更好的想法。

1 个答案:

答案 0 :(得分:1)

Wordpress看起来设计非常出色,但是它可以完成工作并且做得很好。奇怪的是,通过研究它的设计我们可以想到的效率要高得多。

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

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

1做wp样式并优化

使用自定义帖子类型执行数据库。在admin中创建一个名为ajax-actors的页面,创建一个page-ajax-actor.php文件来处理查询并发送原始结果(没有标题,没有页脚)。 用ajax打电话给www.yoursite.com/ajax-actor。 这将是“慢”,所以你必须优化它。 确保你有apc运行与enougth ram分配给它。 使用wordpress supercache或类似的插件/使用反向代理

2使用轻量级数据库

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

如果您要开始新网站,请使用第一个解决方案。它会更快,您可以更快地将您的网站上线。然后,您可以使用收入来优化它,甚至可以进行完整的重塑。

  

演员的价值应该是:布拉德皮特还是与他的名字相关的整数:232?

每个实体类型应使用一个表。主键必须是整数。然后从其他表中引用此主键。 示例: 表演员 id:整数/主键 name:varchar / with index

名称上的索引会减慢插入速度,但会显着加快使用actor名称的搜索速度。 在电影表中,您可以通过id引用演员。实际上,因为每部电影都是几个演员,所以你需要一个这样的表格: Actors_Movie actor_id:整数 movie_id:整数 role:varchar(这部影片中此actor的角色名称是什么)

希望这会有所帮助。