当前位置:首页>python>600 行 Python 干掉向量库:RAG 底座的「去专门化」回潮

600 行 Python 干掉向量库:RAG 底座的「去专门化」回潮

  • 2026-08-19 22:59:36
600 行 Python 干掉向量库:RAG 底座的「去专门化」回潮

过去两年,几乎每个做 RAG 的团队都走了同一条路:选一个 em)bedding 模型 → 起一个专门的向量数据库(Pinecone / Milvus / Qdrant / Weaviate,按预算和合规挑一个)→ 把文档切片灌进去 → 写检索逻辑接 LLM。这套结构清楚得像教科书的例题,于是它也像教科书例题一样——没人再追问它是不是必要。

我想问一个不太讨喜的问题:你的 RAG,真的需要专门向量库吗?

如果你以为这只是个抠门的边缘话题,那看看这几组反差数字:

  • • Phoenix AI 团队用 600 行 Python + 一张 OLAP 表,撑起了一个用户评分 4.2/5、单回答成本约 0.001 美元 的内部 bot;
  • • Skeg 在 10 万条 1024 维向量上服务端 RAM 只要 47 MB,而 Qdrant 是 885 MB,差了快 19 倍
  • • IgniteMS 用 8 张 A100 在 32 分钟内嵌完 6.85 亿条文本,单位成本约 0.01 美元/100 万条,比 OpenAI text-embedding-3-small 便宜约 136 倍

这些数字背后,是 2025–2026 这一年正在发生的一件大事:向量能力正从「专用组件」下沉为「嵌进通用数据库 / 加密层 / 对象存储 / 批处理流水线里的一个能力」。 独立向量库不再是默认选项,而是某个场景下才成立的选择。

下面我按 5 个最具代表性的新趋势逐一拆解,并在文末给出一张架构师选型矩阵。先说结论:没有银弹,但「专门向量库」的默认位置,确实正在被动摇。

一、单表 RAG:第一个反水的人——StarRocks Rocky

第一个把这件事说破的,是 Phoenix AI 的 Billy Chang。他们做了一个 Slack 内部的 Q&A bot,名字叫 Rocky。Rocky 的架构可以用一句话讲完:

一张 OLAP 表 = 整个 RAG。

具体来说,文档切片、768 维 Gemini embedding、关键词、相似度分数,全部塞进一张 StarRocks 的 PRIMARY KEY 模型表。检索就一条 SQL:用 approx_cosine_similarity 排序,取 top 8。整个 bot 大约 600 行 Python + 一张表 + 一个 Gemini API key。没了。

建议配图位置:这里可放一张极简的架构对比图——左边「Embedding 服务 + 向量库 + 元数据 DB + 检索编排」四件套,右边「单 OLAP 表 + Gemini function call」一件套。视觉冲击来自减法。

这条路径的设计原则被作者一句话点透:

"如果你的分析型数据库已经支持数组类型列和余弦相似度函数,你就不需要第二个数据系统来做向量搜索。"

这是架构师会点头的一句话。第二个数据系统意味着什么?意味着多一套部署、多一套备份、多一套一致性对账、多一套监控告警、多一套升级窗口。在 Rocky 这种规模下,这些隐性运维成本远超向量检索本身带来的收益

但 Rocky 真正有想法的,不是"塞进一张表",而是它对 RAG 的重新定位:

RAG 是 Tool,不是 Pipeline

Rocky 把 search_starrocks_doc 暴露成一个 function call,由 Gemini 自己决定何时调用、调用几次(每轮上限 10 次),还能和 Gemini 内置的 Google Search 混用。这不是 pipeline,而是把检索降级成一个 LLM 可调用的工具。

这一点比"一张表"更值得抄。很多团队把 RAG 当成一条固定 pipeline:query → embed → 检索 → 拼 prompt → 生成。问题在于,不是每个问题都需要检索,也不是每个问题都需要同样的检索次数。让 LLM 自己决策,往往比写死的 pipeline 更省钱也更准。

原子化热更新:PK 表 + Stream Load

文档更新是个被低估的难点。很多向量库的更新是"软更新"——新 chunk 进去、旧 chunk 还在,检索结果会出现半新半旧。Rocky 的解法很干脆:文档更新时整库重新切片、重新 embedding、一次性 PUT 进表,靠 PRIMARY KEY 表的语义保证——用户要么看到旧语料,要么看到全量新语料,绝不半新半旧

这种"原子化热更新"在生产里非常重要,尤其是知识库频繁变动的场景(内部文档、产品手册)。

