官方 Xbox Auth 文档将 XUID 称为无符号 int64,因此,我预计 SQL 等效项 BIGINT 是将其存储在 MySQL 数据库上的最有效方法。
但是,我发现许多程序员在他们的数据库中将 XUID 存储为 VARCHAR(20),经过一些研究,这些是我发现这些数据类型之间的主要区别:
- VARCHAR(20) 使用最多 21 个字节(取决于文本的长度)
- BIGINT 始终使用 8 个字节,与文本长度无关。
这就是我想到这个问题的原因:在 SQL 上存储 XUID 最有效的方法是什么?
最佳答案
如果 XUID 是 64 位无符号整数,则它的值可以为 0 到 18,446,744,073,709,551,615。所以 VARCHAR(10)
不会足够大;您需要使用VARCHAR(20)
。
将其存储为 BIGINT UNSIGNED
(始终 eight bytes )应该比 VARCHAR(20)
稍微更高效(并且使用更少的数据库磁盘空间) >(最多 21 个字节,具体取决于要存储的数字的大小,假设该列的字符集为每一位数字一个字节)。
关于mysql - 在 SQL 上存储 XUID 最有效的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54339391/