私は、さまざまなセンサの読み値を含むシステムで作業しています。その中には、単一の読み込みよりも多くのキーを含むものがあります。これらのすべてがセンサーの読み取り値であるため、私は、これらの読み取り値を格納するテーブルを1つ用意し、主要な読み取り値のフィールドを探していますが、余分な情報はまだ格納する必要があります。JSONとメタデータテーブルのパフォーマンス
これらの余分な情報については、私は2つの解決策のいずれかを考えていますが、誰かが同様のことをしているかどうかを知りたいと思います。
オプション1
ストアセンサーの読み取りレコード自体の中JSONB列内の余分なデータ。私は、Postgres 9.4で追加されたJSONBの実装はパフォーマンスが優れていると読んだことがありますが、これは私のユースケースでどれくらいの速さであるか分かりません(実際にレコードの数はわかりません。まだ一生懸命ゲージに。)
オプション2
効果的に二次「メタデータ」テーブルのキーと値のストアを作成します。キーを表す1つの列と値を表す1つの列。これにより適切なインデックス作成を使用できるようになり、Postgresはより正確なクエリプランを作成できるようになります。
このうちどれが優れているか知っている人はいますか?私は読み込みよりも多くのレコードを挿入する傾向があります。読み込みを行うと、この決定に影響を与える可能性のある単一のレコードだけでなく、一度に多くのレコードになる可能性が高くなります。
オプション2は、実際には非構造化データではないという点で、より良い選択となるだろうと考えていましたが、それをインデックス化する機能は有益ですが、素晴らしいことだ。
あなたの場合、私はいつもキーバリュー構造を好みますが、事実に基づいて確認することはできませんので、これをあなたの腸の感情の確認として受け取ります。 – LBA
これは私の考えでしたが、名前(EAV)を見つけて以来、私はたくさんの投稿を読んでいますが、これはひどいことであり、使用されなくても複数の列を追加すべきです。 – PaReeOhNos