我有一张超过2000万件产品的桌子。
产品表具有注册产品的用户的外键。
用户的外键有一个索引,但我想优化它(如果可能的话)。
我想从索引中删除系统中处于非活动状态的用户的产品。这相当于20%的产品。
有可能吗?这是表演吗?
答案 0 :(得分:0)
删除20%的索引不会对性能造成太大影响,我不这么认为。
无论如何,这都是问题所在。删除索引的唯一方法是NULL
输出具有注册用户的字段。忘记这些信息可能不是一个好主意。
也许还有其他方法可以优化性能,然后才能弄清楚如何做一些看起来相当困难但可能收效甚微的事情。
答案 1 :(得分:0)
如果性能对您非常重要,您可以考虑在产品表中保存必要的信息。 E. g。添加用户不活动的列。但这会产生负面影响,你必须保持这个值的更新,这可能很麻烦。
另一个解决方案可能是http://wilddiary.com/validate-json-against-schema-in-java/,自PostgreSQL 9.3起支持。您只能将相关的行(和列)存储到物化视图中。由于它们基于普通表,因此您可以照常优化所有请求。