我需要存储一些社交id ( facebook /google/twitter用户id、facebook place id、ecc.)在我的MySQL数据库中。我在堆栈溢出网站上发现了很多关于这方面的问题,但我没有找到令人满意的答案。例如,您不能100%地确定facebook id将始终是一个未签名的bigint,从facebook文档中可以将facebook id描述为“数字字符串”。谷歌id似乎比bigint大一位数。
我相信varchar列上的索引比bigint列上的索引慢,因此我认为在可能的情况下使用bigint会比varchar更好。但是我意识到,您可以将varchar存储为具有适当属性的二进制文件。
出于这个原因,我考虑对所有这些社会is使用varchar,并且(因为排序不是问题)将其存储为二进制(attribute=binary),这是因为我需要对它们进行快速索引。你的想法是:这是一个好的和快速的解决方案吗?谢谢
发布于 2015-09-19 02:24:11
我用varchar
。关于这些差异,您是正确的,但更重要的是,不能保证当前类型将保持不变。例如,Facebook改变了过去的规模,他们在某个地方提到,Facebook中可能包含字符。
索引是一个索引,如果做得正确,就没有必要担心它的性能。数字索引和varchar
之间没有真正的区别。
发布于 2015-09-19 02:19:53
bigint +索引键+ INNODB =快速
https://stackoverflow.com/questions/32666848
复制