当然可以使用varchar作为键字段(或简单地将其连接)。它的主要问题取决于您通常在varchar字段中存储的内容。可变数据。严格来说,不建议更改关键字段。一个人的姓名,电话号码,甚至他们的SSN都可以更改。但是,即使有两个John
Smiths,内部ID为3的员工也始终为ID 3。
其次,字符串比较取决于许多挑剔的细节,例如区域性,排序规则,空格翻译等,这些细节可以在没有明显原因的情况下中断连接。假设您对要加入的某个字符串使用制表符
t。后来,您更改软件以将
t替换为3个空格,以减少原始字符串中的字符转义符。现在,您已经破坏了所有需要将带有转义的制表符的字符串与外观相同但组成不同的字符串进行匹配的功能。
最后,即使给出两个完全相同的字符串,比较两个整数也比比较两个字符串有一点性能上的好处。整数比较实际上是恒定时间。根据字符串的长度,字符串比较充其量是线性的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)