真正的瓶颈不在检索

Rocky 团队给了一组非常诚实的生产经验,其中两条我会原话引用:

"分块工程量约是集成向量搜索工程量的 10 倍。"

"RAG 检索固然重要,但 prompt engineering 往往是抑制幻觉更便宜、更快的杠杆。"

这两句话直接戳破了一个流行幻觉——很多团队把"换向量库"当成提升 RAG 质量的银弹,但实际上瓶颈 90% 在 chunking 和 prompt 上。Billy Chang 还顺手补了一刀:

"对 Q&A bot,听起来很自信的错误答案,比没有答案更糟糕。"

这条路的边界

我不是来鼓吹"全都用一张表"的。Rocky 这套成立的前提很具体:

  • • 知识库规模在单机 OLAP 表能扛的量级(不是亿级向量);
  • • 检索是辅助 LLM 的 tool,不是高 QPS 的纯检索服务;
  • • 你已经有一台 StarRocks / 类似的分析库在跑,加一列数组类型是边际成本。

如果你的场景是亿级向量、毫秒级 P99、高并发纯检索(比如电商搜索召回),这张表就扛不住了。这正是下一节要讲的——即便要做专门库,也得换一种做法


二、即便做专门库,也要 disk-first:Skeg

承认了"专门库在重负载场景仍然成立"之后,下一个问题来了:专门库应该长什么样? Skeg 给了一个反共识但务实的答案——disk-first, RAM-frugal

它的设计哲学一句话:把内存还给模型。

这个判断的背景是当下最尖锐的资源争夺:RAG 服务、SaaS 多租户、Agent 场景下,向量库和 LLM 推理正在抢同一块 RAM。 你在本地起一个 7B 模型 + 一个 Qdrant,你会发现 Qdrant 把显存/内存吃掉一大块,模型推理反而 OOM。Skeg 的方案是:完整高维向量存 SSD,内存里只留"小的、量化的工作集"

这种取舍是不是亏了?看实测(10 万条 1024 维向量、单租户):

引擎
服务端 RAM
recall@10
Skeg47 MB1.000
Milvus Lite
108 MB
0.934
LanceDB
198 MB
0.998
hnswlib
426 MB
0.985
Chroma
682 MB
0.985
Qdrant
885 MB
0.997

读这张表的方式很重要:Skeg 在保持 recall 1.000 的前提下,把 RAM 压到了 Qdrant 的 1/19。这不是用精度换内存的妥协,这是工程重新分配资源。

更狠的对比在多任务下:M1 Pro 同时跑 3B 参数 LLM + 100 万向量时,Skeg 峰值 RSS 仅 67 MiB,Qdrant 高达 2,387 MiB,约 35 倍。延迟方面 2.5ms p50,1024 维约 780 QPS 饱和——对绝大多数 RAG 检索场景来说,这个延迟和吞吐完全够用

多租户:构造出来,不是过滤出来

Skeg 还有一个我觉得很对的设计判断:一租户一索引

传统做法是"所有租户的数据放一个索引,查询时加 filter 过滤"。这种做法的隐患是——filter 写错一次就是跨租户泄漏。Skeg 把多租户"构造出来"而不是"过滤出来":一次查询在物理上就不可能碰到另一个租户的向量。再叠加硬配额(max_vectorsmax_disk_bytes)和公平缓存淘汰,这套设计在 SaaS 多租户场景下几乎是教科书级的。

架构师视角:当一个安全属性能从"靠 filter 正确性"上升到"物理上不可能违反",那就应该上升。安全靠纪律是脆弱的,靠结构才是稳的。

工程细节

Skeg 用 Rust 1.88+ 写,认证用 argon2id,可观测性走 Prometheus / OpenTelemetry / tracing,双引擎(KV + 向量)共用 Redis 兼容协议。发布版面向 aarch64——这是个细节,说明它瞄准的是云 ARM 实例和 Apple Silicon,都是和 LLM 推理抢 RAM 的主战场。

Skeg 的边界

我必须把代价讲清楚:

  • • disk-first 的代价是写入路径和 SSD I/O 抖动。如果你的 SSD 是共享云盘或 IOPS 受限,延迟方差会变大;
  • • Skeg 的"亚线性性能"依赖过滤检索规划器,复杂过滤条件下需要实测,不要拿 benchmark 直接外推;
  • • 它目前是个相对新的项目,生态、社区、托管方案的成熟度远不及 Milvus / Qdrant——生产采用前要评估团队支撑能力。

