# 持久缓存

同一进程内执行多次查询时，复用内存中的预备数据集。CLI 交互模式会保持输入数据，供连续查询复用。需要跨进程复用准备结果时，使用磁盘缓存。

```bash
dexsql prepare-cache --input app.apk \
  --output app.dexsql-cache --timing

dexsql query-cache \
  --cache-file app.dexsql-cache/cache.dxc2 \
  --sql "select count(*) from method_refs" --timing
```

`prepare-cache` 始终准备完整元数据、方法引用和 opcode 数据，用于后续任意受支持的查询，不接受单独的解码开关。

一次性 `query` 默认仅准备本次 SQL 所需的数据；`query --full` 准备完整数据。两种方式对本次查询的结果相同。

将缓存文件保存在你可控制的目录中。源输入变化后，应重新生成缓存再查询。缓存损坏或过期时会返回错误。采用原始 MUTF-8 存储之前创建的缓存不兼容，请使用当前可执行文件重建。

MCP 服务在内存中管理自己的数据集。需要在进程退出后保留缓存时，使用上述 CLI 命令。

---

Copyright (c) 2026 LSPosed Developers。本文档采用 [MIT 许可证](../license.md)。
