SQLite의 Temporary Table 활용하기
(antonz.org)여러 개의 테이블을 하나로 묶어서 쿼리할 때 선택할 수 있는 옵션은 3가지 : CTE, View, 임시테이블
- CTE : 서브쿼리들을 묶어서 실시간으로 계속 계산되기 때문에 서브쿼리가 느리면 같이 느려짐
- View : CTE 처럼 동작하지만 레퍼런스 가능하고 서브쿼리를 계속 반복하지는 않음. 하지만 역시나 계속 실시간 계산. PostgreSQL 같은 경우는 디스크에 저장하는 Materialized View가 있지만 SQLite에는 없음
- Temporary Table : 실제 테이블 처럼 디스크에 데이터를 저장하고 인덱스 생성도 가능. 하지만 DB 커넥션이 살아있는 동안에만 존재함.
- SQLite는 임시 테이블을 별도의 temp 데이터 베이스에 저장함
- temp db는 아예 디스크에서 별도의 파일로 관리하며 현재 DB 커넥션에게만 보임
- 커넥션이 종료되면 자동으로 삭제
- 임시테이블은 데이터에 대해 뭔가를 알아보고 실험하기에 좋으니 편하게 활용 가능