2013-03-20 82 views
0

我有一個數據庫中有一個自動增量ID字段設置爲一個整數值的幾個表。記錄將每秒添加到這些表格中。當我用完整數值時會發生什麼?這會造成問題嗎?有關如何處理表格的自動增量值的任何建議,這些值將快速增長?如何處理大型數據庫表主鍵

回答

1

這是很多行。從the doc

整型(整數)的數據從-2^31(2,147,483,648)通過2^31 - 1(2,147,483,647)。存儲大小是4個字節。 int 的SQL-92同義詞是整數。

您是否考慮過using GUIDs as primary keys

+1

是的,我認爲GUID,但我擔心會有性能影響。我還讀到,GUID並不總是唯一的,儘管可能性很小,您可能會生成一個已被使用的GUID,但儘可能地我可以理解,可能性仍然存在。 – user65439 2013-03-20 11:40:55

+0

我認爲上面鏈接的文檔是指一些可以解決您的疑慮的文檔。可能值得一些深入閱讀 – 2013-03-20 11:43:23

+0

謝謝布賴恩,今晚我會看看這個文檔 – user65439 2013-03-20 12:15:35

2

與類型INT,從1開始,你會得到超過2十億可能行 - 這應該是綽綽有餘了絕大多數情況下。與BIGINT,你大致得到922 quadrillion(922 15零 - 922'000億) - 足夠你?

如果使用INT IDENTITY從1開始,而你插入一行每一秒,你需要66.5年你打2十億限制之前....

如果使用BIGINT IDENTITY從1開始,並且你每秒插入一千行,你需要一個令人難以置信的2.92億年之前,你達到922四萬億限制......

閱讀更多關於它(與所有的選項有)在MSDN Books Online

+0

感謝您的迴應,爲了防範,我將使用BIGINT – user65439 2013-03-20 13:05:09