我应该拆分具有大尺寸数据的表吗?

时间:2011-07-17 07:47:17

标签: mysql database database-design database-table

我正在使用MySQL。我需要将XML文件的内容保存到数据库中。文件大小通常小于10k。

表格如下:

articles
-----------
id
date
writer
...
file_name
file_content (Text)
file_date

当我只选择datewriter时,拆分表是否会提高效果?或者是否还有其他理由拆分此表?

1 个答案:

答案 0 :(得分:3)

这称为垂直分区。

基本上,如果您的总数据集非常大(比如大于RAM),并且大多数查询都不使用大型file_content数据,那么将它放在另一个表中会使主表更小,因此更好的缓存在RAM中,更快,更快。

当然,检索file_content会慢一点,所以这取决于你使用它的频率。

我在论坛上使用了这种技术。我将帖子文本(bbcode解析为HTML)存储在主表中,并将原始帖子(在bbcode中)存储在另一个表中。显示论坛页面时,只会显示主表。原始帖子文本仅用于编辑帖子。这将posts表大小除以2,并避免在此服务器上加倍RAM。