Agent一个查询5分钟打满CPU,背后是数据库正在经历的三个根本性变化

简介: 当Agent成为数据库的主要使用者,查询模式、数据形态和交互方式正在发生根本性变化。文章从一个真实的Agent查询风暴案例出发,分析AI查询优化器的反馈回路机制、多模融合架构的解决思路、NL2SQL背后的语义层关键技术,以及数据库如何在概率性环境里保持工程确定性,最后探讨这些变化对SQL技能、数据库选型和DBA角色的实际影响。

大家好,我是数据库小学妹 👋

上周帮一个创业团队看他们的数据架构,他们的业务系统跑在Agent之上,每天自动做数据分析、用户画像、异常检测。我打开监控面板,看到数据库的连接数曲线像锯齿一样密集,每秒几百个请求不间断。

负责人跟我说,系统上线第一周就出事了,Agent发了一个复杂查询,查完之后根据结果自动触发了十个子查询,十个子查询又各自触发新的查询,指数级放大,5分钟之内把CPU打满了。我第一反应是:数据库面对的不再是一个人在问问题,而是一群Agent在互相追问。

这件事让我开始认真思考一个问题:当向数据库提问的主力从人变成Agent,数据库本身会发生什么变化?


查询行为的根本改变

人查数据和程序查数据,本质上是两种不同的行为模式。

人查数据有天然的刹车机制,打开工具想清楚要什么,写SQL,跑一下看结果,发现不对停下来想一想,改一改再跑,每一步都有人在判断,整个过程慢但可控。

Agent没有刹车,它拿到查询结果之后会在极短时间内自动决定下一步动作,可能是继续查,可能是做推理,也可能是根据结果触发新的查询,一个Agent发出去的不是一条独立的查询,而是一串连锁反应。当这种连锁反应同时发生在几百个Agent身上,数据库承受的压力和以前完全不在一个量级,这就逼着数据库自己做判断。

以前的查询优化器靠的是统计信息。表有多少行、索引基数多少、数据分布怎么样,优化器拿这些统计信息算成本,选一条看起来最便宜的执行计划。问题是统计信息是离snapshot,数据在变,统计信息不跟着变。一张表从一万行涨到一千万行,优化器还是按一万行的统计信息选计划,结果就是全表扫描走了哈希连接,一条本来该几秒跑完的查询要几分钟。传统做法是DBA发现慢了,手动加hint纠正,或者手动更新统计信息。

AI优化器的做法是建一个反馈回路。每条查询执行完后,优化器会把实际执行时间和预估时间做对比,如果实际耗时远超预估,就把这个偏差记下来,更新自己的成本模型。下次遇到类似的查询模式,优化器不会再用旧的统计信息算成本,而是用修正后的成本模型重新选计划。它学的不是"这条SQL该走哪个索引",而是"这类数据分布下,哪种Join策略更划算"。

生产环境跑下来,复杂查询的加速效果肉眼可见,有测试场景里多表关联的查询时间能缩短一个数量级。数据库不再只是被动执行命令,它开始根据实际运行情况调整自己的策略了。


数据碎片化的代价

另一个让我感触很深的变化是数据形态。

以前我做项目,业务数据基本都是结构化的,订单、账户、流水,字段清晰,类型固定,丢进关系型数据库就行。现在的情况是,文本、图片、音视频、向量嵌入这些非结构化数据在核心系统里的体量早就超过了结构化数据。问题在于,Agent要理解一个业务的完整上下文,需要同时拿到好几类数据。关系型数据库存业务数据,对象存储管文件,向量数据库管embedding,数据分散在好几套系统里。

Agent要拿到完整信息,就得跨系统查询、在应用层拼装数据,延迟高,一致性差,运维还得盯好几套集群。我见过不少团队被这个问题折腾,一个业务场景要同时查关系表、做向量检索、调大模型API,光是跨系统的数据同步链路就写了十几个定时任务,出了问题排查起来要翻三四个系统的日志。

所以多模融合这个方向最近很热。核心思路是在同一个存储引擎、同一个事务框架下让多种数据类型共存,关系型、文档型、向量型、空间型、时序型放在一张表里定义,共享同一套事务日志,一条SQL就能同时做精确匹配和语义相似度搜索,数据不用在不同系统之间搬来搬去。

我测过KingbaseES,它在关系型数据库基础上融合了JSON文档、向量、GIS空间、时序这几类处理能力,多种数据类型在同一张表里定义,事务和备份走同一套链路,做跨模查询的时候一条SQL同时涉及关系数据和向量检索,不用跨库协调,优化器自己会选执行路径。

