Logfire, JSON 컬럼 분해로 쿼리 최대 1000배 빨라져
Shredding JSON columns gave Logfire up to 1000x faster queries

Pydantic의 Logfire가 동적 shredding을 도입해 반구조화된 attributes 데이터를 자주 조회되는 속성별로 강타입 컬럼으로 자동 추출한다. 기존에는 JSON 블롭 전체를 스캔해야 했지만, 이제는 필요한 컬럼만 읽고 zone map으로 파일을 건너뛰어 30초 타임아웃 쿼리가 1초 이내로 끝난다. 2026년 2월부터 전체 고객에게 순차 적용된다.
이전에 30초 후 타임아웃되던 쿼리가 이제 1초 이내에 완료됩니다.
HN 토론
19- sgarland
DB에서 일하는 사람이라면 지난 10년, 아니 그 이상 동안 잘 알고 있던 걸 마치 엄청난 발견이라도 한 것처럼 기업들이 나올 때마다 정말 웃기다.
JSON은 serdes에도 느리고, 특히 쿼리할 때 굉장히 느리다. 꼭 필요할 때만 아껴 써라, 아예 안 쓰는 게 낫다. 정규화는 그렇게 어렵지도 않고, 요즘은 LLM 덕분에 식은 죽 먹기다. Claude한테 스키마를 BCNF로 원한다고 말해봐, 아니면 배짱 부린다면 5NF라고 해도 되고. 성능 문제가 있을 때만, 오직 그때만 비정규화해라.
- zX41ZdbW
이건 꽤 오래된 기법이다. ClickHouse에서는 'shredding'이라는 이름이 붙기 전부터 있었다: https://github.com/ClickHouse/ClickHouse/issues/54864
- japgolly
> 모든 속성을 단일 JSON 컬럼에 저장하는 대신, 가장 자주 접근되는 속성을 자동으로 추출해 별도의 강타입 컬럼으로 만든다.
발견한 건 다행인데 이건 DB 기초 중의 기초다