主键的INT vs VARCHAR数据类型

时间:2012-02-09 06:29:57

标签: database string integer varchar

哪种INTEGER和VARCHAR数据类型更适合用作主键?为什么? 我习惯使我的主键INTEGER,使用VARCAHR会有性能损失吗?

3 个答案:

答案 0 :(得分:3)

整数:

  • 存放空间的空间较小
  • 您可以设置自动增量以自动获取唯一ID

的Varchar:

  • 您可以存储非数字数据

速度方面,它们几乎相同。

答案 1 :(得分:3)

对于集群索引,如果我们想要与其他表连接,则INT速度更快。

如果你了解群集索引和JOIN

,你会明白的

答案 2 :(得分:1)

这取决于您的业务需求。主键也是一列,因此类型实际上取决于列。例如,考虑一个“学生”表。 student_id是主键。如果使用整数表示id,则主列应定义为INT。或者如果您使用类似“G12345”(G表示研究生)的东西,那么您应该使用varchar。