我需要在我的MySQL数据库中存储一些社交ID(facebook / google / twitter用户ID,facebook place id,ecc ..)。我在stackoverflow上发现了很多关于这方面的问题,但我没有找到满意的答案。例如,你无法确定100%的facebook id将永远是unsigned bigint,从facebook文档中,facebook id被描述为"数字字符串"。谷歌ID似乎比bigint大一位数。
我认为varchar列上的索引比bigint列上的索引慢,因此我认为在可能的情况下使用bigint会比varchar更好。但我意识到你可以将varchar存储为具有适当属性的二进制文件。
出于这个原因,我正在考虑为所有这些社交ID使用varchar并且(因为排序不是问题)将它存储为二进制(attribute = binary),这是因为我需要一个快速索引。 你的想法是什么:这是一个好的,快速的解决方案吗? 感谢
答案 0 :(得分:2)
我使用varchar
。你对这些差异是正确的,但更重要的是,不能保证当前的类型会保持不变。例如,Facebook改变了过去的规模,他们提到了可能包含字符的地方。
索引是索引,如果操作正确,则无需担心其性能。数字索引或varchar
之间没有真正的区别。
答案 1 :(得分:1)
bigint + INDEX KEY + INNODB =快速