【问题标题】:INT vs VARCHAR datatype for primary keys主键的 INT 与 VARCHAR 数据类型
【发布时间】:2012-02-09 06:29:56
【问题描述】:

INTEGER 和 VARCHAR 数据类型中哪一种更适合用作主键,为什么? 我习惯于将主键设为 INTEGER,使用 VARCAHR 会降低性能吗?

【问题讨论】:

  • 我不知道性能。但是INT 列会给你一个简单的机制来创建一个新的PK,只需加1。VARCHAR 有这样的东西吗?
  • 在达到目的之前没有任何区别。但是当您使用自动递增主键时,INT 很有用
  • 你应该使用 int ,索引很容易,分区很容易,容易增加和容易保持唯一性
  • 查看之前的堆栈溢出问题:stackoverflow.com/questions/3162202/…

标签: database string integer varchar


【解决方案1】:

如果我们想与其他表连接,INT 更快。

如果你对Clustor Index和JOIN有所了解,你就会明白

【讨论】:

    【解决方案2】:

    整数:

    • 存储空间更小
    • 您可以设置自动增量以自动获取唯一 ID

    varchar:

    • 您可以存储非数字数据

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2017-04-05
        • 1970-01-01
        • 2016-11-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多