什麼是SQL Server表中使用的唯一標識符的最佳實踐?
我已經看過關於使用guid或int的優點和缺點的文章。
我正在尋找與以下主體,外部標識符,guid的應該使用,但對於內部標識符,最好用int的。
我在尋找關於這個委託人和指導方針的最佳方法的反饋。
什麼是SQL Server表中使用的唯一標識符的最佳實踐?
我已經看過關於使用guid或int的優點和缺點的文章。
我正在尋找與以下主體,外部標識符,guid的應該使用,但對於內部標識符,最好用int的。
我在尋找關於這個委託人和指導方針的最佳方法的反饋。
我同意你的原則。在網址中公開整數可以讓網絡訪問者猜到,比如改變網頁的數量,以查看網站的反應。另外,URL中的int類型顯示數據庫的大小。我不想那樣。我喜歡URL中的Guids。
我喜歡所有表的PK的羣集標識列。
我使用GUID列此外,如果我需要建立一個非猜測的標識,但我仍然有我的身份列。
只有一個令人信服的論點,我見過使用GUID作爲聚集PK,它被限制在非常高的插入場景(我記得每秒數百次)。在這種情況下,您不希望一個硬盤驅動器磁頭執行所有磁盤寫入操作,因此GUID會強制它不會簡單地將其添加到表的末尾並在整個位置寫入。
它通常是,但我讀的文章是關於非常高的插入操作。基本上,有很多插入,硬盤驅動器幾乎不能跟上插入,所以解決方案是使用guid,因此插入將分散在驅動器。 – UnhandledExcepSean
哎呀,刪除了我的評論。我想這在你跨越多個驅動器的情況下是有意義的。看起來這樣可能會被不時在個別驅動器上跳來跳去的懲罰所抵消。我不是服務器管理或任何其他專家,只是有點好奇。 – Chad
是的,我仍然不認爲我會開始使用GUID作爲我的聚集索引。這隻會是我甚至會考慮的事情,如果我的插入性能很差,並且消除了導致插入緩慢的其他因素(例如,觸發器) – UnhandledExcepSean
可能重複的[SQL主鍵,INT或GUID或..?](http://stackoverflow.com/questions/4557422/sql-primary-key-int-or-guid-or),[SQL Server - Guid VS. Long](http://stackoverflow.com/questions/1171201/sql-server-guid-vs-long)和其他幾個人 – LittleBobbyTables
與純粹的技術參數一起考慮的一件事是,你的數據庫是否用於臨時查詢。如果這是人類的概念理解數字不guid可以是非常重要的。 –