引用外键的值的条件索引

时间:2018-04-09 21:01:18

标签: sql postgresql

我有一张超过2000万件产品的桌子。

产品表具有注册产品的用户的外键。

用户的外键有一个索引,但我想优化它(如果可能的话)。

我想从索引中删除系统中处于非活动状态的用户的产品。这相当于20%的产品。

有可能吗?这是表演吗?

2 个答案:

答案 0 :(得分:0)

删除20%的索引不会对性能造成太大影响,我不这么认为。

无论如何,这都是问题所在。删除索引的唯一方法是NULL输出具有注册用户的字段。忘记这些信息可能不是一个好主意。

也许还有其他方法可以优化性能,然后才能弄清楚如何做一些看起来相当困难但可能收效甚微的事情。

答案 1 :(得分:0)

如果性能对您非常重要,您可以考虑在产品表中保存必要的信息。 E. g。添加用户不活动的列。但这会产生负面影响,你必须保持这个值的更新,这可能很麻烦。

另一个解决方案可能是http://wilddiary.com/validate-json-against-schema-in-java/,自PostgreSQL 9.3起支持。您只能将相关的行(和列)存储到物化视图中。由于它们基于普通表,因此您可以照常优化所有请求。