使用 INT

优势

  • 存储空间小,只需要 4 byte
  • 插入和更新性能比 string 好,一定程度提高应用的性能
  • join 操作性能好
  • 支持通过函数获取最新值
  • 建立索引占用空间小
  • 查询效率高

缺点

  • INT 类型数据范围有限制,如果存在大量的数据可能会超出 INT 的范围
  • 如果有合并表的操作,可能会出现主键重复

使用string

优势

  • 长度几乎没有限制
  • 适合对表水平拆分,方便扩展
  • 可以自己生成,不受整数的限制

劣势

  • 占用空间较大
  • join 的性能比 INT 低
  • 没有内置函数生成,需要在业务层先生成
  • 不利于外键关联