2009-03-04 51 views
7

我知道在SQL Server中,數據庫中「對象」的最大數量有點超過20億。對象包含表,視圖,存儲過程,索引等等。我一點也不擔心超過20億個物體。但是,我想知道的是,SQL Server是否因擁有大量表而受到性能影響。您添加的每個表是否都有性能問題,或者基本沒有差別(假設數據量不變)。任何人都有使用數千個表的數據庫的經驗嗎?我也想知道MySQL的相同之處。SQL Server和MySQL中可工作表的最大數量

回答

8

假設數據量不變,沒有區別。

大概在因爲像減少維護窗口的事情(更小的索引重建)實際上增益,已只讀等

性能是通過查詢和索引確定文件組的能力(在最基本的層面上):不是數量的對象

1

我懷疑SQL Server將有成千上萬的表處理性能問題,但我肯定會。

雖然我已經在數據庫中使用了SQL Server中的數百個表,但沒有任何問題。

+0

不得不讀幾次你的第一句話。我明白你來自哪裏,但這些基本上都是大量的具有相同結構的表格,而不是單獨管理的。 – Kibbee 2009-03-04 15:21:38

+1

如果這些表以編程方式生成,那麼您作爲開發人員也可以通過編程方式處理它們。沒有性能問題(至少不是職業上的) – Davos 2014-10-22 06:12:50

0

通過使用具有許多列的表而不是分解相關表(即使是具有一對一關係的表),SQl服務器也可能遭受更大的性能影響。此外,當您要輸入的數據超出您可以爲列存儲的字節數時,寬表可能會出現問題。您可以創建一個有可能存儲10000個字節的表,但您仍然只能存儲8060個字節。

+0

這是有用的信息,但根本不回答被問到的問題。 – Kibbee 2009-03-04 15:34:39

4

就我所擁有的具有200萬個表的數據庫的最大表數而言。沒有性能影響。我的桌子各有15MB左右。

0

根據我的經驗,我不認爲表格的數量會影響性能。但是,你應該能夠證明你爲什麼在數據庫中有這麼多的表。這是因爲在數據庫端擁有如此多的表格也會影響服務器端開發人員的工作。

IMO如果你根據功能劃分表格,那麼你不能使開發人員的生活變得輕鬆,但也會在你的應用程序中獲得性能增益,因爲你已經從你想要的地方獲得了所需數據的固定表。

說你需要存儲銷售,購買,收據和付款的詳細信息。它們都具有相同的表結構,而不是將它們存儲在單個表中,您可以將它們全部單獨存儲在單獨的表中。有了這些,您就可以在單一表格中獲得銷售的所有細節,同樣也可以購買。因此它可以幫助提高應用程序數據庫層的響應時間,該應用程序是所有Web層中最慢的組件之一。當然,我們通過SQL quires來關注數據庫的性能,但這樣的結構也可以間接地幫助你提高數據庫的性能。