我试图找出与每个大类别(big_cat)对应的IP数量。为了做到这一点,我需要加入3个表。
我有以下3个表格:
Large categories:
small_cat | big_cat
final_parsed_userlogs_access_longuri:
ip | uri
all_categories_from_all_unique_uri:
uri | small_cat
Access 2016中的以下SQL查询:
SELECT COUNT(Final_parsed_userlogs_access_longuri.ip), Large_categories.big_cat
FROM (All_categories_from_all_unique_uri INNER JOIN Final_parsed_userlogs_access_longuri ON All_categories_from_all_unique_uri.uri = Final_parsed_userlogs_access_longuri.uri) INNER JOIN Large_categories ON All_categories_from_all_unique_uri.small_cat = Large_categories.small_cat
GROUP BY Large_categories.big_cat;
表格分别为220万,440万和110万行(按前面提到的顺序)。显然这将花费相当长的时间来运行,但我现在已经运行了这个查询1.5小时,但它还没有完成。
有没有办法让这个查询运行得更快?我已将所有字段编入索引。如果这不可能;有没有办法大致了解这个查询需要多长时间(通过一些等式或什么)?