慢查询性能postgresql

Slow query performance postgresql

我有一个包含两个表的数据库:corr1,corr1_2。这两个表各有两列:c1 和 c2,每列包含 100k 行数据。数据是从正态分布中提取的整数。数据高度相关:

问题是对于要求苛刻的查询,查询性能极慢。以下查询非常慢:

SELECT COUNT(*) FROM corr1, corr1_2 WHERE corr1.c1 > 500 AND corr1_2.c2 > 570;

我已经根据以下内容为表创建了索引:

CREATE INDEX corr1_c1_idx ON public.corr1 USING btree (c1)
CREATE INDEX corr1_c2_idx ON public.corr1 USING btree (c2)
CREATE INDEX corr1_2_c1_idx ON public.corr1_2 USING btree (c1)
CREATE INDEX corr1_2_c2_idx ON public.corr1_2 USING btree (c2)

有谁知道我可以如何提高性能,或者这对我的电脑要求太高了吗?

您没有编写联接条件,因此您正在获取交叉联接。

你没说什么是均值和标准差,但是好像这两个条件都不是很挑剔。所以你最终得到几乎 100000 乘以 100000 个结果行。

所以查询慢也就不足为奇了