我正在使用MySQL。我需要将XML文件的内容保存到数据库中。文件大小通常小于10k。
表格如下:
articles
-----------
id
date
writer
...
file_name
file_content (Text)
file_date
当我只选择date
和writer
时,拆分表是否会提高效果?或者是否还有其他理由拆分此表?
答案 0 :(得分:3)
这称为垂直分区。
基本上,如果您的总数据集非常大(比如大于RAM),并且大多数查询都不使用大型file_content数据,那么将它放在另一个表中会使主表更小,因此更好的缓存在RAM中,更快,更快。
当然,检索file_content会慢一点,所以这取决于你使用它的频率。
我在论坛上使用了这种技术。我将帖子文本(bbcode解析为HTML)存储在主表中,并将原始帖子(在bbcode中)存储在另一个表中。显示论坛页面时,只会显示主表。原始帖子文本仅用于编辑帖子。这将posts表大小除以2,并避免在此服务器上加倍RAM。