谁在用你的数据库
Posted by quentin 在 Sunday, 26 July 2026上周参加一个内部技术评审,有人提了一个看起来不太起眼的问题:我们的Agent在执行复杂任务时,数据库连接池经常被打爆,为什么?
排查下来发现原因很直接——Agent在做多步推理时,每一步都可能触发数据库查询。而且它的查询模式完全不符合人类开发者的习惯:没有预编译的SQL模板,没有合理的分页,没有批量查询优化。Agent就像一个不知疲倦的实习生,一条一条地查,一步一步地追,直到把数据拼完整。
这件事让我开始认真想一个问题:当Agent成为数据库的主要使用者,而不是人类开发者时,数据库的设计范式是不是该变了?
传统数据库的隐含假设
过去几十年,数据库的设计和优化都围绕一个核心假设:使用者是人类开发者,通过应用程序发出可预测的查询。
SQL语法是为人类设计的。索引策略是基于已知的查询模式来优化的。连接池的大小是基于人类用户的并发行为来估算的。ORM框架把数据库操作封装成对象方法,本质上也是在替人类开发者降低心智负担。
这整套体系运转得很好——因为人类的行为是可预测的。一个电商系统的商品详情页,99%的情况下会命中那几个固定的查询路径。一个金融产品的持仓页面,查询模式在产品上线那天就已经确定了。
但Agent打破了这个假设。
Agent的访问模式完全不同