有接入过 OAuth 的人应该都发现了, Google ID、Discord ID、Telegram ID 都是大整数,而且都和注册顺序没有直接关系(TGID 和注册顺序有一定关系,但不绝对)这些数据比大小没有意义,为什么不用字符串来存储?

查看 164|回复 18
作者:drymonfidelia   
大整数的兼容性更糟糕,像 TG ID 曾经就出现过因为超过了 int32 的最大值,大量 bot 、第三方客户端工作异常的事件。
alphaControler   
跟数据库存储,和索引查表有关
zmal   
op 是用 oracle 的?
nothingistrue   
第零,对外展示 ID ,跟其存储类型,没啥关系,超过 20 个长度的数字,它明显也得字符串存储。
第一,亿级数据量,性能考虑的比重很大。
第二,这些 ID ,并不是单纯的整数,往往都是同时兼顾离散性、顺序性、生成快速性的特殊序列。
NessajCN   
数字兼容性怎么可能比字符串更糟糕。数字你可以当它是个 int ,是个&[u8](两位两位取字节), 是个&[u8] (取 ascii ),字符串你只能存 &[u8] (ascii) 啊
cccer   
他数据库存的可能仍然是 16 进制的字符串,只是显示的时候转了 10 进制
drymonfidelia
OP
  
@NessajCN 很多编程语言 像 C++,在存储和操作大整数方面没有字符串友好、简单
QAZXCDSWE   
给你机会自辨真伪还说没意义?
NessajCN   
@drymonfidelia 那你当它是大整数来操作不就好了?
NessajCN   
@NessajCN
@drymonfidelia 更正:那你当它是字符串来操作不就好了
您需要登录后才可以回帖 登录 | 立即注册

返回顶部