我目前使用以下查询,由于数据量(大约14个月),大约需要8分钟才能返回结果。请问有什么方法可以加快速度?SQL--加快查询速度
数据库中的问题是与MySQL的InnoDB引擎
select
CUSTOMER as CUST,
SUM(IF(PAGE_TYPE = 'C',PAGE_TYPE_COUNT,0)) AS TOTAL_C,
SUM(IF(PAGE_TYPE = 'D',PAGE_TYPE_COUNT,0)) AS TOTAL_D
from
PAGE_HITS
where
EVE_DATE >= '2016-01-01' and EVE_DATE <= '2016-01-05'
and SITE = 'P'
and SITE_SERV like 'serv1X%'
group by
CUST
数据6个月划分。进入where子句的每一列都被编入索引。有相当一些索引&将是一个大列表在这里列出。因此,只需以文字总结。对于这个疑问,EVE_DATE + PAGE_TYPE_COUNT
是综合指数&等都是CUST + SITE_SERV + EVE_DATE
,EVE_DATE + SITE_SERV
,EVE_DATE + SITE
之一,
主键实际上是一个虚拟的自动递增数。这不是老实说。我无法获得解释计划。我会看看我能为此做些什么。
我很感激任何帮助,以改善这一个请。
您可以指定使用哪些索引(如果有)以及结构是什么样子?主键被使用等? – CR41G14
你能提供更多的细节:号码行,索引,存储引擎等 –
非常感谢。抱歉,我错过了更新这些细节。现在让我来做这个。 – usert4jju7