我有一个表格,每行有100多个值,所以我正在探索不同的存储方式。
没有任何索引,如果我将这100个值存储在postgresql的integer[]
列中,我会丢失任何内容吗?与将它们存储在单独的列中相比。
另外,因为我们可以为数组elemnet添加索引,
CREATE INDEX test_index on test ((foo[1]));
与列上的常规索引相比,使用这样的索引会产生性能差异查询吗?
据我所知,这种性能差异会在具有可变长度元素的数组中出现;但我不确定固定长度的。
答案 0 :(得分:0)
不要采取懒惰的方式。 如果你需要将100个或更多的值存储为数组,那么它是正常的,如果它有你的应用程序的数组,你的数据。
如果您需要查询数组的特定元素,那么无论性能如何,此设计都不好,您必须使用列。这将帮助您在必须删除"列"在中间或重新设计它。
无论如何,正如Frank在评论中写的那样,如果值都是相同类型,请考虑将它们建模到另一个表(如果含义相同)。