我有一个包含4列的表格:
id1 int
id2 text or varChar
type
timestamp
主键是(id1,id2,type) 我想改为(id2,id1,type)。
性能有什么不同?也许它会与性能上的键相似?
答案 0 :(得分:1)
不要添加这种类型的主键,对主键使用long / int值,或者如果数据库有一个序列,则使用序列。
而且,如果您想使列或列组合成为唯一,只需将其标记或组合为唯一。
此外,对于非主键的列,您还可以根据需要为其添加索引键。
答案 1 :(得分:0)
您将拥有两个索引,例如:
id1
,id2
,type
- 在一起(因此您必须在WHERE子句中使用所有三列)。
另外
1个案例(id1,id2,类型) - 您可以在WHERE单独id1
中使用。
2个案例(id2,id1,类型) - 您可以在WHERE单独id2
中使用。
但是使用多个列作为主键并不是一个好习惯。