乐于分享
好东西不私藏

GraphRAG v3.0 源码拆解:5 个子包各自管什么,为什么要拆成 Monorepo

GraphRAG v3.0 源码拆解:5 个子包各自管什么,为什么要拆成 Monorepo

一篇帮你快速理解 v3.0 架构全貌、找到源码入口、知道改代码该去哪里的实操指南

阅读提示

  • 适合谁看:准备阅读或修改 GraphRAG 源码的工程师
  • 看完能做什么:知道 5 个子包各自负责什么,找到索引和查询的源码入口,理解 TableProvider 抽象的设计意图
  • 不适合谁:只用 pip install 跑命令、不打算改源码的用户

先给结论

  • v3.0 拆成 5 个子包的核心原因是模块化 + 可插拔:LLM 层、存储层、向量层、切分层都可以替换实现
  • 入口文件就两个:api/index.py(索引)和 api/query.py(查询),其他都是被它们调用的
  • TableProvider 是最关键的抽象:它让"数据存哪里"变成一个可配置的选择,而不是硬编码

很多人第一次打开 GraphRAG v3.0 的源码,看到 packages/ 目录下有 5 个子包,第一反应是"为什么要拆这么散"。

答案很简单:为了让每个层都可以独立替换

你可以换 LLM 提供商(OpenAI → Azure → 本地模型),可以换存储后端(本地文件 → Blob Storage → 数据库),可以换向量引擎(LanceDB → Azure AI Search),可以换切分策略(按句子 → 按 Token → 按语义)。每个替换都不需要改其他层的代码。

这篇文章解决一个问题:v3.0 的 5 个子包各自负责什么,依赖关系是什么样的,改代码该从哪里入手。


01 先说清问题:v2.x 的"大锅饭"有什么问题

GraphRAG v2.x 的代码都放在一个包里。LLM 调用、数据存储、向量检索、文本切分、流程编排全混在一起。

这带来了几个实际问题:

  • 想换 LLM 提供商?得改好几处代码
  • 想换存储后端?得深入内部逻辑
  • 想单独测试某个模块?做不到,因为依赖链太深
  • 想贡献代码?得理解整个大包才能改一小块

v3.0 的 Monorepo 架构就是为了解决这些问题。每个子包有清晰的职责边界和对外接口,互不侵入。

这一节的小结

Monorepo 不是为了"看起来高级",而是为了让每一层都可以独立开发、独立测试、独立替换。


02 先把全局地图摆出来

图 1|GraphRAG v3.0 Monorepo:5 个子包的依赖关系

中心是 graphrag 核心包(编排调度),四周是 4 个工具包。箭头标注依赖方向:核心包依赖其他 4 个,4 个工具包之间互不依赖。

5 个子包的定位:

  • graphrag(核心包):编排调度,包含 Pipeline / Workflow / Step / Config / API 入口
  • graphrag-llm:LLM 调用层,封装 Chat / Embedding / 重试 / 流式 / Token 计数
  • graphrag-input:数据读写抽象,TableProvider / FileStorage / BlobStorage
  • graphrag-vectors:向量索引与检索,支持 LanceDB / Azure AI Search 等后端
  • graphrag-chunking:文本切分策略,按句子 / Token / 语义切分

读者应该先记住的 1 件事

graphrag 核心包是唯一一个依赖其他 4 个包的包。4 个工具包之间互不依赖。这意味着你可以单独替换任何一个工具包,不需要改其他包的代码。


03 关键机制 1:两个入口文件

整个 v3.0 的源码入口就两个文件:

代码 1:索引入口

# packages/graphrag/graphrag/api/index.pyasyncdefbuild_index(config: GraphRAGConfig) -> IndexResult:"""构建知识图谱索引的主入口"""# 1. 创建 Pipeline    pipeline = create_pipeline(config)# 2. 注入依赖(LLM / TableProvider / VectorStore)    pipeline = inject_dependencies(pipeline, config)# 3. 执行    result = await pipeline.run()return result

代码 2:查询入口

# packages/graphrag/graphrag/api/query.pyasyncdefglobal_search(config, query, **kwargs):"""Global Search 查询入口"""# 从 TableProvider 加载 Community Reports    reports = config.table_provider.load("community_reports")# 执行 Map-Reducereturnawait run_map_reduce(query, reports, config.llm)asyncdeflocal_search(config, query, **kwargs):"""Local Search 查询入口"""# 从 TableProvider 加载实体和关系    entities = config.table_provider.load("entities")# Fan-Out 检索 + LLM 生成returnawait run_fan_out(query, entities, config.llm)