Agent要拿到完整的业务上下文,数据如果分散在五套系统里,拿到的上下文就是碎的,这是多模融合要解决的根本问题。


不用写SQL了,但更复杂了

这个变化写代码的人感受最深。以前用数据库的流程是理解业务需求,翻译成SQL,跑查询看结果,不对就改SQL再跑,一个复杂报表折腾半小时很正常。现在有人在对话框里直接打字提问,数据库自己理解意图、生成执行计划、跑查询、返回结果。翻译成底层SQL大概是这样的:

SELECT category, SUM(amount) as total
FROM orders
WHERE region = '华北' 
  AND user_id IN (
    SELECT user_id FROM user_metrics 
    WHERE repurchase_rate > 0.3 AND month = '2025-11'
  )
GROUP BY category ORDER BY total DESC LIMIT 3;

NL2SQL降低了数据库的使用门槛,以前只有DBA和资深后端能高效用数据库,现在产品经理和运营可以直接提问。但这件事背后有个很多人忽略的关键技术:语义层。语义层就是在数据库上面加一层翻译,把业务指标、计算逻辑、数据关系翻译成Agent能理解的东西。

Agent问"本季度高价值客户的留存率怎么样",语义层得先搞清楚"高价值客户"的判断标准、"留存率"的具体口径,然后再翻译成底层查询逻辑。这层做不好,查出来的数据是错的,而且错得很合理,因为Agent确实按你说的查了,只是你说的和你想的根本不是一回事。

我去年踩过这个坑。给一个客户配语义层,把"活跃用户"的定义映射成了最后登录时间,而不是实际的活跃行为,结果查出来的日活比实际多了两万多。业务部门拿着报表来找我,我对着两条数据对了一下午才发现是语义层的口径写错了。

做AI加数据库的时候,花最大力气的往往不是底层引擎,而是上面那层语义理解和映射。


确定性和概率性怎么共存

有人可能会问,这些东西听着都挺好,生产环境能跑稳吗?这才是最难的地方。数据库追求的是确定性,同样的输入永远得到同样的输出,一笔交易、一个账户余额一分钱都不能差,这是数据库过去几十年一直在死磕的东西。但Agent的行为是概率性的,它生成的下一个token没法提前预知,整个系统的行为模式随时在变。

数据库要在一个概率性的环境里依然保证数据不出错、事务不丢,这对架构设计提出了全新的要求。

问题的核心在于Agent会改变查询的语义和复杂度。同一条自然语言查询,Agent可能今天翻译成简单的等值JOIN,明天换成多表子查询。查询模式的不可预知意味着数据库不能像过去那样依赖预编译的执行计划。

应对这个问题的方向有几个。

一是查询级别的并发控制和资源隔离,给每个Agent分配独立的连接池和内存上限,防止一个Agent的复杂查询拖垮整个集群。

二是执行计划的稳定性保护,当优化器发现某类查询模式反复出现时,可以锁定一个稳定的执行计划,避免每次都要重新选路。

三是语义校验层,在Agent的查询真正落到数据库之前,先做一次结构检查,确认它不会产生笛卡尔积或者扫描全表。

同时搞定数据库的工程确定性和AI的概率性,这件事难度很高。国内在这件事上有一个好处,场景多,场景复杂,大量真实业务需求在倒逼数据基础设施创新。而且全球对AI数据库的探索还在早期,技术路线没有定型,大家都在试,不像传统数据库时代海外厂商用几十年建起来的生态壁垒让人追不上,这次起跑线差不了太多。


回到开头那个创业团队的问题。后来他们做了两件事。一是给Agent的查询加了并发限制和超时熔断,防止指数级放大;二是把原本分散在三套系统里的数据迁到了一个多模数据库上,跨模查询直接在库内完成,不用再在应用层拼装。问题暂时压住了,但负责人跟我说,他知道这只是治标,真正的问题是怎么让数据库在一个被Agent驱动的世界里,既快又稳。

Agent来了之后,数据库的变化可以总结成三个方向。使用者从人变成程序,数据形态从单一的结构化变成多模态,交互方式从写SQL变成自然语言。这三件事叠加在一起,正在重塑数据库的架构设计。

中国数据库技术因为场景丰富、格局未定,第一次有机会参与定义下一代数据库的范式,能走多远,真实的业务场景会给出答案。

