GoLand 的数据库查询缓存由 Database Tools 插件实现,存储于 IDE 系统目录(如 macOS 的 ~/Library/Caches/JetBrains/GoLand2026.1/dataSources),包含查询结果集、元数据等,不依赖 $GOCACHE 或 $GOMODCACHE;手动清理应优先使用 IDE 内置操作:右键数据源选“Reload Database Schema”刷新元数据,点击“Clear Result Tabs”清当前结果,或在设置中启用“Clear console on disconnect”并“Clear All History”;若需彻底清除,可关闭 IDE 后删除对应 dataSources 目录。

GoLand 本身不提供数据库查询缓存功能,你看到的“查询结果缓存”实际来自内置的 Database Tools 插件(即 DataGrip 引擎),它缓存的是查询结果集、元数据、执行计划等,不是 Go 构建或模块缓存。
Database Tools 的查询结果缓存存在哪
这些缓存不走 $GOCACHE 或 $GOMODCACHE,而是存在 IDE 的系统目录下,路径结构类似:
- macOS:
~/Library/Caches/JetBrains/GoLand2026.1/dataSources和~/Library/Caches/JetBrains/GoLand2026.1/sql - Windows:
%LOCALAPPDATA%\JetBrains\GoLand2026.1\cache\dataSources - Linux:
~/.cache/JetBrains/GoLand2026.1/dataSources
注意:目录名中的 GoLand2026.1 会随版本变化;dataSources 下按连接 ID 分文件夹,里面含 query-results、metadata-cache 等子目录。
怎么手动清掉查询结果和元数据缓存
最稳妥的方式是通过 IDE 内置操作,避免误删配置:
- 打开 Database 工具窗口(View → Tool Windows → Database)
- 右键点击对应数据源 → 选择 Reload Database Schema(刷新元数据)
- 在 SQL 编辑器中执行任意查询后,点击右上角的 Clear Result Tabs 按钮(垃圾桶图标)清当前结果页
- 如需彻底清空所有历史查询结果:Settings → Tools → Database → Query Console → 勾选 Clear console on disconnect,并点击 Clear All History
若上述无效,再考虑清理磁盘缓存:关闭 GoLand 后,删除对应 dataSources 目录即可,重启后会重建——但注意这也会重置你保存的查询片段和自定义视图。
为什么改了表结构查不到新字段
这不是缓存没清干净,而是 Database Tools 默认不会自动同步 DDL 变更。常见表现包括:
-
SELECT *结果里没显示刚ALTER TABLE ADD COLUMN的字段 - 代码补全里看不到新列名
- 执行
DESCRIBE table_name返回旧结构
解决方式不是清缓存,而是主动刷新:
- 右键数据源 → Reload Database Schema(快捷键
Ctrl+Y/Cmd+Y) - 或右键具体表 → Reload Table Metadata
- 如果用的是 PostgreSQL 或 MySQL 8.0+,可启用 Auto-sync on DDL(Settings → Tools → Database → General → Enable auto-sync on DDL statements)
真正容易被忽略的是:Database Tools 的“缓存”本质是本地快照,它不监听数据库服务端变更。哪怕你清空了所有磁盘缓存,只要没手动触发 Reload,IDE 就仍用旧元数据——这不是 bug,是设计使然。











