google-app-engine - GAE 30 个子查询限制的解决方法

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

我正在编写一个新闻应用程序,我想让我的用户从包含数十个(约 60 个)来源(卫报、时报等)的列表中选择他们最喜欢的新闻来源。我有一个包含索引属性“源”的新闻实体,我正在寻找一种方法,可以让我绕过 App Engine 施加的 30 个子查询的限制,该限制阻止我使用 IN 和 EQUALS 过滤器来获取所有新闻这属于一大堆来源。

有办法解决这个限制吗?

谢谢

最佳答案

请记住,索引非常昂贵 - 它们占用大量空间并成倍增加写入成本。

我会使用不同的设计。我会将源属性设置为无索引,而不是 60 个子查询(如果源列表增长到 500 会发生什么?)。然后我会加载所有最新新闻的列表并将其保存在 Memcache 中。如果您丢失了它,您可以随时重新加载。当有新闻出现时,您还可以轻松地向此列表添加更多项目。您还可以根据时间将此列表拆分为多个 block 。

现在,当用户调用电话时,您可以轻松过滤内存中的此列表。根据您的使用量,这种设计将便宜数十倍或数千倍,并且工作速度更快。最大的区别在于,您不必为每个用户请求一遍又一遍地读取相同的实体,而是只需读取一次即可服务数千个请求,然后再需要再次读取它们。

关于google-app-engine - GAE 30 个子查询限制的解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28521770/

相关文章:

pip - 下载/解压缩安装 googledatastore 时出错

java - 如何浏览本地 Java App Engine 数据存储?

java - 在GAE java中使用inputstream上传文件

python - 在 Flask 中获取信息和发布表单

google-app-engine - Google AppEngine - 大数据存储读取

google-app-engine - 使用Google App Engine的NDB作为消息队列?

java - 通过 _ah/admin 之外的远程 api 管理应用程序引擎的 GUI

python - 来自 GAE python 的 shopify xml 请求

Android Firebase 身份验证不起作用

java - 是否有关于使用套接字与 Google App Engine for Java 服务进行客户端/服务器连接的教程?