这些表将不断插入新行或更新。
我有一个大表,包含视频网址,标题,描述,标签,视图,评级,评论
我应该把它分成两个较小的表
id视频网址,标题,说明
并将此链接到上面。
id video_id,标签,观点,评分,评论
答案 0 :(得分:5)
听起来你的表格不是normalized。您希望避免存储重复数据,除非它具有一些性能优势。复制信息将导致更大的记录和索引大小,这可能会增加磁盘搜索时间。
如果您列出的列与听起来一样不言自明,那么我会把它分成三个表:
videoId,url,title,description,rating,views
videoId,tag
videoId,comment
这将允许您为每个视频创建一个条目,仅存储一次主要信息。然后,您可以将视频与多个标签和多个评论相关联。
答案 1 :(得分:0)
您所描述的内容称为“垂直分区”。它的好处取决于您是否将可变大小的列隔离到一个表中。您还可以水平分区表。请阅读Improving Database Performance with Partitioning以获取有关哪种(如果有)分区类型有用的更多信息。
正如其他人所说,首先将数据标准化,然后仅在您无法获得所需性能时才进行非规范化。
答案 2 :(得分:0)
数据集越大,读取,写入和更新的速度就越慢。您可以通过将其拆分为看起来合乎逻辑的多个子集来最小化这一点。看看WordPress如何存储其标签和评论。