0

我正在尝试制作一些分类广告网站。我发现了一些开源分类项目:osclass

所以我准备参考osclass来设计数据库结构。osclass的数据库结构是这样设计的:

类别项目数据表已分为 7 个小数据表,如:

oc_t_item: Stores some base item information.
oc_t_item_comment: Stores the comment for item.
oc_t_item_description: Stores title, content for the item.
oc_t_item_location: Store the location information for the item.
oc_t_item_meta: Store some extra meta information for the item.
oc_t_item_resource: Store the image resources information for the item.

但我认为这不是明智的举动,尽管它使逻辑和结构清晰。如果我们想检索一些关于某个类别项目的信息,我们必须在这些数据表之间做很多连接操作,这会导致很大的性能损失。那么,将一些大数据表拆分成一些小数据表的基本原则和最佳实践是什么?

4

1 回答 1

1

您不应该仅仅出于对joins 的关注而需要像这样拆分表。如果相关表使用 FK 的主键或具有正确列的索引,则数据检索将非常有效。有关如何使用查询分析来确保您的查询使用正确的索引、参考等的示例,请参见这篇文章和评论+答案。

此外,如果您要拆分表格以将location(varchar 字段?)之类的内容移出表格,那么您留下的字段是否具有固定宽度?否则,如果表中仍有其他可变宽度列(例如item_name.

(附带说明,请参阅有关 ppl 考虑为提高性能而进行的优化类型的答案。)

于 2013-08-06T09:15:27.413 回答