所有索引和查询的操作,最终都会走到这两个入口。想找某个功能的源码,从这里顺着调用链往下找就行。


04 关键机制 2:TableProvider 抽象

TableProvider 是 v3.0 最关键的设计。它解决的问题是:中间结果和最终产出存到哪里

代码 3:TableProvider 接口

classTableProvider(Protocol):"""数据读写的统一接口"""defload(self, name: str) -> pd.DataFrame:"""读取一张表"""        ...defwrite(self, name: str, data: pd.DataFrame) -> None:"""写入一张表"""        ...defdelete(self, name: str) -> None:"""删除一张表"""        ...

默认实现是 ParquetTableProvider,把所有数据存为本地 Parquet 文件。但你可以替换为:

  • BlobTableProvider:存到 Azure Blob Storage
  • DataFrameTableProvider:直接在内存中操作
  • 自定义实现:存到数据库、S3、GCS 等

为什么这个抽象重要?

GraphRAG 索引过程中会产生大量中间结果(TextUnit 表、实体表、关系表、社区表等)。如果这些表的存储方式和核心逻辑耦合,你就没法把 GraphRAG 部署到云端(因为本地文件路径硬编码了)。TableProvider 把"存到哪里"变成了一个可注入的依赖,核心逻辑完全不关心数据存在哪。


05 一次索引请求在源码中的完整调用链

图 2|一次索引请求在源码中的调用链

从 api/index.py:build_index() 出发,经过 Pipeline → Workflow 调度器 → 多个 Workflow → 每个 Workflow 内部的 Step → Step 调用 LLM → 结果写入 Storage。橙色标注并发控制(Semaphore),红色标注重试机制。

完整调用链的关键节点:

  1. **build_index()**:用户调用入口,创建 Pipeline
  2. **Pipeline.run()**:启动异步执行引擎
  3. Workflow 调度器:解析 Workflow 依赖图 → 拓扑排序 → 按依赖顺序执行
  4. Workflow 内部:每个 Workflow 包含多个 Step,Step 之间通过 TableProvider 传递中间结果
  5. Step 调用 LLM:通过 graphrag-llm 的 llm.invoke() 封装,自动重试、超时、计数
  6. 结果写入 Storage:通过 graphrag-input 的 table.write() 写入 Parquet 或其他存储

并发控制:Pipeline 使用 asyncio.Semaphore 控制并发 LLM 调用数量,防止触发 API rate limit。

错误恢复:Step 失败后会重试 N 次(指数退避),仍失败则整个 Pipeline 中止并报告错误位置。


06 子包速查表

图 3|5 个子包职责速查表

每列一个包,3 行分别列出核心职责、关键类、对外接口。灰色列是底层工具包(被依赖),蓝色列是核心编排包(依赖其他包)。

改代码时的快速定位

  • 想换 LLM 提供商?→ 改 graphrag-llm,实现 ChatLLM 接口
  • 想换存储后端?→ 改 graphrag-input,实现 TableProvider 接口
  • 想换向量引擎?→ 改 graphrag-vectors,实现 VectorStore 接口
  • 想换切分策略?→ 改 graphrag-chunking,实现 ChunkStrategy 接口
  • 想改索引流程?→ 改 graphrag 核心包的 Pipeline / Workflow
  • 想改查询逻辑?→ 改 graphrag 核心包的 api/query.py

07 为什么 v3.0 要拆成 Monorepo

拆包的 3 个核心收益

  1. 模块化:每个包有清晰的职责边界,改一个不影响其他
  2. 独立版本graphrag-llm 可以单独发版升级,不需要等整个 graphrag 发版
  3. 可插拔:LLM / 存储 / 向量 / 切分 4 个层都可以替换实现,核心逻辑不变

Monorepo vs 多仓库

GraphRAG 团队选择 Monorepo 而不是 5 个独立仓库,原因是:

  • 子包之间的接口还在演进,放在同一个仓库里方便同步修改
  • CI/CD 可以统一管理,确保所有包的兼容性
  • 开发者 clone 一个仓库就能看到全部代码,降低贡献门槛

