0

我目前正在设计数据库的过程中。我们有一个现有的系统设计得不是很好,我们正在清理所有清晰可见的小问题,例如,代替bittrue/false标志为varchar数据库设计和性能

我想知道的是,你怎么知道你有一个甜美的数据库设计?或者这是一个神话?我的意思是,纸上的结构可能看起来很棒,但是当一些数据在其中时,它将如何执行。

存储“查找”值的表比存储完整的描述性文本更快吗?例如

错误表

Id ErrorId DateCreated 
1  1   09/12/2011 
2  5   10/12/2011 

错误说明表

Id Description 
1  Warning - failed to validate 
2  Failed to locate file 

在这种情况下,将创建一个view比编写SQL包括必要的加入更有益?

对不起,如果我把这个问题发布在错误的地方。

+0

你真的尝试过吗? – 2012-04-11 08:12:48

回答

0

存储“查找”值的表是否比存储完整的描述性文本更快?

我们测试了在哪里工作。 (我们没有将查询表与其他类型的表区分开来)。但让我指出,你的问题不是关于查找表;你的问题是关于代理键(id号)。您可以创建一个“查找”表而不使用ID号。

有关计时的示例,请参阅this SO question。看起来有一个临界点。在临界点以下,基于自然键的查询通常比基于id号的查询运行得更快。 (更窄的表格和更少的连接。)但是经过临界点,加入代理键比自然键运行更快。

但“更快”并不一定意味着“快”。而“较慢”可能仍然足够快。

+0

感谢您的其他链接。这是一个很好的阅读,加上给了我一些好的理由给谷歌更多的信息。 – 2011-12-14 11:09:07