2

我在 Java 的容器对象中有几十万个ProtoBuf对象。

容器变得非常大,序列化到 MySQL 数据库似乎是最好的主意。

使用 Java 在 MySQL 中存储 Protobuf 对象的最合理方法是什么?

  • 什么是正确的(反)序列化技术?
  • 我应该在 MySQL Schema 中为序列化对象使用哪种字段类型?
4

2 回答 2

2

使用协议缓冲区内置序列化技术。 序列化protobufs,然后将序列化后的数据存入数据库。要检索这些值,只需从数据库中取回数据并使用各种 parseFrom 方法之一来取回信息。

我不是 MySQL(甚至一般的 SQL)方面的专家,但您可能会使用 BLOB 数据类型来存储这些数据。您可以有两列,一列保存类名,另一列保存数据。那时可以使用 Java 反射来加载所需的类,并在该对象上调用 parseFrom。

于 2012-06-21T15:08:50.087 回答
0

您可能会比 Hibernate 做得更糟。这种方法的美妙之处在于,您可以将它们序列化为可以查询的体面记录,同时不会失去将它们转回 protobuf 消息的能力。

于 2012-06-21T12:10:18.023 回答