我有一个带有postgres db的django网络应用程序;一般操作是每天我都有一个值数组需要存储在其中一个表中。 没有可预见的需要查询数组的值,但需要能够绘制特定日期的值。 问题是这个数组非常大,如果我将它存储在数据库中,我每年有6000万行,但如果我将每一行存储为blob对象,我就有6万行每年一行。
当您不想使用值行查询时,使用blob对象减少表大小是一个很好的决定吗? 以下是两个选项:
option1 :保留所有
group(foreignkey)| parent(foreignkey) | pos(int) | length(int)
A | B | 232 | 45
A | B | 233 | 45
A | B | 234 | 45
A | B | 233 | 46
...
option2 :将数组折叠为blob:
group(fk)| parent(fk) | mean_len(float)| values(blob)
A | B | 45 |[(pos=232, len=45),...]
...
所以我不想查询pos或长度,但我想查询组或父。 我正在谈论的阅读查询的一个例子是:
SELECT * FROM "mytable"
LEFT OUTER JOIN "group"
ON ( "group"."id" = "grouptable"."id" )
ORDER BY "pos" DESC LIMIT 100
这是典型的django admin list_view页面主要查询。