V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
rv54ntjwfm3ug8
V2EX  ›  数据库

不会产生负数的 ID 字段用 unsigned int 还是 signed int 更好?

  •  
  •   rv54ntjwfm3ug8 · 2022-04-14 19:03:48 +08:00 · 1417 次点击
    这是一个创建于 958 天前的主题,其中的信息可能已经有所发展或是发生改变。

    好像很少见用 unsigned int 做 ID 的,Google 了一下有人说 unsigned int 经常需要被转换会导致性能问题,而且 unsigned int 的数据范围太大被转换成 int 时有可能会溢出

    5 条回复    2022-04-15 10:22:36 +08:00
    westoy
        1
    westoy  
       2022-04-14 19:06:37 +08:00   ❤️ 1
    unsigned int 是 mysql 专属的啊, 以前用 mysql 手动建表的蛮多的

    后来用 ORM 或者各种 db 迁移工具维护表的多了, 这种单一数据库特性就用的少了
    est
        2
    est  
       2022-04-14 19:09:08 +08:00
    需要别人维护的,signed int 。

    自己搞着玩的,非正式场景的,mysql 不用挪窝的,刚好就缺一半取值范围的,unsigned int
    akira
        3
    akira  
       2022-04-14 19:29:37 +08:00
    金币变成 -1 不会死人,但是变成 FFFFFFFF ,那是会出人命的
    leonhao
        4
    leonhao  
       2022-04-15 10:02:55 +08:00
    unsigned int 是 MySQL 的一大神坑,老老实实用 bigint
    msg7086
        5
    msg7086  
       2022-04-15 10:22:36 +08:00
    无脑 bigint ( int64 )。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1028 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 20:45 · PVG 04:45 · LAX 12:45 · JFK 15:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.