Google App Engine数据存储区中自动生成的最大ID是多少?
为什么会出现这个问题?
我想使用字母表以 #### - #### - #### 等格式向我的客户展示更加用户友好的ID:
0123456789ABCDEFGHIJKLMNPQRSTUVWXYZ
已移除字符O以避免与数字0混淆。
我需要知道需要多少组###才能代表所有ID。
答案 0 :(得分:5)
2 ^ 53(64位浮点数的整数部分)
答案 1 :(得分:3)
从“如何存储实体和索引”文档(https://developers.google.com/appengine/articles/storage_breakdown/):
键的第一个组件是实体类型 - 给予模型对象(str)的模型或类名。下一个组件是ID(int64)或密钥名称(str)。请注意,实体可以具有数字ID或键名,但不能同时具有两者
所以它听起来像ID,如果一个整数是64位,我相信它是签名的,那么你将有2 ^ 63 - 1作为最大值(9223372036854775807)。
并从数据存储区(python)文档的这一部分开始:https://developers.google.com/appengine/docs/python/datastore/entities#Python_Assigning_identifiers
可以将数据存储配置为使用两种不同的自动ID策略生成自动ID:
默认策略生成大致统一的随机ID序列 分散式。每个ID最长可达16位。
旧版策略会创建一系列非连续的较小整数ID。
这将是16位十进制数字(因此长度为16个字符)