你觉得Agent时代数据库最需要解决什么问题?在评论区聊聊吧。

我是数据库小学妹,咱们下篇见 👋

相关文章
|
1月前
|
SQL 关系型数据库 MySQL
MySQL版本升级最佳实践:从5.7到8.0再到8.4 LTS的兼容性审计与迁移策略
以一次真实升级事故开篇,覆盖MySQL 5.7→8.0→8.4升级路径、LTS与Innovation双轨线、兼容性审计、高危变更、升级路径对比与灰度切换策略
|
2月前
|
存储 人工智能 多模数据库
大模型时代数据库角色转型实战:从RAG检索增强到AI Agent数据底座的架构思考
本文探讨大模型时代数据库角色的深刻转变:从数据存储转向AI底座。详解RAG如何依赖向量数据库实现知识增强,Agent如何依托数据库实现记忆持久化与上下文管理,以及多模数据库如何支撑AI Agent的工具调用与执行。DBA需扩展向量检索、多模存储等新能力,而非被替代。(239字)
|
2月前
|
SQL 运维 自然语言处理
国产向量数据库有哪些?两大技术流派深度对比与选型指南
向量数据库是2026年数据库领域增长最快的细分赛道之一。本文从RAG应用和企业知识库的实际需求出发,系统梳理国产向量数据库的两大技术流派——独立向量数据库与融合型向量数据库,深入对比两者的架构差异、适用边界和选型逻辑。
|
2月前
|
SQL 监控 关系型数据库
MySQL连接数管理最佳实践:从Too many connections应急到长期治理
本文详解MySQL“Too many connections”故障的应急排查与根治方案:30秒快速评估、杀Sleep连接止血、动态调参救急;深入分析慢查询、连接泄漏、短连接冲击、配置过小四大根因;附诊断脚本、监控告警规则及连接池最佳实践,助你从容应对生产危机。
|
2月前
|
SQL 关系型数据库 MySQL
MySQL 数据恢复最佳实践:DELETE、DROP TABLE、DROP DATABASE 三种误删场景的应急与恢复方案
数据库小学妹详解MySQL误删恢复:覆盖DELETE回滚、DROP表/库的全量+Binlog时点恢复(PITR)、延迟从库急救方案,并附binlog2sql实战、止血SOP及防误删五重防护。面试必背,生产避坑指南!
|
24天前
|
SQL 安全 中间件
一个WHERE漏写100个客户数据全暴露:我用双保险方案彻底解决多租户串号
一次租户数据串号事故引出三种隔离模式对比,深入讲解RLS行级安全、连接池session清理、中间件自动注入tenant_id双保险方案,附单租户迁移实战与避坑清单。
|
18天前
|
Oracle 关系型数据库 MySQL
SELECT查到10条,UPDATE却改了12条:一次RR级别下的幻读排查实录
从InnoDB的ReadView数据结构出发,拆解快照读和当前读的本质差异,讲清楚RR级别下幻读是怎么发生的、间隙锁如何堵住这个漏洞,以及为什么生产环境有人建议用RC替代RR。
|
23天前
|
消息中间件 缓存 小程序
同城外卖APP/小程序开发:外卖、配送、到店服务多业务融合方案解析
同城外卖系统已从单一餐饮配送升级为融合到店消费、即时配送、跑腿服务的本地生活平台。本文详解多业务模型设计、模块化架构、智能调度、数据融合与高并发优化,助力构建可扩展、高可用的全场景履约系统。
|
23天前
|
存储 缓存 NoSQL
向量查询很慢怎么办——阿里云 Tair 向量检索加速方案
向量查询慢的解法是"近似索引 + 内存态 + 就近检索",推荐用阿里云 Tair 的 TairVector:HNSW 毫秒级近邻检索、向量与缓存统一管理、兼容 Redis 零改造。建议按实际数据规模选 HNSW 或 FLAT,并调优索引参数平衡精度与速度。
64 0
|
1月前
|
存储 Oracle 关系型数据库
去O实战:Oracle到国产数据库的类型映射、代码改写与数据校验全流程
数据库小学妹分享Oracle迁国产库实战:聚焦异构迁移核心难点——非数据搬运,而是“习惯”重构。详解数据类型映射(如NUMBER→BIGINT/DECIMAL)、PL/SQL存储过程改写(PACKAGE拆解、CONNECT BY→WITH RECURSIVE)、三层数据校验及避坑清单(空字符串、字符集、隐式转换)。干货满满,助你少踩坑!