判断:当你要把宝贵 RAM 留给 LLM 推理(本地部署、单机多租户、Agent on-device),disk-first + 量化工作集是反共识但务实的取舍。当你的瓶颈是"算力而非内存",那 Skeg 的优势就发挥不出来。


三、检索可加密:XTrace

第三个趋势更前沿,但场景非常硬:密文上做最近邻检索

XTrace 抛出的核心命题,戳到了所有托管向量库的软肋:

"市面上每一个向量数据库,都要求你把数据以明文形式交给第三方。"

对个人开发者这无所谓,但对金融、医疗、法务这些数据出域有强约束的行业,这是结构性的拦路虎。你不可能把病历、合同、客户尽调材料做成 embedding 然后丢上某个 SaaS 向量库——合规那一关过不了。

XTrace 的解法是零知识加密检索,密码学上很硬:

  • • embedding 向量用 Paillier 同态加密——服务器能在密文上直接做最近邻运算,全程不解密;
  • • 原始文本块用 AES-256 加密
  • • 秘密钥永不离开本地,服务器永远看不到一字节明文。

四步流程:

  1. 1. 本地 embedding + 本地加密;
  2. 2. 服务器只存密文,查询也本地加密后再发送;
  3. 3. 服务器"盲算"——在加密向量上算最近邻;
  4. 4. 返回加密结果,本地用秘密钥解密。

架构师视角:注意 Paillier 同态加密是部分同态(支持加法同态),它适合做余弦相似度这种"加法和点积"可表达的运算。如果你的检索要用更复杂的距离度量或量化索引(如 HNSW + 乘积量化),同态方案能不能扛、recall 损失多大,是需要实测的——XTrace 的 README 没给性能/延迟/吞吐基准,这是个明确的 [需核实] 项。

模块上 XTrace 分了 x-vec(加密向量搜索)和 x-mem(加密 Agent 记忆,coming soon),本地 embedding 默认用 Sentence Transformers(示例 mxbai-embed-large-v1),还提供 CLI 做密钥生成 / 上传 / 检索 / 凭证管理。仓库作者很直白:

"This repo exists so you can verify the encryption yourself."

XTrace 的判断

这是个场景驱动的工具,不是普适方案。它的价值在两点:

  1. 1. 化解"上云做向量搜索"和"数据合规"的矛盾——这是金融/医疗/法务做 RAG 时最痛的一点;
  2. 2. 它示范了一种密码学第一性的检索架构,对自建加密检索系统有参考价值。

代价同样明确:同态加密的开销不小,吞吐和延迟会显著低于明文检索,且生态、性能数据都还在早期。如果你的场景没有出域约束,别为了"加密"而加密——这是用复杂度换一个你不需要的安全属性。


四、范式收敛:HelixDB

如果说前三个趋势是在"专不专门"和"省不省内存"上做文章,第四个趋势更野心勃勃:把多种数据库范式收敛到一套引擎

HelixDB 的定位是"OLTP graph-vector 数据库",用 Rust 从零构建,架在对象存储之上,专为知识图谱和 AI 记忆设计。它的 slogan 简单粗暴:

"Just Use Helix."

背后的判断是:当下的 AI 应用正在堆出一座数据库巴别塔。一个企业级 Agent 通常长这样:

  • • 一个应用 DB(PostgreSQL)存业务数据;
  • • 一个关系 DB 存结构化分析;
  • • 一个向量 DB 存 embedding;
  • • 一个图 DB 存实体关系和知识图谱;
  • • 一个 KV 存会话状态。

这套堆叠的运维复杂度,是真实生产里每天都在出血的伤口。HelixDB 的方案是把 图、向量、KV、文档、关系多范式合并到一个平台,目的是"消灭架构臃肿":

"你不再需要一个独立的应用 DB、关系 DB、向量 DB、图 DB。"

两种形态

HelixDB 提供本地和云两种形态:

  • • 本地容器:默认内存模式,加 --disk 可持久化,适合开发调试;
  • • HelixDB Cloud:建立在对象存储之上,分布式高可用,完整 ACID 事务,架构为单写者 + 自动扩缩容读节点

"单写者 + 自动扩缩容读节点"这个组合很有意思——它本质上是承认了"对象存储上做高并发写很难",于是用一个串行化的写者换 ACID,再用读节点横向扩展吞吐。这是个诚实的工程妥协,比那些号称"对象存储上既 ACID 又高并发写"的方案靠谱。

