标签

AI如何重塑数据库查询优化:架构层面的深层剖析

发布时间:2026-04-13 07:59来源:微信阅读:7

人们普遍认为“传统CBO(查询优化引擎)存在瓶颈”,但很少有人深究:这一瓶颈的根源究竟是什么?

传统优化器的三大困境——统计信息延迟、成本模型失准、规则爆炸——表面是技术挑战,深层则是范式限制。CBO优化器本质上是依赖“相关性”的统计工具,它解答的是“根据过往数据,此类计划表现如何”。然而,查询优化属于因果决策范畴,需要回答的是“因为A,所以选择B”。

这种根本性的范式错位,才是所有问题的症结所在。

当前所有基于AI的查询优化方案都在强调通过“语义向量相似度匹配”来复用历史执行计划。但这里存在一个关键假设:相似查询等同于相似计划。

这一假设在实践中常常失效。设想以下场景:

一个常被忽略的方案:查询上下文张量

不应仅仅存储查询的语义向量,而是构建一个多维的执行上下文张量:

这个张量旨在捕捉“在当前系统状态下,此查询应选用何种计划”,而非“这个查询看起来如何,该用什么计划”。

绝大多数AI查询优化研究都基于相关性模型:收集大量(查询、计划、延迟)样本,训练模型以预测最优计划。这本质上是在让模型学习“历史上类似查询采用了何种计划”。

但问题在于:历史上最优的计划,未来必定最优吗?

因果推断理论表明,相关性模型在数据分布发生偏移时将彻底失效。当数据分布变化时(如数据倾斜、新增索引、硬件升级),模型预测性能会急剧下降。

一个值得关注的方案:因果查询优化器

构建基于因果图的查询优化器:

这不是更复杂的机器学习模型,而是一种完全不同的决策范式。

几乎所有讨论AI查询优化的文章都忽略了一个核心问题:AI生成的查询计划,是否真的能被原样执行?

现代数据库引擎(如ClickHouse、Databricks、Polars)广泛采用代码生成和向量化执行技术。查询计划被编译成LLVM IR或JIT字节码。在此过程中:

这意味着训练阶段观察到的计划-性能映射关系,在推理时可能完全不同。

一个可行的方案:执行感知的计划表示

当前AI查询优化方案多采用单一模型:输入查询,输出计划。但一个复杂的OLAP查询涉及数十个决策点(连接顺序、索引选择、并行度、分区策略、物化视图选择等),让单一模型同时处理所有决策是低效的。

一个新颖的思路:多智能体查询编排

构建一个查询优化的“内阁”体系:

每个智能体可以是小型专用模型,比单一通用模型更高效、更可解释。元智能体利用辩论或共识机制来决定最终计划。这套系统可类比为“有人擅长关系代数的数学证明,有人精通系统性能的实际测量,委员会决策通常比个人更可靠”。

所有现有方案都依赖于在目标数据库上积累足够的(查询、计划、性能)训练数据。但当数据模式发生变化(如新增表、调整分区键、接入新数据源),模型需要重新训练或至少进行微调。

在生产环境中,这意味着:每次模式变更 -> 模型重新训练 -> 上线验证 -> 潜在的回滚风险。这种成本通常是无法接受的。

一个潜在的解决方案:模式无关的元优化器

其核心思路是让优化器学习“如何优化”而非“优化什么”:

Together AI的实践验证了三个关键假设:

1. AI替代规则而非辅助规则是可行的

端到端地使用神经网络替代启发式决策,在特定场景下确实优于传统CBO。关键在于训练数据的质量和执行上下文的捕捉。

2. 语义缓存的价值被严重低估

他们发现,“查询相似度缓存”是使延迟下降52%的主要原因之一。但此缓存必须基于多维上下文,而非单纯的语义相似度。

3. 推理开销可控

通过模型量化和特征缓存,每查询额外开销控制在0.5毫秒以内是可行的。但这在中等复杂度查询下测得,超复杂查询可能有所不同。

阶段一(0-3个月):观察者模式

在数据库前端部署代理层,让AI优化器与传统优化器并行运行,记录两者产生分歧的案例。不修改任何实际执行计划,纯粹用于积累训练数据。

阶段二(3-6个月):影子模式

对AI优化器生成的计划进行“影子执行”——在实际返回查询结果的同时,在后台用AI计划运行一遍但不返回给用户。对比两者的实际延迟差异。

阶段三(6-12个月):金丝雀发布

对5%的查询启用AI优化计划,监控P99延迟、错误率等关键指标。设置自动回滚的阈值。

阶段四(12个月以上):全面推广

根据行业和查询类型逐步扩大应用范围,积累足够的置信度后进行全面替换。

回到最初的问题:Together AI的实践给架构师带来了哪些启示?

并非简单地“添加AI模块”,也不是“用大语言模型编写SQL”,而是要从相关性决策升级到因果性决策,从单点优化升级到系统协同,从静态规则升级到动态适应。

查询优化的终极目标并非找到“理论最优计划”,而是找到“在当前系统状态下最合适的计划”。这需要AI技术,但更需要我们对AI的局限性保持清醒认知。

真正的架构挑战不在于“AI能做什么”,而在于“在何种条件下AI的决策是正确的”。

这才是人类需要持续深思的问题。

本文观点基于对Together AI技术实践的深入分析,部分方案属于原创性思考,供行业从业者参考与探讨。