我有一个查询如下:
SELECT
e.event_id,
(
SELECT
event_id
FROM atomic.events
WHERE
domain_userid = e.domain_userid
ORDER BY collector_tstamp
LIMIT 1
) AS parent_event_id
FROM snowplow_intermediary.events_enriched e
LIMIT 1
我正在尝试为每个用户找到第一个事件。这是相当快的~5s。如果我试图找到用户user_ipaddress
而不是domain_userid
它的方式更慢。300s 后它没有完成。
SELECT
e.event_id,
(
SELECT
event_id
FROM atomic.events
WHERE
user_ipaddress = e.user_ipaddress
ORDER BY collector_tstamp
LIMIT 1
) AS parent_event_id
FROM snowplow_intermediary.events_enriched e
LIMIT 1
数据类型为domain_userid varchar(36) encode runlength
和user_ipaddress varchar(45) encode runlength
。
这是查询的解释:
https://gist.github.com/mortenstarfly/4ce3be9b3a19aac2601a
https://gist.github.com/mortenstarfly/2008b0f737259df30695
我真的很想加快第二次查询。有什么建议么?