我正在研究包含来自不同传感器的读数的系统,其中一些传感器可能包含比单个读数更多的键。由于它们都是传感器读数,我正在寻找一张表来存放这些读数,并且有一个用于主要读数的字段,但是仍然需要存储任何额外的信息。JSON与元数据表的性能
对于这些额外的信息,我正在考虑两种解决方案之一,但是我想知道是否有人做过类似的事情,并且对两者之间的性能差异有所了解。
选项1
储存在传感器读数记录本身内的JSONB列中的额外数据。我读过PostgreSQL 9.4中添加的JSONB实现是非常好的,但是我不知道这对我的用例有多快(不确定我将要处理的记录数量是多少又那么很难衡量。)
选项2
创建副“元数据”有效表键值存储。一列表示键,另一列表示值。这将允许我使用适当的索引,并且Postgres将能够生成更准确的查询计划。
有谁知道这可能会表现更好吗?我可能会做更多的插入记录而不是读取,而且当我进行读取时,很可能会同时记录很多记录,而不仅仅是可能影响此决定的单个记录。
我以为选项2可能是更好的选择,因为它不是真正的非结构化数据,并有能力索引它是有益的,但如果有人可以确认/拒绝这个会很好。
在你的情况下,我总是喜欢一个键值结构,但不能确认它是基于事实的,所以把它作为你直觉的证实。 – LBA
这是我的想法,虽然自从找到名称(EAV),我正在阅读大量的帖子,说这是一件可怕的事情,我应该添加多列,即使他们不使用? – PaReeOhNos