2016-11-02 1 views
3

나는이 두 테이블ClickHouse DB에서 JOIN 테이블을 더 빠르게 만드는 방법은 무엇입니까?

이벤트

  • ID
  • OS

PARAMS

  • ID
  • SX
  • sy

이 테이블은 id에 의해 1-1의 관계가 있습니다. 쿼리를

select count(*) 
from 
(select id from event where os like 'Android%') 
inner join 
(select id from params where sx >= 1024) 
using id 

을 실행하면 그들은 매우 느린

그러나 모든 데이터가 하나 개의 테이블

select count(*) from event where sx >= 1024 and os like 'Android%' 

에 포함되어있는 경우 쿼리가 매우 빠르게 실행

.

ClickHouse DB에서 어떻게 사용하는 것이 효과적입니까? 하나의 테이블에 모든 데이터를 유지하는 것은 편리하지 않습니다.

답변

2

당신은이 같은 쿼리를 다시 작성할 수 있습니다 : 하나 개의 테이블에있는 모든 데이터 경우

select count(*) 
from event 
where os like 'Android%' 
AND id IN (select id from params where sx >= 1024) 
+0

을 - 78초 - 16 초, 난 하위 쿼리를 사용하는 경우 –