问题描述
我有一个包含两个表的数据库: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结果行。
因此查询速度慢也就不足为奇了。