惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

人人都是产品经理
人人都是产品经理
aimingoo的专栏
aimingoo的专栏
Y
Y Combinator Blog
B
Blog
D
Docker
C
Check Point Blog
A
About on SuperTechFans
云风的 BLOG
云风的 BLOG
F
Fortinet All Blogs
Stack Overflow Blog
Stack Overflow Blog
Recent Announcements
Recent Announcements
MongoDB | Blog
MongoDB | Blog
WordPress大学
WordPress大学
Jina AI
Jina AI
罗磊的独立博客
月光博客
月光博客
博客园 - Franky
L
LangChain Blog
H
Help Net Security
Google DeepMind News
Google DeepMind News
Microsoft Security Blog
Microsoft Security Blog
小众软件
小众软件
T
Tailwind CSS Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

InfoQ - 促进软件开发领域知识与创新的传播

Meta 收购 Manus 这事儿泡汤了 5.5万 Star 开源项目 Ghostty 被迫出走,GitHub 正在终结一代技术人的乌托邦 Slack 长时运行多智能体系统的上下文管理方案 从 T+1 到分钟级:金城银行基于 Apache Doris 构建高可靠、强一致的实时数据平台 谷歌云推出 Agents CLI,简化 AI 智能体开发全流程 Claude官方击穿高薪、高学历的安全防线!Anthropic点名10大高危职业,但有群人暂时稳了 亚马逊云科技终止 WorkMail 服务,并将 App Runner 转入维护模式 OPPO小布记忆:全模态碎片化内容的理解与智能整理实践|AICon上海 模力工场038周AI应用周榜:工具在消失,工作流在出现 Akamai CEO Tom Leighton:Agent 时代来临,云基础设施正从“中心化”转向“分布式边缘” 日均数百亿入库背后:从“人肉调度”到K8s弹性架构,度小满金融基于OceanBase重构入库架构实践 百度文库网盘发布GenFlow 4.0:月活用户超1亿,要把网盘变成全端AI工作台 Altman 投的 Agent 终端 Warp 开源了!斩获3.5万star 哪些客户需要拒, 敢让龙虾决定吗?_AI&大模型_InfoQ 中文站_InfoQ精选视频 从开发到生产:为什么越来越多的机器学习团队纷纷迁移到 Snowflake | BUILD 2025_AI&大模型_王玮_InfoQ精选视频 探索多智能体工作流:LangGraph Snowflake Cortex AI | BUILD 2025_AI&大模型_王玮_InfoQ精选视频 腾讯云分布式缓存数据库:AI Agent - 从提示词工程到 Harness 工程 | 腾讯云数据库 DBTalk_腾讯_凌敏_InfoQ精选视频 基于 Streamlit 为 CSV 数据构建分析智能体 | BUILD 2025_AI&大模型_王玮_InfoQ精选视频 AI 智能体:告别文档缺漏 | BUILD 2025_AI&大模型_王玮_InfoQ精选视频 构建 AI 驱动的数据管道:深度探讨 Snowflake Openflow 与非结构化数据 | BUILD 2025_AI&大模型_王玮_InfoQ精选视频 云端太贵、本地不够聪明,英特尔押注“端云混合AI”:智能体PC会替人完成工作 不到10%的存储投入,可能拖垮90%的GPU投资!IBM把AI Agent塞进存储系统,算清企业最容易忽略的一笔账 Snowpark 上手实战 | BUILD 2025_大数据_王玮_InfoQ精选视频 ClickHouse + Langfuse,构建 Agent 可观测基石 腾讯云分布式缓存数据库:Cluster Proxy 共享连接架构深度解析 | 腾讯云数据库 DBTalk_腾讯_凌敏_InfoQ精选视频 AI 写代码太烧钱了:Copilot、Claude 一起涨价,不如把程序员请回来? 英特尔发布至强600系列工作站处理器与锐炫Pro B70 GPU,全新AI工作站来了 腾讯云分布式缓存数据库:从 Redis 到 Valkey - 开源社区如何快速创新 | 腾讯云数据库 DBTalk_腾讯_凌敏_InfoQ精选视频 印奇这次要“从0重做”智驾模型!首谈阶跃和千里双公司布局:中国AI商业闭环要靠车跑出来 从Cursor返聘归来,90后华裔女高管带Claude开启日更模式:token成本比工程师工资低多了!
Bintrail:利用索引二进制日志实现 MySQL 时间旅行查询
作者:Renato Losio平川 · 2026-05-26 · via InfoQ - 促进软件开发领域知识与创新的传播

