Google App Engine数据存储区中自动生成的最大ID是多少?

时间:2013-07-27 16:53:06

标签: python google-app-engine google-cloud-datastore

Google App Engine数据存储区中自动生成的最大ID是多少?

为什么会出现这个问题?

我想使用字母表以 #### - #### - #### 等格式向我的客户展示更加用户友好的ID:

 0123456789ABCDEFGHIJKLMNPQRSTUVWXYZ

已移除字符O以避免与数字0混淆。

我需要知道需要多少组###才能代表所有ID。

2 个答案:

答案 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个字符)