我遇到的Google Cloud Datoreore查询效果极差。
我的实体结构非常简单:
calendarId, levelId, levelName, levelValue
并且只有大约1400条记录,但查询需要500毫秒-1.2秒才能返回数据。对于另一个实体的另一个查询也需要300-400毫秒,仅适用于313条记录。
我想知道可能导致这种延迟的原因。任何人都可以就如何调试此问题或要检查哪些因素给出一些指示?
感谢。
答案 0 :(得分:0)
您遇到了预期的行为。在向用户展示页面时,您不需要获得那么多实体。 Gmail不会向您显示1000封电子邮件,它会根据您的设置向您显示25-100封电子邮件。您应该获取较小的数字(例如,前100个)并实现某种分页以允许用户查看其他实体。
如果这是后端处理,那么您只需要花费很多时间来处理实体,并且您需要考虑到这一点。
请注意,您通常希望大批量获取实体,而不是逐个获取实体,但我认为您已根据问题中的数字进行了实际操作。
答案 1 :(得分:0)
不确定这是否有帮助,但您可以尝试使用嵌入式实体将更多数据打包到单个实体中。嵌入式实体不是真实实体,它们只是允许嵌套数据的属性。因此,不是每个实体有4个属性,而是在实体上创建一个数组属性,该属性存储每个具有这4个属性的嵌入实体列表。实体可以拥有的最大大小为1MB,因此您需要打包数组以尽可能接近1MB的限制。
这会降低真实实体的数量,我怀疑这也会减少整体获取时间。