Bintrail 是一个新推出的数据层,为 MySQL 带来了针对特定时间点的查询和行级历史查询功能。在主要的关系型数据库中,MySQL 是目前唯一缺乏时间查询功能原生支持的。Bintrail 通过在 ProxySQL 后面使用索引二进制日志,无需修改 MySQL 或应用程序代码,即可支持按过去的时间戳查询数据并查看变更历史。该功能主要面向恢复和审计场景。

该方法将基于 ProxySQL 的查询路由与索引二进制日志相结合,为标准 MySQL 添加了时间旅行查询功能 AS OFBETWEEN 。Bintrail 解析 MySQL 中 ROW 格式的二进制日志,为每个行事件建立包含完整前后快照的索引,并生成用于特定时间点恢复的逆向 SQL 语句,整个过程不需要原始二进制日志文件。数据库专家 Daniel Guzman-Burgos 解释了他启动该项目的初衷:

上个月,我详细介绍了除 MySQL 之外所有主要 OLTP 系统如何开箱即用地提供针对特定时间点的查询功能。Oracle 提供了 AS OF TIMESTAMP 语句;SQL Server 提供了 FOR SYSTEM_TIME AS OF 语句;MariaDB 默认支持系统版本化表;而 PostgreSQL 则提供了三个扩展来实现这一功能。

图片来源:dbtrail 博客

在 Oracle 和 SQL Server 中,历史状态可以直接查询。而在 MySQL 中,恢复或检查过去的数据状态通常需要围绕二进制日志进行操作,而不是通过原生的时间查询来实现。

在一篇专门比较主流关系型数据库选项的文章中,作者指出,可查询的历史数据与原始日志数据之间的实际差距,正是许多恢复和审计事件发生的原因。Guzman-Burgos 补充道:

在 Oracle 中,Flashback 功能已经存在了四分之一世纪。Temporal Tables 十年前就已经登陆 SQL Server。CockroachDB 自发布之日起便支持时间旅行功能。PostgreSQL 用户需要依赖扩展,因为这一缺失太过明显,无法忽视。MariaDB 从 MySQL 分支出来,并实现了这一功能。而 Oracle MySQL 现在没有实现,将来也不会实现,而且也没有任何动力去实现。

_diff 查询会返回指定时间范围内所有的行级变更,包括事件类型、GTID 以及变更前后的值。虽然 SQL Server、MariaDB 和 Oracle 提供了多种形式的行级历史查询,但它们通常仅提供存储的行版本,并且依赖于时间存储或保留设置。相比之下,Bintrail 直接从已经建立索引的 MySQL 二进制日志中读取数据,从而能够重建行在任意选定时间段内的完整变更序列。

-- 42 号订单在过去任意时刻的状态SELECT * FROM _flashback.orders  AS OF '2026-04-15 09:30:00'  WHERE id = 42;-- 或者说那一瞬间的整个表(当时存在的每一行)SELECT * FROM _flashback.orders AS OF '2026-04-15 09:30:00';-- 指定时间段内 42 订单的每次变更SELECT * FROM _diff.orders  BETWEEN '2026-04-15 00:00:00' AND '2026-04-15 23:59:59'  WHERE id = 42;

复制代码

Bintrail 可以自动生成 ProxySQL 路由规则,将 _flashback、_diff 和 _snapshot 等历史查询模式引导至其自身的后端,同时不影响正常的 MySQL 流量。该系统维护着独立于 MySQL 二进制日志保留策略的索引历史存储,使历史查询能够覆盖更长的时段,并且可以选择扩展至存储在 S3 上的归档 Parquet 数据。Guzman-Burgos 写道:

无需执行 ALTER TABLE 语句即可启用系统版本控制。无需特殊的存储引擎。无需二进制日志重放工具。使用相同的 MySQL 和驱动程序:只需要将连接指向 ProxySQL 而不是真实的 MySQL 端口,其余功能就可以正常运行。

Percona 创始人、开源倡导者 Peter Zaitsev 写道

Daniel Guzmán Burgos 在提升 MySQL 恢复能力方面不断推出高效解决方案,成果斐然。

在谈到这一新功能时,Releem 创始人 Roman Agabekov 指出

完整地恢复备份通常耗时过长、速度过慢且风险过高。尤其是在当前这种情况下更是如此,因为由 AI 生成的 SQL 语句、自动化脚本以及运维变更的速度都比以往更快了。自动化程度的提高虽然加快了速度,但也对精准恢复提出了更高的要求。

就目前的限制而言,Bintrail 仅支持字面时间戳查询、主键查找以及受限的全表恢复,而连接操作和更复杂的过滤则必须在适配层之外处理。Bintrail 已经发布在 GitHub 上,采用 BUSL 许可(一种开源许可)。

原文链接:https://www.infoq.com/news/2026/05/bintrail-mysql-timetravel/