如果我在列上有UNIQUE索引,是否需要再次对其进行索引以优化搜索查询?

时间:2014-07-17 19:05:51

标签: mysql

我有这张桌子

CREATE TABLE `country` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

我想添加一个唯一索引,以便该表不能包含重复的国家/地区。

修改:为了澄清,我希望name列具有唯一值,但我还希望针对SELECT name FROM country WHERE name = ?之类的查询进行优化。

如果我的表格允许重复国家/地区,我通常会使用INDEX密钥来实现此目的。

我需要name列上的两个索引(一个INDEX和一个UNIQUE),还是一个UNIQUE索引可以完成这项工作?

1 个答案:

答案 0 :(得分:1)

如果您希望数据库强制列name包含UNIQUE值,则需要 UNIQUE KEY 代替 KEY

如果您希望数据库允许name的重复值,那么您拥有的KEY就可以了。