我的桌子大约有3 * 10 ^ 12行(3万亿),但只有3个属性。
在此表中,您将拥有2个人的ID以及他们之间的相似性(它是介于0和1之间的数字,我乘以100并将其作为小数据来减少空间)。
事实证明,对于我想要进行研究的某个人,我需要执行这些列的汇总,并返回有多少个人具有高达10%的相似性,20%,30%。这些值是固定的(每10个),直到相同的个体(100%)。
然而,正如您所知,查询将非常缓慢,所以我想到了:
由于个人约为170万,搜索不会如此耗时(如果已编入索引,则返回速度非常快)。那么,我该怎么办?
我想指出我的人口几乎是固定的(在数据库完全填充后,预计几乎不会增加)。
答案 0 :(得分:1)
一个视图无济于事,但如果物化视图更新后,如果能够负担大型表的顺序扫描,那么materialized view听起来就像是符合条件的那样。
每个用户可能包含一行,每个百分位数都有一个计数。
或者,您可以将聚合数据存储在一个独立的表中,只要有更改,就会通过大表上的触发器进行更新。