PostgreSQL查询性能慢

问题描述

我有一个包含两个表的数据库:corr1,corr1_2。这两个表都有两列:c1和c2,每列包含10万行数据。数据是从正态分布中得出的整数。数据高度相关:

  • corr1.c1的最小值为353,最大值为651和271个唯一值
  • corr1.c2的最小值为540,最大值为852和266个唯一值
  • corr1_2.c1的最小值为452,最大值为750和273个唯一值
  • corr1_2.c2的最小值为562,最大值为849和265个唯一值

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

@using Microsoft.AspNetCore.Mvc.Localization

@inject IViewLocalizer Localizer

<nav>
<!--Here is my Bootstrap Navbar-->
                <vc:culture-switcher /> <!-- Here i add the Culture-Switcher to Frontend -->
</nav>

我已经根据以下条件为表创建了索引:

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

有人对我如何提高性能有任何想法吗?或者这对我的计算机要求太高了吗?

解决方法

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

您没有说平均值和标准偏差是多少,但是似乎这两个条件都不是很严格的选择。因此,您最终得到的结果几乎是100000乘以100000结果行。

因此查询速度慢也就不足为奇了。