Mysql 表列标记为唯一,表示它';它也被索引了,对吗?

Mysql 表列标记为唯一,表示它';它也被索引了,对吗?,mysql,Mysql,我正在尝试设置一个mysql表。希望是以下内容: id (integer, auto increment, primary) username (varchar 32, unique) email (varchar 32, unique) 我不想在表中允许重复的用户名或电子邮件地址。例如,在启动时,我将测试表中是否已经存在提供的用户名或电子邮件-如果存在,我将取消注册 如果我将用户名和电子邮件列标记为“唯一”,这是否也意味着它们已被索引?我想把它们编入索引,这样我就可以尽可能高效地进行已经存在

我正在尝试设置一个mysql表。希望是以下内容:

id (integer, auto increment, primary)
username (varchar 32, unique)
email (varchar 32, unique)
我不想在表中允许重复的用户名或电子邮件地址。例如,在启动时,我将测试表中是否已经存在提供的用户名或电子邮件-如果存在,我将取消注册

如果我将用户名和电子邮件列标记为“唯一”,这是否也意味着它们已被索引?我想把它们编入索引,这样我就可以尽可能高效地进行已经存在的检查


谢谢

是的,它们将被编入索引。这也是数据库如何尽可能有效地执行已存在检查。

是,它将隐式创建索引

唯一索引会创建一个约束,使得索引中的所有值都必须是不同的。如果尝试添加键值与现有行匹配的新行,则会发生错误。对于所有引擎,唯一索引允许包含NULL的列具有多个NULL值