查询层面,HelixDB 提供 Rust / TypeScript / Go / Python SDK,用各语言 DSL 写查询,编译成 JSON AST 发给运行实例。这种"DSL 编译成 AST"的做法,是为了在不暴露通用查询语言(比如 SQL/Cypher/GraphQL 三选一的尴尬)的前提下,提供跨语言的查询能力。

HelixDB 的判断(含明确保留)

这里我必须给一个带保留意见的判断

  • • 趋势判断成立:图 + 向量 + 对象存储的组合,是 AI 原生数据库的明显方向。把多范式收敛到一套引擎,对降低架构臃肿是有价值的;
  • • 成熟度存疑:HelixDB 的 README 没有给出性能、延迟、吞吐数字,也没有和 Neo4j / Turso 的对比——这是个明确的 [需核实] 项。多范式合并的系统,最常见的问题是"每一范式都做不深"——图查询比不过 Neo4j,向量检索比不过 Qdrant,关系分析比不过 Postgres。在没有实测前,不要把它当主力库;
  • • 生产采用建议:可以在新的、非核心的 AI 记忆 / 知识图谱场景试用 HelixDB,验证它在你具体 query 模式下的表现;不要为了"统一架构"而把已经稳定的 Postgres + 向量库组合拆掉重做。

判断:范式收敛是值得关注的方向,HelixDB 是一个早期但有意思的样本。但"早期"两个字请你认真对待。


五、批处理复兴:IgniteMS

前四个趋势都在讲"检索侧"的重新设计,第五个趋势转到"写入侧"——大规模 embedding 的批处理复兴

这个话题之所以重要,是因为很多团队对 embedding 成本有错误的直觉。脑子里默认的是"调一下 OpenAI API,几行代码搞定"。但当你真的要给亿级文档做 embedding(一次性全量索引、定期 reindex、多模型横向对比),账单会让你重新思考。

IgniteMS 给了一组非常硬的实测:用 1 台 p4d.24xlarge(8× A100 40GB spot),嵌入 685,520,494 条文本,总墙钟 1,915 秒(约 31.9 分钟),平均吞吐 357,893 条/秒,峰值 506,589 条/秒单位成本约 0.01 美元/100 万条消息

更直观的对比是成本:OpenAI text-embedding-3-small 约 1.36 美元/100 万条,IgniteMS 约 0.01 美元/100 万条——约 136 倍成本差

架构师视角:136 倍这个数字要冷静看。它对比的是自建 spot 实例 + 自托管 vs 托管 API 的零售价。如果你已经养着 GPU 集群,边际成本确实能压到这个量级;如果你要为这套基础设施专门招人、付云厂商钱、维护 TensorRT 编译流程,TCO 不一定有 136 倍优势。但即便打个对折,量级差异也是真实的——亿级 reindex 时这就是"做不做得了"和"做不做得起"的差别。

它凭什么这么快

IgniteMS 的吞吐来自 5 个工程手段,每一个都值得抄作业:

  1. 1. TensorRT 编译——为 GPU 架构和 batch shape 生成专属 kernel,绕开 ONNX/PyTorch 抽象层(TensorRT 11 混合精度);
  2. 2. 分桶批处理——按 token 长度分组,避免短句被强制 pad 到长句而浪费算力;
  3. 3. 异步 CPU 流水线——tokenization / batching / GPU dispatch 互不阻塞;
  4. 4. 无锁多 GPU 管理——单进程内用无锁队列协作多张 GPU,而不是每张 GPU 起一个容器走 HTTP 通信;
  5. 5. 引擎缓存——编译完即缓存复用,避免重复编译。

第 4 点尤其值得说。多 GPU 通信走 HTTP 是很多批处理框架的隐藏开销——你以为是 GPU 慢,其实是 GPU 之间在等网络。无锁队列直接干掉这层,是个朴素但很有效的优化。

IgniteMS 原生支持 60 个模型(E5 / BGE / GTE / MiniLM / MPNet / Nomic / Jina / mxbai / Snowflake Arctic / LaBSE / stella 等,覆盖中文/法语/俄语/韩语),encoder 和 decoder 双架构都支持。

和主流方案的吞吐对比

这张表(100 万条 MSMARCO 文段、8× A100 80GB、单 GPU 跑 e5-small、56,002 msg/s 基线)信息量很大:

方案
吞吐
相对
IgniteMS56,002 msg/s
HuggingFace TEI
16,412 msg/s
IgniteMS 快 3.6×
Fastembed (ORT+CUDA)
8,907 msg/s
约 6.3×
SentenceTransformers
2,468 msg/s
约 22.7×

