有人能告诉我使用varchar作为PK是个好主意吗?我的意思是它的效率更低还是等于int/uuid?例如:汽车VIN我想使用它作为PK,但我不确定它是否会被索引或作为FK工作,或者可能有一些陷阱。
hjzp0vay1#
这取决于您要存储哪种类型的数据。在某些情况下(我认为在大多数情况下),最好使用基于整数的主键:
bigint
varchar
这个post on stackexchange比较了一个特定例子中的非整数类型的主键。
1条答案
按热度按时间hjzp0vay1#
这取决于您要存储哪种类型的数据。
在某些情况下(我认为在大多数情况下),最好使用基于整数的主键:
bigint
只需要8个字节,而varchar
可能需要更多的空间,因此,varchar比较通常比bigint比较开销更大。varchar
也需要在其他表中有更多的空间(见p.1)。这个post on stackexchange比较了一个特定例子中的非整数类型的主键。