依赖管理

5 个子包通过 pyproject.toml 的 [project.dependencies] 声明依赖关系。用户只需 pip install graphrag,4 个子包作为传递依赖自动安装。


08 第一次上手怎么试:最小实验

实验条件

  • 环境:已 clone graphrag v3.0 仓库
  • 输入:无
  • 预期观察:理解源码目录结构,找到两个入口文件

代码 4:最小实验步骤

# 1. 查看 packages 目录结构ls packages/# 应该看到:graphrag/  graphrag-input/  graphrag-llm/  graphrag-vectors/  graphrag-chunking/# 2. 找到索引入口cat packages/graphrag/graphrag/api/index.py# 3. 找到查询入口cat packages/graphrag/graphrag/api/query.py# 4. 查看 TableProvider 接口cat packages/graphrag-input/graphrag_input/table_provider.py# 5. 查看 ChatLLM 接口cat packages/graphrag-llm/graphrag_llm/chat_llm.py

你应该观察什么

  • 每个子包的目录结构是否清晰(src / tests / pyproject.toml)
  • 对外接口是否简洁(Protocol 类定义)
  • 核心包是否只做编排,不直接实现 LLM / 存储 / 向量逻辑

09 什么时候该改源码,什么时候别动

适合改源码的场景:

  • 你需要接入一个 GraphRAG 不支持的 LLM 提供商(改 graphrag-llm)
  • 你需要把数据存到自定义存储(改 graphrag-input)
  • 你需要实现一个自定义的切分策略(改 graphrag-chunking)

不适合改源码的场景:

  • 只是想调参数(改 settings.yaml 就够了)
  • 只是想换模型名(改 .env 就够了)
  • 只是想修改 prompt(改 prompts/ 目录下的模板就够了)

10 给读者一个真正能用来做决策的结论

决策帮助

  • 如果你只是用 GraphRAG:不需要读源码,settings.yaml + .env + prompts/ 覆盖 90% 的配置需求
  • 如果你需要扩展 GraphRAG:先读 TableProvider 和 ChatLLM 的接口定义,再决定改哪个包
  • 如果你要贡献代码:从 api/index.py 和 api/query.py 出发,顺着调用链往下读

v3.0 的 Monorepo 架构是"先拆清楚,再各自演进"的设计。理解了 5 个子包的职责边界,改代码就不会迷路。

如果你在阅读源码时遇到了具体的定位问题,欢迎在评论区写下你想改的功能,我帮你指出该看哪个包的哪个文件。

下一篇我们进入 Day 12:核心流程源码阅读。从 build_index() 出发,逐行跟踪 Pipeline 是怎么执行的。


如果这篇帮你搞清楚了 v3.0 的架构全貌,欢迎点个赞。

如果你正在改某个子包的代码但不确定该从哪里入手,欢迎在评论区写下你的需求。

参考链接

  • [GraphRAG GitHub 仓库] (https://github.com/microsoft/graphrag)
  • [DEVELOPING.md - 开发指南] (https://github.com/microsoft/graphrag/blob/main/DEVELOPING.md)
  • [GraphRAG 官方文档] (https://microsoft.github.io/graphrag/)
基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-06-12 07:16:25 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/739935.html
  2. 运行时间 : 0.204337s [ 吞吐率:4.89req/s ] 内存消耗:4,720.27kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=ced4180b725d51b5d652fbae47fc15c1
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000851s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001112s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000533s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000492s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000974s ]
  6. SELECT * FROM `set` [ RunTime:0.000457s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001052s ]
  8. SELECT * FROM `article` WHERE `id` = 739935 LIMIT 1 [ RunTime:0.001197s ]
  9. UPDATE `article` SET `lasttime` = 1781219785 WHERE `id` = 739935 [ RunTime:0.001569s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000757s ]
  11. SELECT * FROM `article` WHERE `id` < 739935 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001039s ]
  12. SELECT * FROM `article` WHERE `id` > 739935 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001517s ]
  13. SELECT * FROM `article` WHERE `id` < 739935 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.004099s ]
  14. SELECT * FROM `article` WHERE `id` < 739935 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.003146s ]
  15. SELECT * FROM `article` WHERE `id` < 739935 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.003061s ]
0.207246s