facebook使用什么数据类型来存储userid,对于这样的字段性能和可伸缩性角度来说应该是最佳数据类型。
如果一个人使用int 4个字节,那么我猜它不够大,如果8个字节为int那么如何为每个用户分配随机数或为字符串分配相同的内容。
那么为用户提供固定长度的随机ID,保持可扩展性和性能的最佳方法是什么?
答案 0 :(得分:12)
好问题。 Facebook ID可能会导致问题以及推文ID。两者都超过32位整数范围。根据编程语言的具体情况和目的(例如数据库,代码等),您可能希望使用float或double,但根据我的经验,将它们转换为字符串是令人满意的。
在MySQL中,标记为提供的是BIGINT数据类型,其大小足以将这些ID存储为数字。棘手的部分是当您阅读这些值并在程序代码中处理它们时。那些大于系统架构/编程语言允许的最大值的那些将导致错误或被截断,从而导致不一致。
如果你想在MySQL中使用固定长度的大型ID,一个好的做法是使用CHAR类型和HEX格式,例如或者您可以使用UUID格式。
答案 1 :(得分:9)
使用BIGINT(64)将Facebook用户ID存储在MySQL数据库表中 在这里:https://developers.facebook.com/blog/post/45/