在MySQL中,如果我在两列上创建一个唯一键,比如说
独特的钥匙my_key(column1,column2)
是否有必要建立另一个关键column1?我的目标是让column1和column2是唯一的,我会做很多由column1键入的选择.
Mar*_*ers 12
不,这不是必需的,因为可以使用(column1,column2)上的索引而不是column1的索引.
您可能希望仅在第二列上创建一个新索引,因为当仅搜索(column2)时索引(column1,column2)不好.
不,您的my_key索引会处理column1对column1AND 的任何查询或条件column2.但是,如果仅进行查询column2,则应添加其他索引以便column2能够有效地进行查询.
此外,如果两个column1和column2是唯一的,那么你可能要考虑使用类似
[...]
UNIQUE(column1),
UNIQUE(column2),
PRIMARY KEY (column1, column2);
Run Code Online (Sandbox Code Playgroud)
这确保了column1和column2是唯一的,并且任何查询只选择column1和column2可以仅使用索引的访问被检索.