GAE 30 个子查询限制的解决方法

2024-04-23

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

对于这个限制有什么解决方法吗?

Thanks


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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GAE 30 个子查询限制的解决方法 的相关文章

随机推荐

  • 如何在java中排队并调用实际方法(而不是立即评估)?

    有一个对时间敏感的任务列表 但在这种情况下 时间 对于另一个程序告诉我的内容是任意的 它更像是 滴答声 而不是时间 但是 我不希望立即评估所述方法 我希望一个在另一个完成后执行 我在队列中使用链表 但我不确定如何 是否可以访问类中的实际方法
  • 为什么querySkuDetails需要在IO上下文中运行?

    根据https developer android com google play billing integrate https developer android com google play billing integrate th
  • 没有可判定的相等性或排除中间值的鸽巢证明

    在软件基础中IndProp v https softwarefoundations cis upenn edu lf current IndProp html lab244一个人被要求证明鸽巢原理 并且可以使用排除中间 但有人提到这并不是绝
  • 提交后用成功消息替换 HTML 表单,表单使用单独的 php 文件发送邮件

    我有一个内置于index html 中的html 联系表单 然后我有一个mail php 文件 用于发送邮件并使用一些Javascript 当我填写表单并提交时 我已对其进行编码以发送邮件 然后弹出一个成功消息框 然后重定向回index h
  • 从 C 中的路径中分割文件名

    我是 C 新手 但精通 Python 我正在寻找 C 中 string split 1 函数的功能等效项 到目前为止 我已经能够创建一个包含我的整个路径的字符数组 我想分割该字符串 所以我只有文件名 下面我提供了一个示例 char inpu
  • ERRORLEVEL 与 %ERRORLEVEL% 与感叹号 ERRORLEVEL 感叹号

    我想我对 ERRORLEVEL 与 ERRORLEVEL 有基本的了解 但是 ERRORLEVEL 让我困惑 我正在制作一个调用可执行文件的脚本 然后使用任务列表来查看它是否正在运行 然后使用taskkill来杀死它 如果是 然后尝试输出错
  • 如何在 Objective-C 的 switch 语句中使用 goto?

    在我的代码中 我需要能够在同一个 switch 语句中跳转 转到 不同的情况 有没有办法做到这一点 我的代码是这样的 有很多代码我都省略了 switch viewNumber case 500 break case 501 break ca
  • MATLAB - 函数的多个返回值?

    我正在 matlab 中编写 2 个函数 一个初始化函数和一个将项目插入数组的函数 将其视为双向链表 但是 我的初始化函数仅返回 ans 和初始化的数组 我怎样才能让它也设置其他变量的值 这是我的代码 function array list
  • Symfony2功能测试:直接传递表单数据

    我正在使用 phpunit 来运行功能测试 但我在使用某些表单时遇到问题 问题是 phpunit 不支持 JS 而我有一个带有动态填充选择框的表单 需要 jQuery 所以我需要直接传递表单数据 书 给出了以下例子 Directly sub
  • geom_tile单色为0,然后是色标

    我想生成一个热图 其中调色板为绿色到红色 但 0 值为白色 我开始了基于因子具有不同高填充颜色的 geom tile 热图 https stackoverflow com questions 10232525 geom tile heatm
  • 使用 PHP 上传 DOC 或 PDF

    我可以很好地上传图像 但是当我将类型从 image jpg image gif 更改为 application msword 和 application pdf 时 它不起作用 这是我的代码 完全相同的代码适用于图像 但对于上传文档和 pd
  • 使用 Ardulink 命令 Arduino Uno

    我试图在我的 JAVA 应用程序中使用 Ardulink 库来命令我的 Arduino Uno 但没有成功 我不知道我错过了什么 这是我的代码 Link link Link getDefaultInstance boolean connec
  • Prometheus - 监控容器中的命令输出

    我需要监控 eks 集群中具有 nfs 挂载路径的许多旧容器 使用 nfs client helm 图表映射容器 i 中的 nfs 目录 我需要监视我的安装路径何时由于某种原因丢失 而我发现做到这一点的唯一方法是在容器中执行命令 bin b
  • List.empty 与 List() 与 new List()

    有什么区别List empty List and new List 我什么时候应该使用哪个 首先 new List 不会工作 因为List类是抽象的 另外两个选项定义如下the List object http www scala lang
  • Android Studio:“创建新 AVD”窗口中禁用“确定”按钮

    我下载并安装了最新的 Android Studio 版本 0 8 6 测试版 但在尝试创建新的 Android 虚拟设备时遇到了困难 我尝试按照以下步骤操作 https developer android com training wear
  • 在 SwiftUI (5) 和 Xcode (12.4) 中实现 AdMob 插页式广告

    我正在努力在我的应用程序中实现插页式广告 但对 AdMob 提供的文档和新的 SwiftUI 应用程序结构遇到了一些困惑 这里是app swift文件 显示我已经实现了 GoogleMobileAds 并在didFinishLaunchin
  • 计算每年的天数

    我有两个约会 begin lt as Date 2007 05 20 end lt as Date 2010 06 13 怎样计算一年有多少天 输出可能应该是这样的 year days 2007 226 2008 366 2009 365
  • Soundcloud:上传曲目后如何立即知道声音云曲目ID?

    http developers soundcloud com docs api http developers soundcloud com docs api 当我查看 API 文档时 我发现 SC stream tracks 293 fu
  • 共享一个类的离散匿名方法?

    我在玩埃里克 利珀特的Ref
  • GAE 30 个子查询限制的解决方法

    我正在编写一个新闻应用程序 我想让我的用户从包含数十个 约 60 个 来源 卫报 泰晤士报 的列表中选择他们最喜欢的新闻来源 我有一个包含索引属性 源 的新闻实体 我正在寻找一种方法 可以让我绕过 App Engine 施加的 30 个子查