我試圖理解爲什麼新的ASP.NET身份表使用Guid
(唯一標識符型)作爲停止鍵 - 而不是它現在使用nvarchar(128)
,但仍然保持了Guid
爲string
...爲什麼新的ASP.NET標識錶停止使用Guid(uniqueidentifier類型)作爲關鍵字?
是不是這是一個巨大的浪費? (uniqueidentifier
僅有2 integers
VS整個Guid
爲36字符string
)
我懷疑實體框架可能是負責這...
它是安全的變回唯一標識符鍵?
誰能告訴我使用36個字符串有什麼好處?
'uniqueidentifier'是16個字節,而不是8個。字符串的大小並不取決於它的長度,所以它實際上總是256個字節(nvarchar每個「字符」有兩個字節),並且相同任何指數和協會。我想目標是靈活性,但它似乎對我來說是一個可憐的交易... – Luaan
謝謝,由於某種原因,我有Guid = 2 int卡在我的頭......但我認爲新的SQL服務器只分配使用nvarchar字符的數量,如果只使用了36個,則不會花費全部128個字符 - 但仍然是一大浪費... – Yovav
我知道它使用'nvarchar(max)'來做到這一點(甚至還有一個最小長度的IIRC)和類似的,我還沒有探討它是如何工作,否則。他們有可能解決所有這些問題,但是我們不是簡單地在每個地方都使用'nvarchar(max)'? :D – Luaan