这些桌子将不断插入新的行或更新。不断插入和更新。有一张巨大的桌子还是两张较小的桌子是更好的
我有一个大表含,视频网址,标题,描述,标签,意见,评价,评论
要我把这个给2个小表
ID视频网址,标题,描述
并将其链接到上面。
ID VIDEO_ID,标签,意见,评价,评论
这些桌子将不断插入新的行或更新。不断插入和更新。有一张巨大的桌子还是两张较小的桌子是更好的
我有一个大表含,视频网址,标题,描述,标签,意见,评价,评论
要我把这个给2个小表
ID视频网址,标题,描述
并将其链接到上面。
ID VIDEO_ID,标签,意见,评价,评论
这听起来并不像你的表是非常normalized。您希望避免存储重复数据,除非它具有某些性能优势。重复的信息会导致更大的记录和索引大小,这可能会增加磁盘寻道时间。
如果您列出的列是作为不言自明的,因为他们的声音,那么我将它分成三个表:
videoId,url,title,description,rating,views
videoId,tag
videoId,comment
这将允许您为每个视频创建一个条目,仅存储一次主要信息。然后,您可以将视频与多个标签和多个评论相关联。
规范化,标准化,规范化。如果可能,请将ID保留为整数。 +1 – 2010-01-22 02:54:23
也许甚至是一个Video_Tag_Video表,它将视频与标记相交。这样你有一次存储标签名称。 +1进行标准化。 – 2010-01-22 02:58:28
@Coov - 是的,我认为这将是一条路。我想让我的答案简单明了,而且很难知道海报想要他的标签有多完整,但是如果它将成为整个网站的事情,那么单独的“标签”表格就会比较谨慎。 – zombat 2010-01-22 03:11:47
你所描述的内容叫做“垂直分区”。它是否有益取决于您是否将可变大小的列隔离到一个表中。您还可以水平分区表。阅读Improving Database Performance with Partitioning了解哪些(如果有的话)分区类型有帮助的更多信息。
正如其他人注意的,首先规格化数据,那么只有非规范化如果你没有得到你所需要的性能。
数据集变得越大,越慢读,写和更新将要在一个表。您可以通过将其分解为看起来合乎逻辑的多个子集来最小化这一点。看看WordPress如何存储它的标签和评论。
LOL ....实际上这就是我所描述的... wordpress商店标签和评论分开的帖子表... – bohohasdhfasdf 2010-01-22 05:03:48
评论听起来像它应该是在它自己的表 – alex 2010-01-22 02:44:24