Dan*_*llo 287

KEY并且INDEX是MySQL的同义词.他们的意思是一样的.在数据库中,您可以使用索引来提高数据检索的速度.通常在JOIN.WHERE,和ORDER BY子句中使用的列上创建索引.

想象一下,你有一个名为的表users,你想搜索所有姓氏为'Smith'的用户.如果没有索引,数据库必须遍历表的所有记录:这很慢,因为数据库中的记录越多,查找结果所需的工作就越多.另一方面,索引将帮助数据库快速跳到持有"史密斯"记录的相关页面.这非常类似于我们人类通过电话簿目录查找姓名的人:我们不会从头到尾搜索目录,只要我们按照某种顺序插入信息即可用于快速跳到'S'页面.

主键和唯一键类似.主键是可以唯一标识行的列或列的组合.这是一个独特键的特例.一个表最多只能有一个主键,但不止一个唯一键.在列上指定唯一键时,表中没有两个不同的行可以具有相同的值.

另请注意,定义为主键或唯一键的列将在MySQL中自动编入索引.

  • @needHELP:如果你有一个名为`passenger`的表,其中包含以下字段:`(id,first_name,last_name,age,passport_number)`,你通常会将`id`列设置为主键.主键自动是唯一键.主要区别在于表上只能有一个主键,并且该列不能包含"NULL"值.没有必要将`id`列设置为`UNIQUE`,因为通过将其设置为主键,它自动保证是唯一的...然后你也可以将`passport_number`设置为`UNIQUE`,这样就不了不止一个乘客...... (55认同)
  • ......可以拥有相同的护照号码.但是,如果没有护照号码,您可能会有一些乘客(例如儿童).在这种情况下,您可以在该列中插入"NULL",没有任何问题. (30认同)
  • 我可以同时拥有唯一键和主键值吗? (2认同)
  • @DanielVassallo我喜欢你在MySQL使用的同义词之间清除它的方式. (2认同)

Mar*_*ers 56

KEY和INDEX是同义词.

您应该在性能测量和EXPLAIN显示由于缺少索引而导致查询效率低时添加索引.添加索引可以提高查询的性能(但它可以减慢对表的修改).

如果要将该列(或列)中的值限制为唯一,则应使用UNIQUE,以便尝试插入重复值会导致错误.

PRIMARY KEY既是一个唯一约束,也暗示该列是非NULL.它用于为每行提供标识.这对于通过外键约束与另一个表连接很有用.虽然表不需要具有PRIMARY KEY,但通常是个好主意.


小智 43

主键不允许空值,但唯一键允许空值.

我们只能在表中声明一个主键,但表可以有多个唯一键(列分配).


Buh*_*ndi 16

PRIMARY KEYUNIQUE KEY是它除了具有不同的功能类似.主键使表行唯一(即,不能有2行具有完全相同的键).数据库表中只能有1个主键.

唯一键使表行中的表列唯一(即,没有2个表行可能具有相同的确切值).您可以拥有多个唯一的密钥表列(与主键不同,这意味着表中只有1个表列是唯一的).

INDEX也创造了独特性.MySQL(示例)将为索引的列创建索引表.这样,在该索引表列上查询查询时,更容易检索表行值.缺点是如果你做了很多更新/删除/创建,MySQL必须管理索引表(这可能是性能瓶颈).

希望这可以帮助.


Ash*_*ane 10

唯一键:没有两行相似的列

主键:可以唯一标识表中每一行的最小列数的集合(即,在构成主键的所有列中没有两行相似).表中可以有多个主键.如果存在唯一键,那么它是表中的主键(不是"主键").如果不存在唯一键,那么将需要多个列值来标识行(first_name,last_name,father_name,mother_name)可以在某些表中构成主键.

索引:用于优化查询.如果您要根据某些列多次搜索或排序结果(例如,大多数人将按名称搜索学生,而不是按照他们的滚动编号搜索),那么如果列值全部是"索引"例如使用二叉树算法.


小智 7

主键 -我们可以把只有一个主键的表到表中,当我们正在进入的值到表中,我们不能离开那个栏为空白.

唯一键 - 我们可以在表格上放置多个唯一键,当我们将值输入表格时,我们可能会将该列留空.当我们应用主键和唯一键时,列采用唯一值(不相同).


iru*_*yak 6

主键用于处理不同的表.这是关系数据库的基础.如果您有一个图书数据库,最好创建2个表 - 1)书籍和2)具有INT主键"id"的作者.然后你在书中使用id而不是作者名.

如果您不想重复输入,则使用唯一键.例如,您可能在书籍表中有标题,并且希望确保每个标题只有一个条目.


Pri*_*jee 5

唯一密钥:

  1. 多个值可以为空。
  2. 任何两个元组的唯一键不能具有相同的值。
  3. 可以组合一个或多个唯一键来形成主键,但反之则不然。

首要的关键

  1. 可以包含多个唯一键。
  2. 唯一地代表一个元组。

  • 指数怎么样? (3认同)