选择PRIMARY KEY

时间:2012-10-24 17:22:38

标签: sql

我想创建一个“用户”表格,其中包含“电子邮件地址”和/或“userName”unique字段,我还应该将“id”int usigned auto_increment添加为{{{ 1}}或不?

我问,因为我看到一些教科书示例在这样一个表中使用“id”字段,而另一个primary key字段。

2 个答案:

答案 0 :(得分:4)

是的,这是最好的做法。

  1. 您将在其他表中将其用作外键。
  2. 您希望密钥保持唯一(您可能需要更改用户名)
  3. 您希望将密钥编入索引,对于数字类型,索引将比varchar小得多。

答案 1 :(得分:1)

您应该使用userId列,因为使用VARCHAR列数据类型对您的表进行索引会降低性能。

使用INT更有利于提高性能。它们占用的空间更少,更重要的是它们比较快。

可以在一条CPU指令中执行INT比较。对于VARCHARCHAR s,必须依次比较每个字符。这使得每次PK查找更快。如果您有连接表,则每个连接选择都将查找PK。