Install
openclaw skills install @thcjp/db-connector-freeopenclaw skills install @thcjp/db-connector-free数据库是绝大多数业务系统的核心基础设施,但连接管理不当、事务设计缺陷、索引策略失误等问题往往在流量增长后才暴露。本助手将数据库常见陷阱整理为结构化知识库,帮助开发者在编码阶段就规避生产事故。
免费版聚焦于日常开发最高频的六大类陷阱:连接管理、事务处理、Schema 变更、查询模式、数据完整性、基础备份。每类陷阱均提供原因分析与可落地的对策。
连接池耗尽是导致应用静默挂起的头号原因。本助手提供连接池配置清单与监控指标设计建议。
| 陷阱类型 | 典型现象 | 推荐对策 |
|---|---|---|
| 连接泄漏 | 连接数持续增长不释放 | 设置空闲超时 + 连接生命周期追踪 |
| 池耗尽 | 请求排队、响应变慢 | 设定最大连接数 + 监控池使用率告警 |
| Serverless 冷启动 | 每次调用新建连接 | 引入连接代理(如 PgBouncer) |
输入: 用户提供能力一:连接池陷阱识别所需的指令和必要参数。 处理: 解析能力一:连接池陷阱识别的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回能力一:连接池陷阱识别的响应数据,包含状态码、结果和日志。
长事务持有锁并导致 MVCC 膨胀、不一致的锁顺序引发死锁、读改写场景的更新丢失——这些问题的根因和修复方式均可在本助手中查阅。
输入: 用户提供能力二:事务安全指引所需的指令和必要参数。 处理: 解析能力二:事务安全指引的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回能力二:事务安全指引的响应数据,包含状态码、结果和日志。
input_params参数,支持创建/查询/导出操作加列、建索引、改列名等操作若处理不当会导致锁表或应用报错。本助手提供"先兼容代码、后变更结构"的两阶段发布清单。
输入: 用户提供能力三:Schema 变更安全流程所需的指令和必要参数。 处理: 解析能力三:Schema 变更安全流程的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回能力三:Schema 变更安全流程的响应数据,包含状态码、结果和日志。
input_params参数,支持创建/查询/导出操作覆盖 N+1 查询、缺失索引、大 IN 子句、无界 SELECT 等 ORM 常见反模式。
输入: 用户提供能力四:查询模式审查所需的指令和必要参数。 处理: 解析能力四:查询模式审查的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回能力四:查询模式审查的响应数据,包含状态码、结果和日志。
input_params参数,支持创建/查询/导出操作从应用层唯一检查的竞态条件,到时区存储、金额精度等数据正确性问题。
输入: 用户提供已知限制所需的指令和必要参数。 处理: 解析已知限制的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回已知限制的响应数据,包含状态码、结果和日志。
input_params参数,支持创建/查询/导出操作逻辑备份与物理备份的取舍、时间点恢复的前置条件、备份验证的必要步骤。
输入: 用户提供能力六:基础备份策略所需的指令和必要参数。 处理: 解析能力六:基础备份策略的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回能力六:基础备份策略的响应数据,包含状态码、结果和日志。
开发者搭建新服务时,参照本助手的连接池配置清单与索引设计原则,一次性建立规范的数据访问层。
应用响应变慢时,按"连接池 → 慢查询 → 锁等待 → 死元组"的排查路径快速定位瓶颈。
团队 Code Review 环节,使用查询模式审查清单逐条检查 SQL,避免 N+1 与无界查询上线。
本助手为纯知识库型 Skill,无需安装额外依赖。直接在 Agent 对话中描述你的数据库问题即可获取建议。
典型提问模板:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | string | 是 | 数据库连接助手(免费版)处理的输入数据或指令 |
| options | object | 否 | 附加配置选项,如模式选择、格式偏好等 |
| callback_url | string | 否 | 异步处理完成后的回调通知URL |
我的应用使用 PostgreSQL,连接池配置为 max=10,高峰期出现请求超时,该如何排查?
我需要给一张 5000 万行的表添加带默认值的列,如何避免锁表?
ORM 生成的查询出现了 N+1 问题,有哪些解决思路?
Agent 会根据问题匹配对应的知识条目,输出"陷阱识别 → 原因分析 → 对策建议 → 验证方法"四段式回答。
以 PostgreSQL 为例,使用 HikariCP 的推荐配置:
# HikariCP 推荐配置
maximumPoolSize: 20 # 根据 (核心数 * 2 + 有效磁盘数) 估算
minimumIdle: 10 # 空闲连接下限
connectionTimeout: 30000 # 获取连接超时 30s
idleTimeout: 600000 # 空闲连接超时 10min
maxLifetime: 1800000 # 连接最大生命周期 30min
leakDetectionThreshold: 60000 # 连接泄漏检测阈值 60s
| 隔离级别 | 适用场景 | 注意事项 |
|---|---|---|
| READ COMMITTED | 默认选择,大多数业务 | 可能出现不可重复读 |
| REPEATABLE READ | 报表统计、一致性快照 | 需注意写偏序问题 |
| SERIALIZABLE | 严格一致性要求 | 性能开销大,需重试机制 |
长事务会持有锁、阻止 VACUUM 清理死元组,导致表膨胀。建议将事务拆分为小批次,避免在事务中执行外部调用。
浮点数存储金额会产生精度丢失,应使用 DECIMAL 或整数分存储。
所有时间戳以 UTC 存储,仅在展示层转换为本地时区,避免跨时区混乱。
未建索引的外键会拖慢 JOIN 与级联删除,应在创建外键约束时同步创建索引。
大批量 INSERT/UPDATE/DELETE 应拆分为每批 1000-5000 条的小批次执行,避免长事务与锁表。
开启慢查询日志(阈值建议 1 秒),定期分析 Top 10 慢查询并针对性优化索引或重写 SQL。
| 错误场景(症状) | 可能原因 | 排查方法 | 对策 | 处理方式 |
|---|---|---|---|---|
| 请求超时 | 连接池耗尽 | 查看活跃连接数 | 增大池或排查泄漏 | 对照依赖说明章节逐项验证配置项,确认环境变量已正确设置后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令 |
| 查询变慢 | 索引失效/统计过期 | 查看 EXPLAIN 计划 | 重建索引/ANALYZE | 对照依赖说明章节逐项验证配置项,确认环境变量已正确设置后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令 |
| 表膨胀 | 死元组堆积 | 查看死元组比例 | VACUUM/排查长事务 | 对照依赖说明章节逐项验证配置项,确认环境变量已正确设置后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令 |
| 死锁 | 锁顺序不一致 | 查看锁等待日志 | 统一加锁顺序 | 对照依赖说明章节逐项验证配置项,确认环境变量已正确设置后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令 |
| 磁盘满 | 日志/临时文件膨胀 | 查看磁盘占用 | 清理日志/扩容 | 对照依赖说明章节逐项验证配置项,确认环境变量已正确设置后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令 |
公式参考:池大小 = (核心数 * 2) + 有效磁盘数。但实际需结合 QPS、单查询耗时、可接受延迟综合调优。建议从 10-20 起步,通过压测调整。
在旧版本数据库中,带默认值的加列操作会重写整张表。PostgreSQL 11+ 已优化此行为,但仍建议使用 NULL 默认值 + 回填 + 设置默认值三步法。
开启 SQL 日志或使用 APM 工具,若同一请求内出现大量相似查询,基本可判定为 N+1。对策是预加载关联或批量查询。
定期执行恢复演练,验证备份的完整性与可恢复性。仅备份不验证等于没有备份。
对一致性敏感的读请求,路由到主库;或在副本查询前检查复制延迟,超阈值则回退主库。
大表的 COUNT(*) 需要扫描全表。替代方案:使用近似计数(PostgreSQL 的 pg_class.reltuples)、维护计数器表、或使用缓存。
开启 SQL 日志审查 ORM 生成的实际 SQL,定期检查是否有 N+1 查询、缺失索引的 WHERE 条件、不必要的全表加载。
Serverless 函数每次调用可能新建连接,导致连接数暴增。推荐使用连接代理(如 PgBouncer)复用连接,或使用云数据库的 Proxy 服务。
PostgreSQL / MySQL / SQLite 等主流关系型数据库| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent平台内置LLM提供 |
| 数据库客户端 | 工具 | 可选 | psql / mysql / DBeaver 等任意客户端 |
| 连接池组件 | 库 | 可选 | HikariCP / pgx / SQLAlchemy 等 |
本免费体验版限制以下高级功能:
解锁全部功能请使用专业版:db-connector-pro
{
"success": true,
"data": {
"result": "数据库连接助手(免费版)处理结果",
"execution_time": "0.5s",
"metadata": {
"version": "1.0",
"processor": "db connector"
}
},
"execution_log": ["解析输入参数", "执行核心处理", "格式化输出结果"],
"error": null
}