如果有下表,创建主键的最佳实践是什么?
这3个INT
的组合将始终创建唯一的标识符,因此是我的主键。我应该将所有三列都分配给一个主键吗?
col1 | col2 | col3
1 50 1540
2 50 1540
1 50 1541
1 51 1540
仅将单个列主键创建为CHAR(N)
或VARCHAR
,如以下所示,会更聪明吗?
50_1540_1
50_1540_2
50_1541_1
51_1540_1
我正在考虑性能问题,因为表可能超过1亿行
哪个更聪明?对于这种特殊情况,将所有三列分配为主键。这是三个原因:
就是说,我不喜欢复合主键。我建议您用unique
约束(或索引)声明三个。然后,将一个自动递增的键作为表的主键。