我想知道如何在Ignite中保存数据。据我了解,有三种方法:
您知道这些方法之间在内存消耗方面是否存在差异?我怀疑至少在使用BinaryObject时,系统必须保存键(某些序列化表示形式),因此它可能比其他方法占用更多的内存。
什么是最具成本效益的方法?
谢谢! 加仑
答案 0 :(得分:1)
这两种方法在占用空间方面没有区别。任何提及的方法都可用于访问相同的数据,因为它们都以BinaryObject格式运行。但是它们在其他方面有所不同。
使用POJO类时,每次访问或修改数据时都会发生序列化和反序列化为二进制格式。此方法导致更高的CPU使用率和堆内存消耗。请注意,存储的内存保持不变,但是占用空间会增加。
BinaryObject方法在性能方面更有效,因为它不需要序列化。 BinaryObject接口直接与序列化表示形式一起使用。
SQL还可以对BinaryObjects进行操作而无需反序列化,因此方法1和3之间没有太大区别。SQL有几点,但是应该考虑在内。参见https://apacheignite-sql.readme.io/docs/performance-and-debugging