大家好我是数据库小学妹 上周帮一个创业团队看他们的数据架构他们的业务系统跑在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大概是这样的SELECTcategory,SUM(amount)astotalFROMordersWHEREregion华北ANDuser_idIN(SELECTuser_idFROMuser_metricsWHERErepurchase_rate0.3ANDmonth2025-11)GROUPBYcategoryORDERBYtotalDESCLIMIT3;NL2SQL降低了数据库的使用门槛以前只有DBA和资深后端能高效用数据库现在产品经理和运营可以直接提问。但这件事背后有个很多人忽略的关键技术语义层。语义层就是在数据库上面加一层翻译把业务指标、计算逻辑、数据关系翻译成Agent能理解的东西。Agent问本季度高价值客户的留存率怎么样语义层得先搞清楚高价值客户的判断标准、留存率的具体口径然后再翻译成底层查询逻辑。这层做不好查出来的数据是错的而且错得很合理因为Agent确实按你说的查了只是你说的和你想的根本不是一回事。我去年踩过这个坑。给一个客户配语义层把活跃用户的定义映射成了最后登录时间而不是实际的活跃行为结果查出来的日活比实际多了两万多。业务部门拿着报表来找我我对着两条数据对了一下午才发现是语义层的口径写错了。做AI加数据库的时候花最大力气的往往不是底层引擎而是上面那层语义理解和映射。确定性和概率性怎么共存有人可能会问这些东西听着都挺好生产环境能跑稳吗这才是最难的地方。数据库追求的是确定性同样的输入永远得到同样的输出一笔交易、一个账户余额一分钱都不能差这是数据库过去几十年一直在死磕的东西。但Agent的行为是概率性的它生成的下一个token没法提前预知整个系统的行为模式随时在变。数据库要在一个概率性的环境里依然保证数据不出错、事务不丢这对架构设计提出了全新的要求。问题的核心在于Agent会改变查询的语义和复杂度。同一条自然语言查询Agent可能今天翻译成简单的等值JOIN明天换成多表子查询。查询模式的不可预知意味着数据库不能像过去那样依赖预编译的执行计划。应对这个问题的方向有几个。一是查询级别的并发控制和资源隔离给每个Agent分配独立的连接池和内存上限防止一个Agent的复杂查询拖垮整个集群。二是执行计划的稳定性保护当优化器发现某类查询模式反复出现时可以锁定一个稳定的执行计划避免每次都要重新选路。三是语义校验层在Agent的查询真正落到数据库之前先做一次结构检查确认它不会产生笛卡尔积或者扫描全表。同时搞定数据库的工程确定性和AI的概率性这件事难度很高。国内在这件事上有一个好处场景多场景复杂大量真实业务需求在倒逼数据基础设施创新。而且全球对AI数据库的探索还在早期技术路线没有定型大家都在试不像传统数据库时代海外厂商用几十年建起来的生态壁垒让人追不上这次起跑线差不了太多。回到开头那个创业团队的问题。后来他们做了两件事。一是给Agent的查询加了并发限制和超时熔断防止指数级放大二是把原本分散在三套系统里的数据迁到了一个多模数据库上跨模查询直接在库内完成不用再在应用层拼装。问题暂时压住了但负责人跟我说他知道这只是治标真正的问题是怎么让数据库在一个被Agent驱动的世界里既快又稳。Agent来了之后数据库的变化可以总结成三个方向。使用者从人变成程序数据形态从单一的结构化变成多模态交互方式从写SQL变成自然语言。这三件事叠加在一起正在重塑数据库的架构设计。中国数据库技术因为场景丰富、格局未定第一次有机会参与定义下一代数据库的范式能走多远真实的业务场景会给出答案。你觉得Agent时代数据库最需要解决什么问题在评论区聊聊吧。我是数据库小学妹咱们下篇见