我正在研究包含來自不同傳感器的讀數的系統,其中一些傳感器可能包含比單個讀數更多的鍵。由於它們都是傳感器讀數,我正在尋找一張表來存放這些讀數,並且有一個用於主要讀數的字段,但是仍然需要存儲任何額外的信息。JSON與元數據表的性能
對於這些額外的信息,我正在考慮兩種解決方案之一,但是我想知道是否有人做過類似的事情,並且對兩者之間的性能差異有所瞭解。
選項1
儲存在傳感器讀數記錄本身內的JSONB列中的額外數據。我讀過PostgreSQL 9.4中添加的JSONB實現是非常好的,但是我不知道這對我的用例有多快(不確定我將要處理的記錄數量是多少又那麼很難衡量。)
選項2
創建副「元數據」有效表鍵值存儲。一列表示鍵,另一列表示值。這將允許我使用適當的索引,並且Postgres將能夠生成更準確的查詢計劃。
有誰知道這可能會表現更好嗎?我可能會做更多的插入記錄而不是讀取,而且當我進行讀取時,很可能會同時記錄很多記錄,而不僅僅是可能影響此決定的單個記錄。
我以爲選項2可能是更好的選擇,因爲它不是真正的非結構化數據,並有能力索引它是有益的,但如果有人可以確認/拒絕這個會很好。
在你的情況下,我總是喜歡一個鍵值結構,但不能確認它是基於事實的,所以把它作爲你直覺的證實。 – LBA
這是我的想法,雖然自從找到名稱(EAV),我正在閱讀大量的帖子,說這是一件可怕的事情,我應該添加多列,即使他們不使用? – PaReeOhNos