考虑将序列化的java对象存储为cassandra作为JSON.什么是抓?
发布时间:2020-12-14 05:57:53 所属栏目:Java 来源:网络整理
导读:我正在使用Cassandra 1.2.2.我发现这很容易使用杰克逊来映射我的对象和json和 java存储在数据库中.我实际上是试图对我的所有数据做到这一点.我的问题是,这是个好主意吗?这对我的应用程序有什么不利之处?我的第一个猜测可能是更多的处理开销,但果汁值得挤压
我正在使用Cassandra 1.2.2.我发现这很容易使用杰克逊来映射我的对象和json和
java存储在数据库中.我实际上是试图对我的所有数据做到这一点.我的问题是,这是个好主意吗?这对我的应用程序有什么不利之处?我的第一个猜测可能是更多的处理开销,但果汁值得挤压?有什么其他的缺点我需要知道吗?
解决方法
一个缺点是修改原始数据,反序列化,更改,序列化和写出整个对象.在Cassandra中,写入效率比读取效率要高得多,因此如果可能,避免写入前的读取是有益的.
另一种方法是为JSON中的每个字段使用单独的列.您可以将复合列用于多维数据. 所以如果你有数据: { name: "fred" address: "some town" age: 42 } 而您想要更改地址,如果您将这些列作为单独的Cassandra列,您只需插入一个名为address的列.如果你的JSON序列化了,你必须做更多的工作.如果您的数据是一次写入,则不适用. 即使您的数据是一次写入的,如果您只想从数据中读取一个字段,只需单独存储即可读取该列,而不是读取整个事物并进行反序列化.这只适用于您想要阅读部分数据. 总之,如果您必须更新数据或者只想一次读取零件,则使用单独的列可能会有显着的性能优势. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |