没有什么邪恶的东西,只是作为一个web开发者的好奇心。
我正在研究Amazon如何实现他们的购物车页面,并注意到他们没有使用基数为10的int值作为订单行标识符,而是使用基数为36的值。
他们是否正在将一些巨大的大整数序列值转换为base-36以保持UI输出简短(我不认为是这样的,因为几分钟后添加到我购物车中的项目将远远超过万亿条记录)?有没有内置了36碱基序列的数据库?还有其他原因/解释吗?
在.Net/SQL Server平台上有类似的东西吗(我知道Guids)?
发布于 2014-03-21 11:50:53
你确定是36号基地而不是32号基地?使用2的幂(16/32/64)具有性能优势...无论如何,他们使用Dynamo存储数据,所以这些可能是用作数据库记录关键字的哈希码。它们几乎肯定不是序列。我怀疑它们是不是UUIDs,因为要在集群中均匀分布它们会很棘手。您可以在描述其架构的the paper中阅读有关Dynamo的更多信息。
为了在.NET中使用base-32,我知道至少有one library可以做到这一点。Base-32很方便,人类可读,URL安全,并且比base-16更好。
https://stackoverflow.com/questions/20892219
复制相似问题