Trawling

개발 · 최신기사

언어와 프레임워크, SDK와 개발 방식·도구의 변화를 다룹니다.

발행

SQL 쿼리 빌더의 두 가지 유형

SQL 쿼리 빌더는 파이프라인이 데이터 처리 과정을 나타내는 ‘데이터 지향’ 방식과 SQL 문법 트리를 채우는 ‘문법 지향’ 방식으로 나뉩니다. 글은 두 방식의 동작 차이와 한계를 설명하고, SQL의 폭넓은 기능을 데이터 지향 인터페이스로 다루도록 설계한 FunSQL을 소개합니다.

발행

Postgres의 AT TIME ZONE 'UTC'가 실제로 바꾸는 것

PostgreSQL의 `AT TIME ZONE`은 입력 타입에 따라 `timestamp`와 `timestamptz` 사이를 서로 반대 방향으로 변환합니다. UTC 기준으로 월 단위 계산을 하려면 시간대를 명시해야 하며, 변환 전후의 타입과 비교 방식을 함께 살펴야 합니다.

발행

Postgres의 SELECT DISTINCT는 데이터가 커지면 느려집니다

Postgres에서 SELECT DISTINCT는 고유한 값이 적어도 조건에 맞는 인덱스 행을 모두 읽으므로, 처리 시간이 전체 행 수에 따라 늘어납니다. DBOS는 재귀 CTE로 인덱스에서 다음 고유 값을 하나씩 찾는 우회 쿼리를 제시하며, 파티션 수가 고정된 벤치마크에서 행 수가 늘어도 지연 시간이 거의 변하지 않았다고 설명합니다.