gpt4 book ai didi

java - 为什么我的对象的写入操作计数如此高?

转载 作者:太空宇宙 更新时间:2023-11-04 08:13:14 25 4
gpt4 key购买 nike

我需要帮助理解为什么我坚持使用数据存储的模型对象之一会花费如此多的写入操作。查看开发控制台中的数据存储查看器,它显示我需要 31 个写入操作来创建此对象;单击“显示索引”链接,我可以看到为此对象定义了两个索引(按预期),并阅读文档:

New Entity Put (per entity, regardless of entity size): 2 Writes + 2 Writes per indexed property value + 1 Write per composite index value

那么,如果我理解正确的话,创建或删除此对象需要 2 次写入 + 2 次写入 * 2 索引属性值 + 0(我没有复合索引值)= 6 次写入操作?

修改:

Existing Entity Put (per entity) 1 Write + 4 Writes per modified indexed property value + 2 Writes per modified composite index value

如果修改非索引属性,则应花费 1 次写入成本;如果修改一两个索引属性,则应花费 5(或 9)次写入成本?我很困惑为什么开发控制台报告需要 31 个写入操作...

对象如下:


公共(public)类 Media 实现 IMedia {



私有(private)静态最终长serialVersionUID = 1657456300412658003L;
//获取文件服务
私有(private)静态FileService fileService = FileServiceFactory.getFileService();

@Extension(vendorName="datanucleus", key="gae.unindexed", value="true")
@执着的
私有(private)字符串标题;

@Extension(vendorName="datanucleus", key="gae.unindexed", value="true")
@执着的
私有(private)字符串作者;

@执着的
@Extension(vendorName="datanucleus", key="gae.unindexed", value="true")
私有(private)文字描述;

@执着的
@Extension(vendorName="datanucleus", key="gae.unindexed", value="true")
私有(private)媒体类型媒体类型;

@执着的
@Extension(vendorName="datanucleus", key="gae.unindexed", value="true")
私有(private)字符串完整路径;

@执着的
@Extension(vendorName="datanucleus", key="gae.unindexed", value="true")
私有(private)字符串文件名;
@执着的
@Extension(vendorName="datanucleus", key="gae.unindexed", value="true")
私有(private)长尺码;
@执着的
@Extension(vendorName="datanucleus", key="gae.unindexed", value="true")
私有(private)字符串内容类型;
@执着的
@Extension(vendorName="datanucleus", key="gae.unindexed", value="true")
private boolean isDeactive;
@执着的
私有(private)字符串图表ID;
@短暂的
私有(private) IChart 图表;
@执着的
私有(private) boolean 值已批准;

@首要的关键
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
私钥 key ;

@执着的
私有(private)日期图像日期;
@短暂的
私有(private) BlobKey blobKey;
@执着的
@Extension(vendorName="datanucleus", key="gae.unindexed", value="true")
私有(private) float imageLatitute = 190;
@执着的
@Extension(vendorName="datanucleus", key="gae.unindexed", value="true")
私有(private) float imageLongitute = 190;

...

最佳答案

尝试打开 Appstats。它可以让您深入了解 I/O 成本的来源。

要考虑的另一件事是索引写入。拥有的索引属性或复合索引条目越多,编写实体的成本就越高。

关于java - 为什么我的对象的写入操作计数如此高?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10868223/

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