gpt4 book ai didi

java - GWT + JDO + GAE,如何安排我的数据以提高性能

转载 作者:行者123 更新时间:2023-12-01 15:56:14 26 4
gpt4 key购买 nike

这是我希望存储在数据库中的结构

祖父->父亲[]-> child []。祖父包含父亲列表,父亲包含 child 列表。

最好的安排方式是什么 -> 嵌入或自己的表格?

我将如何在客户端填充祖父[]。 (我已经研究过 objectify、requestFactory 甚至编码为 DTO)。目前我有2400个祖父,每个祖父有5个父亲,每个祖父有5个 child 。

我的查询有点多,这需要很长时间才能检索对象。 为了(祖父...) 查询Allfather 为了(父亲……) 查询所有子元素

对于每个查询,它是 pm.newQuery(GrandFather.class); pm.执行。

这需要很长一段时间(以分钟为单位)。

最佳答案

首先,如果您使用高复制数据存储,请勿使用 JDO 或 JPA。这是我惨痛的教训。它只是不是为此而设计的。

我没有使用 JDO 或 JPA,而是使用了一个更简单、更干净、更高效的库,称为 Objectify。

至于将数据存储在 HRD 中,您必须详细说明您的用例。如果您有一个祖先模型,那么您可以在 HRD 中保留它的分层结构。如果您的模型还包括“母系”线,您将必须采取不同的做法。

将其分层(如果可能)可能会给您带来 2 个好处:- 能够在层次结构上进行交易。- 避免为父对象建立额外的索引,因为通过祖先获取不需要为父字段建立索引。

还有两个缺点:- 你只能有一位 parent 。因此,您需要决定哪一个是最佳候选者。例如,如果你有母亲、祖母系,你必须选择父亲或母亲,但不能同时成为 parent 。- 放置/获取具有较长层次键的对象时效率较低。例如,始终必须获取父 key 。我建议您在文档中阅读相关内容,因为我可能会误导您。

重要的是要记住,您可能不需要这些好处,而缺点可能会严重影响您的项目。所以你原来的问题的答案是:只有你才能知道。 :)

关于java - GWT + JDO + GAE,如何安排我的数据以提高性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4987680/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com