Google cloud datastore GAE数据存储类设计需要太多实体字段

Google cloud datastore GAE数据存储类设计需要太多实体字段,google-cloud-datastore,objectify,Google Cloud Datastore,Objectify,我的一个数据存储实体正在增长,字段太多,因此它可能成为未来性能的瓶颈 到目前为止,我看到实体由100个字段组成,如果我需要获取100个实体,每个实体都有100个字段,这肯定会对性能造成影响(考虑从数据存储中获取数据时的底层数据序列化和反序列化) 那么,将整个实体转换为blob并将其与键值一起存储,然后将数据逻辑解析回所需的对象格式,这是一个好主意吗 有什么有价值的建议吗?我不确定将实体转换为blob是否会大大提高性能,因为稍后在应用程序代码中仍然需要将blob反序列化为实体 如果不需要对象的所有

我的一个数据存储实体正在增长,字段太多,因此它可能成为未来性能的瓶颈

到目前为止,我看到实体由100个字段组成,如果我需要获取100个实体,每个实体都有100个字段,这肯定会对性能造成影响(考虑从数据存储中获取数据时的底层数据序列化和反序列化)

那么,将整个实体转换为blob并将其与键值一起存储,然后将数据逻辑解析回所需的对象格式,这是一个好主意吗


有什么有价值的建议吗?

我不确定将实体转换为blob是否会大大提高性能,因为稍后在应用程序代码中仍然需要将blob反序列化为实体

如果不需要对象的所有字段,那么提高性能的一种方法是使用投影查询。(见附件)


投影查询基本上只允许返回所需的属性。这是因为它使用存储在索引中的信息,因此不需要反序列化实体。这意味着您必须为所使用的任何投影查询定义一个索引。

除非您做了一些分析,并发现序列化是一个真正的瓶颈,否则我不会担心您有多少字段。Java中的对象组装和反汇编速度很快。在不太可能的情况下,您实际上达到了极限(例如,数千个实体和数千个字段),您可以编写一个自定义的Objectify转换器,以消除所有反射开销

这听起来像是过早的优化