Possible Duplicate:
Fetching a random record from the Google App Engine Datastore?
如何使用 GQL 有效地选择随机数据库记录?
例如。我有一个报价模型,我每次都需要选择一个随机报价。这个问题是根据我的理解得出的,即不能保证 ID 属性随着生产服务器中的每次插入而自动递增。
最佳答案
自动生成的 ID 保证是唯一的,但不是连续的或严格递增的。
有already many questions关于此stackoverflow ,并在组中。
有几种常见的解决方案:
- 生成并存储随机数 在您创建实体时, 然后随机选择一个数字并查看 (通过查询)壁橱 记录到它。
- 实现一些 确保您的实体 ID 的机制 被“密集”填充,然后获取 使用按键在已知范围内。
- 定期生成随机列表 实体并返回实体 那些 list 。这可能采取以下形式 弹出实体的堆栈的 脱离或作为实际列表 返回。
您不想做的是选择一个随机偏移量。偏移的效率非常低,因为数据存储区仍然必须扫描所有跳过的实体。
关于google-app-engine - GQL随机记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4351715/