读法:SentenceTransformers 是大家最熟的工具,但它比 IgniteMS 慢近 23 倍。这不是 SentenceTransformers 的错——它是为通用性、易用性设计的,不是为极致吞吐设计的。但很多团队在生产里直接拿 SentenceTransformers 跑亿级 embedding,白白烧掉一个数量级的 GPU 时间

批处理复兴的判断

这一节的判断最干脆:

  • • 亿级数据量,必须自建批处理。这个量级下调 API 的成本和速率限制都受不了;
  • • 百万级以下,调 API 更划算。0.01 美元/100 万条的前提是你已经持有 GPU 资源,小数据集场景里这套基础设施的搭建和运维成本,远超省下的 token 钱;
  • • Rust + TensorRT + 无锁多 GPU 这套技术栈正在重塑"embedding 工程师"这个角色——它越来越像一个高性能计算问题,而不是 ML 问题

收尾:架构师选型矩阵

讲完五个趋势,回到开篇那个问题:你的 RAG,到底该用什么?

我不打算给你一个"全都好"的中庸答案。下面这张矩阵是我作为架构师,在 2026 年这个时点上会给出的明确判断:

场景
推荐方案
理由
反例(不该用)
内部 Q&A bot / 文档助手(知识库 < 千万级 chunk)
单表 RAG(已有 OLAP 库则加数组列;没有则用 pgvector)
运维一套系统,省下第二套库的全部隐性成本;瓶颈在 chunking 不在检索
不要为了"专业"起独立向量库
本地 / 单机 Agent,RAM 紧张(要同时跑 LLM)
disk-first 向量库(如 Skeg)或量化 + 内存外索引
RAM 留给模型推理,47 MB vs 885 MB 是真实差距
不要起内存型 Qdrant / Chroma 抢显存
金融 / 医疗 / 法务,数据出域强约束
加密检索(如 XTrace 的 Paillier 同态方案)
化解"上云做向量"与"合规"的结构性矛盾
不要明文上传到任何托管向量库 SaaS
知识图谱 + 向量混合检索(企业大脑 / Agent 记忆)
多范式收敛库(如 HelixDB)或 Postgres + Apache AGE + pgvector 组合
一套引擎降低架构臃肿;但生产前必须实测每一范式的深度
不要轻信"全范式都强"的宣传
亿级文档全量 embedding / 定期 reindex
自建批处理引擎(如 IgniteMS:Rust + TensorRT + 无锁多 GPU)
比 OpenAI 便宜约 136 倍;SentenceTransformers 慢 23 倍
不要拿 SentenceTransformers 跑亿级
高并发纯检索(电商召回、推荐,P99 毫秒级)
主流专门向量库(Milvus / Qdrant 等)+ HNSW + 量化
这是专门库仍然成立的场景,单表 RAG 扛不住
不要用单表方案硬撑

建议配图位置:这张表是本文的"决策核心",建议整张做成横向卡片,背景色按场景类别分色,方便读者截图保存。

三条需要记住的元判断

表格之外,再给你三条我自己的元判断,这些比具体方案更值得带走:

第一,「专门向量库」正在从默认选项退化为场景选项。 它不再是 RAG 的必选组件,而是一种在"高并发纯检索"和"超大规模索引"等具体场景下才成立的选择。中小规模、知识库场景,单表 RAG 或 pgvector 完全够用。

第二,RAG 的真正瓶颈在 chunking 和 prompt,不在向量库选型。 Rocky 团队那句"分块工程量是向量检索的 10 倍"应该贴在每个 RAG 工程师的显示器上。在你优化向量库之前,先确认你的 chunking 和 prompt 已经做到了 80 分——否则你是在给一辆没有发动机的车换轮胎。

第三,2026 年的 embedding 工程正在从 ML 问题变成 HPC 问题。 TensorRT、无锁多 GPU、分桶批处理——这些词的频次上升,说明大规模 embedding 已经进入高性能计算范畴。如果你的工作涉及亿级数据处理,掌握这套技术栈的回报会越来越高。

最后一句

选型的本质,从来不是"哪个工具更好",而是"哪个工具的成本结构,匹配你的真实场景"。专门向量库没有错,错的是把它当默认答案。

如果你正在做 RAG 选型,或者已经在生产里跑着一套想重新审视——评论区告诉我你的场景(知识库规模、QPS、是否多租户、是否有合规约束),我会给出更具体的判断。这种问题没有标准答案,但有一个属于你场景的最优解。

最新文章

随机文章

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