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