2

Javaのコンテナオブジェクトに数十万のProtoBufオブジェクトがあります。

コンテナは非常に大きくなり、MySQLデータベースにシリアル化するのが最善の方法のようです。

Javaを使用してProtobufオブジェクトをMySQLに保存する最も合理的な方法は何ですか?

  • 正しい(逆)シリアル化手法は何ですか?
  • シリアル化されたオブジェクトのMySQLスキーマでどのフィールドタイプを使用する必要がありますか?
4

2 に答える 2

2

プロトコル バッファに組み込まれているシリアル化手法を使用します。 protobufsをシリアル化し、シリアル化されたデータをデータベースに格納します。値を取得するには、データベースからデータを取得し、さまざまな parseFrom メソッドのいずれかを使用して情報を取得します。

私は MySQL (または SQL 全般) の専門家ではありませんが、おそらく BLOB データ型を使用してこのデータを格納するでしょう。クラス名を保持する列とデータを保持する列の 2 つの列を持つことができます。その時点で、Java リフレクションを使用して必要なクラスをロードし、そのオブジェクトで parseFrom を呼び出すことができます。

于 2012-06-21T15:08:50.087 に答える
0

おそらく、休止状態よりもはるかに悪い結果になる可能性があります。このアプローチの優れた点は、protobuf メッセージに戻す機能を失わずに、照会できるまともなレコードにそれらをシリアル化できることです。

于 2012-06-21T12:10:18.023 に答える