2011-07-17 40 views
0

我正在使用MySQL。我需要将XML文件的内容保存到数据库。文件的大小通常小于10k。我应该拆分一个大尺寸数据的表吗?

表看起来是这样的:

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

是否拆分表提高性能时,我只选择datewriter?或者还有其他理由来拆分这张桌子吗?

+0

我不认为拆分任何表会提高性能,你知道每个额外的查询会降低性能。 –

+0

什么是文件内容?如果它是一个复杂的xml结构,你可以将这个ab分割成不同的列/表。 – Jacob

+0

@cularis file_content具有关于XML格式文章的原始数据。我不需要拆分XML。 –

回答

3

这被称为垂直分区。

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

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

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

相关问题