遇到个问题。建表的时候,主键是都是用的uniqueidentifier数据类型用来存储GUID值。
但现在项目上有人说使用varchar好。主要原因是在写代码的时候uniqueidentifier要转换为String后才能输出,这样转换的次数多了很麻烦。
在我的理解里面uniqueidentifier存储长度16位,如果要使用varchar类型存储GUID的话就需要36个字符,这样主键的索引就会大一倍。这样来说就是数据库会比较慢。
但我提了这个观点后,他们只是说我对SQL查询基础不熟悉。实际上开销一样,因为uniqueidentifier的查询方式也跟varchar一样。
现在就是想问问,是应该用uniqueidentifier还是varchar。好处是什么?
------解决思路----------------------
但从存储的角度来说,uniqueidentifier是16字节,而存储成字符串的话就是36字节,确实会使索引变大,有可能影响到性能问题
“实际上开销一样,因为uniqueidentifier的查询方式也跟varchar一样”
他们这方面我不知道是从哪里说的,查询方式一样,但是占用的空间变大了啊
------解决思路----------------------
听说过主键用int还是guid的争议,但是没听说过用string和guid的争议。