在MySQL中,如果我在两列上创建唯一键,比如
UNIQUE KEY my_key (column1, column2)
那么是否需要在column1上建立另一个键?我的目标是使column1和column2唯一,并且我将使用column1进行很多选择操作。
UNIQUE KEY my_key (column1, column2)
那么是否需要在column1上建立另一个键?我的目标是使column1和column2唯一,并且我将使用column1进行很多选择操作。
不需要单独为column1创建索引,因为(column1, column2)的复合索引已经能够胜任。
但是如果你只想搜索(column2),那么你可能需要单独为column2创建一个新的索引,因为复合索引(column1, column2)在这种情况下不是最好的选择。
[...]
UNIQUE(column1),
UNIQUE(column2),
PRIMARY KEY (column1, column2);
这确保了column1
和column2
都是唯一的,并且任何仅选择column1
和column2
的查询都可以使用索引访问来检索。
UNIQUE-index是一个。该索引已排序,因此您不需要第二个索引在第一列上。组合的排序顺序也适用于仅第一列,但不适用于仅第二列。