# PostHog 用 AI 把自家 SQL 解析器重写成 Rust，快了 70 倍

> 原标题：I rewrote PostHog's SQL parser, 70x faster, while barely looking at the code

- 来源：Hacker News 首页
- 发布时间：2026-06-24T18:05:33.000Z
- AX AI 日报：https://ai-daily.ax0x.ai/items/40348
- 原文：https://posthog.com/blog/sql-parser

## 摘要

PostHog 工程师 Robbie Coomber 用多个并行的 Claude Code 会话，把公司原本用 ANTLR 生成的 C++ SQL 解析器，重写成了 1.6 万行手搓的 Rust 代码，速度提升了约 70 倍。旧解析器靠 ANTLR 的图遍历解释器工作，新解析器换成了递归下降加 Pratt 表达式循环，只在必要时才回溯。开发全程靠“神谕...

## 推荐理由

一篇扎实的 AI 辅助工程实践：用 Claude Code 把 PostHog 的 ANTLR C++ SQL 解析器重写成 1.6 万行手搓 Rust，提速约 70 倍。有具体方法和数字，不是公关稿。扣在 78 分是因为它仍是一篇单篇工程博客，影响力有限。

## 锐评

PostHog 工程师 Robbie Coomber 把公司原本用 ANTLR 生成的 C++ SQL 解析器，重写成了手搓的 Rust 代码，速度提升约 70 倍。旧解析器靠 ANTLR 的图遍历解释器工作，相当于每次解析都要走一遍通用流程；新解析器换成递归下降加 Pratt 表达式循环，只在必要时才回溯，路径短了很多。开发全程用旧解析器的输出当标准答案，靠不断找两个解析器输出不一致的 SQL 来迭代修复，最终在所有正常查询上结果一致，只在故意构造的极端写法上有差异。

这篇文章的价值在于展示了一种用 AI 辅助重写核心基础设施的实战方法：不是让模型一次性生成全部代码，而是用并行会话、基于差异的测试循环和属性测试来逐步逼近正确实现。但文章没给出具体的延迟数据、测试用的机器配置，也没说明 70 倍这个数字是怎么测出来的，是端到端延迟还是纯解析耗时。另外，1.6 万行手搓解析器在生产环境里的长期维护成本、对 SQL 方言扩展的灵活性，这些都没展开。如果你也在考虑用类似方式重写解析器或编译器前端，这篇的方法论可以参考，但性能声明需要结合自己的场景验证。
