JSONカラムをシャーディングしてLogfireのクエリを最大1000倍高速化
Shredding JSON columns gave Logfire up to 1000x faster queries

Logfireがセミ構造化属性データのクエリを劇的に高速化する「動的シャーディング」を導入。頻繁にアクセスされる属性を自動的に抽出し、強く型付けされたカラムとして保存することで、JSON全体のスキャンやパースを回避。これにより、以前は30秒でタイムアウトしていたクエリが1秒未満で完了するようになり、場合によっては1000倍以上の高速化を実現。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の基礎の基礎だ