乐于分享
好东西不私藏

〖OpenClaw系列〗多渠道消息统一管理:消息总线、跨渠道会话同步与故障转移实战

〖OpenClaw系列〗多渠道消息统一管理:消息总线、跨渠道会话同步与故障转移实战

上篇回顾

第26篇我们讲解了群组消息路由与管理:

  • 群组消息路由机制
  • 多群组配置与权限继承
  • 话题隔离与会话管理
  • 消息广播与转发

本文整合所有渠道——如何实现跨渠道的统一消息管理。

一句话提要:适配器层标准化异构消息 → 统一消息总线集中处理 → 身份映射实现跨渠道会话同步 → 优先级 + 健康检查自动故障转移 → 格式适配确保各渠道体验一致,5大能力一站配齐。


核心概念速览

在动手配置多渠道统一管理之前,先搞清楚几个核心概念——后面每一节都会用到。

术语
白话解释
类比
消息总线(Message Bus)
所有渠道消息汇聚的中心管道,负责消息的接收、分发和路由
类似快递分拣中心——各渠道消息像包裹一样汇聚、分拣、投递
适配器(Adapter)
将不同渠道的消息格式转换为统一格式的转换层
类似万能充电器——不管什么插头,转换后都是标准接口
消息标准化
将 Telegram/Slack/Discord 等异构消息统一为同一数据结构
类似翻译——各国语言统一翻译成"世界语"
会话同步(Session Sync)
同一用户在不同渠道共享对话上下文
类似聊天漫游——手机和电脑看到同样的聊天记录
身份映射(Identity Mapping)
将不同渠道中同一用户的身份关联起来
类似身份证——不同渠道是不同"名字",但背后是同一个人
故障转移(Failover)
主渠道不可用时自动切换到备用渠道
类似航班备降——主机场关闭自动转备降机场
格式适配(Format Adaptation)
根据目标渠道能力自动转换消息的显示格式
类似响应式设计——同一内容适配不同屏幕尺寸

记住三组核心概念:适配器 = 格式统一(入站标准化的前提)、会话同步 = 上下文一致(跨渠道体验的基石)、故障转移 = 高可用保障(生产环境必配)。


一个消息的跨渠道之旅

理解多渠道统一管理最好的方式,是跟随一条消息从发到收的完整路径。

场景:用户 John 在 Telegram 给 AI 助手发了一条消息"帮我查今天的服务器状态",然后切到 Slack 继续对话。

Step 1: 消息入站  John 在 Telegram 发送 → Telegram Adapter 接收原始消息Step 2: 消息标准化  Telegram Adapter 将消息转换为 UnifiedMessage 格式:  {    channel: "telegram",    sender: { id: "123456789", username: "john" },    content: { text: "帮我查今天的服务器状态" },    conversation: { type: "dm", id: "tg:john:123456789" }  }Step 3: 身份映射  系统查找 john → 统一身份 { telegram: "123456789", slack: "U1234567890" }  确认这是 john,无需创建新身份Step 4: 会话恢复  查找 john 的活跃会话 → 找到 session:john:20260627  上下文:之前在 Slack 问过部署进度Step 5: Agent 处理  Agent 接收消息,参考会话上下文  生成回复:"今天服务器运行正常,3台在线..."Step 6: 格式适配  目标渠道 Telegram → 适配为 Telegram Markdown 格式  如果目标是 Slack → 适配为 Slack mrkdwn 格式Step 7: 消息出站  通过 Telegram Adapter 发送回复给 JohnStep 8: 会话同步  更新 john 的统一会话上下文  当 John 切到 Slack 时,新会话自动加载刚才的上下文

关键设计点

  • Step 2 是多渠道统一的基石——所有渠道的异构消息都通过适配器标准化
  • Step 3 是跨渠道同步的前提——没有身份映射就不知道"Telegram的john"和"Slack的john.doe"是同一人
  • Step 8 是用户体验的保障——切换渠道后上下文不断

多渠道架构设计

统一消息总线

多渠道消息通过适配器层标准化后,汇入统一消息总线进行处理:

┌─────────────────────────────────────────────────────────┐│                      消息总线 (Message Bus)               │├─────────────────────────────────────────────────────────┤│  Telegram  │  WhatsApp  │  Discord  │  Slack  │  飞书   ││   Adapter  │   Adapter  │  Adapter  │ Adapter │ Adapter │└─────┬──────┴─────┬──────┴────┬──────┴────┬────┴───┬─────┘      │            │           │           │        │      └────────────┴───────────┴───────────┴────────┘                           │                    ┌──────▼──────┐                    │   OpenClaw   │                    │   Gateway    │                    └──────┬──────┘                           │      ┌────────────────────┼────────────────────┐      │                    │                    │┌─────▼─────┐      ┌───────▼───────┐   ┌───────▼──────┐│  Session  │      │    Agent      │   │    Store     ││  Manager  │      │   Runtime     │   │  (Messages)  │└───────────┘      └───────────────┘   └──────────────┘

消息处理实现说明

💡 校正:老文章把 Redis 当 OpenClaw 配置/依赖,真实 v2026.6.11 基线无 Redis 依赖(状态本地 SQLite,无 MessageBus 抽象)。OpenClaw 没有内置 MessageBus/消息总线抽象(无 messageBus.backend、无 agents.communication.bus、无 state.global 这类配置)。消息处理在 agent-loop + 阶段流水线内完成(参考第51篇),多实例靠会话状态持久化 + worker 网关 + Proxyline。如需分布式消息队列,需自建外部方案,而非通过 OpenClaw 配置切换。

下面的对比表是通用消息中间件知识,非 OpenClaw 内置功能,仅用于帮助读者理解如果自建外部队列该如何选型:

实现方式
吞吐量
可靠性
部署复杂度
适用场景
内存队列
极高(10万+/s)
进程重启丢失
开发测试、单机部署(OpenClaw 单机默认走这条路)
Redis Stream
高(5万+/s)
持久化到磁盘
低(单Redis实例)
中小规模生产环境(需自建外部 Redis)
Kafka
极高(100万+/s)
分布式持久化
高(集群部署)
大规模企业级部署(需自建外部 Kafka)

通用中间件选型建议(非 OpenClaw 内置配置):日消息量 < 50 万用内存队列或 Redis Stream,> 50 万或多网关部署用 Kafka。这些是外部消息中间件的通用选型经验,OpenClaw 内置不提供 messageBus 配置,如需接入需自建。

消息标准化

所有渠道消息转换为统一格式:

interfaceUnifiedMessage {idstring;channelstring;           // telegram | whatsapp | discord | slack | feishu | signal | matrix | email | smschannelType"im" | "email" | "sms" | "forum";  // 渠道大类:即时通讯/邮件/短信/论坛  channelAccount?: string;   // 多账号场景type"text" | "image" | "file" | "voice" | "video" | "location" | "contact" | "sticker";priority"low" | "normal" | "high" | "urgent";  // 消息优先级// 发送者信息sender: {idstring;    username?: string;    displayName?: string;    role?: string;    isBot?: boolean;          // 标识是否为机器人消息  };// 会话标识conversation: {type"dm" | "group" | "thread" | "channel";idstring;    name?: string;    parentConversationId?: string;  // 线程/话题的父会话ID  };// 消息内容content: {    text?: string;    markdown?: string;    html?: string;            // 部分渠道(如飞书)支持HTML    attachments?: Attachment[];    mentions?: string[];      // @提及的用户ID列表  };// 元数据metadata: {timestampnumber;traceIdstring;          // 分布式追踪ID,用于日志关联    replyTo?: string;         // 回复的消息ID    edited?: boolean;    forwarded?: boolean;    channelId?: string;       // 渠道原始ID,用于渠道特有操作  };}

消息统一存储

存储架构

💡 校正:老文章把 Redis 当 OpenClaw 配置/依赖,真实 v2026.6.11 基线无 Redis 依赖(状态本地 SQLite,无 MessageBus 抽象)。下方 storage.messages 配置块中的 backend 选项以 openclaw config schema 为准;老文章列出的 redis backend 并非内置。

{  storage: {    messages: {      // 存储后端      backend: "sqlite",      // sqlite | postgres(OpenClaw 基线不内置 redis backend;具体可用值以 `openclaw config schema` 为准)      // 连接配置      connection: {        path: "/data/openclaw/messages.db"        // 或 PostgreSQL        // host: "localhost",        // port: 5432,        // database: "openclaw"      },      // 保留策略      retention: {        days: 90,               // 保留90天        maxSizeGb: 10         // 最大10GB      },      // 索引配置      indexes: [        "channel",        "sender.id",        "conversation.id",        "timestamp"      ]    }  }}

消息查询

# 读取指定渠道的最近消息openclaw message read --channel telegram --limit 50# 搜索 Discord 消息openclaw message search --channel discord "部署问题"# 查看各渠道消息统计(跨渠道概览)openclaw channels status --json

说明:跨渠道消息搜索目前通过 channels status 查看各渠道的消息统计概览,细粒度的历史消息查询建议通过配置日志后端(file/postgres/elasticsearch)后在外部系统检索。


跨渠道会话同步

与前文的关系:第26篇讲的是单渠道内的会话管理(话题绑定、空闲超时、会话生命周期),配置在 channels.{channel}.threadBindings 层面。本文的跨渠道会话同步是在单渠道会话基础上新增的跨渠道维度,配置在 session.sync 层面。两者互补不冲突——单渠道会话管理负责"同一个渠道内的话题隔离",跨渠道同步负责"不同渠道间的上下文共享"。只有先完成单渠道会话配置,跨渠道同步才能正确工作。

会话同步策略

{  session: {    // 跨渠道同步    sync: {      enabled: true,      // 同步范围      scope: "user",          // user | conversation | none      // 同步渠道      channels: ["telegram", "slack", "discord"],      // 冲突解决策略      conflictResolution: "latest"  // latest | merge | manual    }  }}

冲突解决策略详解

当同一用户在多个渠道同时发送消息,会话状态可能产生冲突。三种策略的行为差异:

策略
行为
适用场景
风险
latest
时间戳最新的状态覆盖旧状态
大多数场景(默认)
快速对话可能丢失中间状态
merge
合并所有渠道的状态变更
需要保留完整上下文
合并规则复杂,可能产生不一致
manual
冲突时暂停自动处理,等待人工干预
高安全性要求
需要额外的冲突处理机制

merge 合并规则

{  session: {    sync: {      conflictResolution: "merge",      // merge 策略的合并规则      mergeRules: {        // 对话历史:合并(不丢弃任何消息)        history: "append",        // 用户偏好:最新覆盖        preferences: "latest",        // 工具权限:取并集(任何渠道授予的权限都保留)        toolPermissions: "union",        // 会话变量:按变量粒度取最新值        sessionVars: "latestPerKey"      }    }  }}

实践建议:大多数团队使用 latest 即可。如果用户在多渠道频繁并行对话,考虑 merge;如果对话涉及敏感操作(转账、删除),考虑 manual

用户级会话同步

同一用户在不同渠道的会话通过身份映射共享上下文:

同一用户在不同渠道的会话共享:

Telegram: @john    ↓ 同步Slack: @john.doe    ↓ 同步Discord: @john#1234共享同一个用户会话上下文

配置:

{  identity: {    // 用户身份映射    mapping: {      "john": {        telegram: "123456789",        slack: "U1234567890",        discord: "123456789012345678"      }    }  },  session: {    // 基于统一身份创建会话    keyGenerator: "identity",    identityKey: "{userId}"  }}

自动化身份映射

手动映射适合小规模团队(< 50人),生产环境建议使用自动化方案:

方案
原理
适用场景
SSO 关联
用户首次在各渠道登录时通过 SSO 统一身份
企业版(SSO 已部署)
邮箱匹配
根据各渠道账号的邮箱地址自动关联
邮箱体系统一的团队
用户自关联
用户在一个渠道发送验证码,在其他渠道验证
无统一身份源的团队
管理员批量导入
通过 CSV/API 批量导入映射关系
大规模初始部署
{  identity: {    // 自动化映射策略    autoMapping: {      enabled: true,      // 邮箱匹配      emailMatch: {        enabled: true,        // 渠道邮箱字段的映射        fields: {          telegram: "email",       // Telegram 用户邮箱          slack: "email",          // Slack 用户 profile.email          discord: "email"         // Discord 用户 email        }      },      // 用户自关联      selfBinding: {        enabled: true,        // 验证码有效期(分钟)        codeExpiryMinutes: 10,        // 每日最大关联次数        maxBindingsPerDay: 3      }    }  }}

安全提醒:自动映射降低了人工成本,但也增加了身份冒用风险。建议配合 dmPolicy: "allowlist" 使用,并在映射完成后通知管理员审核。


渠道优先级与故障转移

优先级配置

{  channels: {    // 优先级:数字越小优先级越高    priority: {      telegram: 1,      // 首选      slack: 2,         // 次选      email: 3          // 保底    },    // 故障转移    failover: {      enabled: true,      // 故障检测      healthCheck: {        intervalSeconds: 30,        timeoutSeconds: 5      },      // 转移策略      strategy: "priority",   // priority | round-robin | random      // 回退渠道      fallback: "email"    }  }}

故障转移场景

主渠道故障时,系统通过健康检查自动切换到备用渠道:

用户发送消息      ↓Telegram 渠道(优先级1)      ↓健康检查失败      ↓自动切换到 Slack(优先级2)      ↓通知用户渠道变更

健康判定条件

渠道的"健康"与"不健康"由以下条件判定:

条件
判定
说明
连续 N 次发送失败
❌ 不健康
maxConsecutiveFailures: 3
API 响应延迟超过阈值
⚠️ 降级
degradedLatencyMs: 2000
WebSocket/长连接断开
❌ 不健康
适配器自动检测
认证失败(Token 过期)
❌ 不健康
需人工处理
超过 N 秒无消息(空闲)
✅ 健康
仅影响统计,不触发转移

正常→不健康:连续 3 次失败;不健康→正常:连续 3 次成功。降级状态仍可使用但优先级降低。


消息格式转换

自动格式转换

{  channels: {    telegram: {      markdown: {        enabled: true,        // Telegram 原生格式        flavor: "telegram"      }    },    slack: {      markdown: {        enabled: true,        // Slack mrkdwn 格式        flavor: "slack"      }    },    discord: {      markdown: {        enabled: true,        // Discord 格式        flavor: "discord"      }    }  }}

富消息适配

各渠道的富消息格式各有不同,OpenClaw 自动转换确保一致性:

特性
Telegram
Discord
Slack
飞书
按钮
✅ 原生
✅ 原生
✅ 原生
✅ 原生
图片
✅ 原生
✅ 原生
✅ 原生
✅ 原生
代码块
✅ 原生
✅ 原生
✅ 原生
✅ 原生
引用
✅ 原生
⚠️ Embed降级为文本+链接
⚠️ Block Kit降级为纯文本
✅ 原生
线程
✅ 原生
✅ 原生
✅ 原生
✅ 原生
卡片/Embed
⚠️ 降级为文本+链接
✅ 原生Embed
⚠️ Block Kit部分支持
✅ 原生卡片

图例:✅ 原生 = 渠道原生支持;⚠️ 降级 = OpenClaw 自动转换为渠道支持的最接近格式

OpenClaw 自动转换不支持的特性:

  • Discord Embed → Telegram 文本+链接
  • Slack Block Kit → 纯文本摘要
  • 飞书互动卡片 → Slack Block Kit(如支持)或纯文本

监控与可观测性

多渠道统一管理上线后,监控是运维的核心——哪个渠道挂了、消息投递延迟多少、存储空间够不够,都必须实时感知。

渠道健康监控

# 查看所有渠道状态openclaw status --all# 输出示例:# Channel    Status     Latency    Last Message    Uptime# telegram   healthy    45ms       2s ago          15d 3h# slack      healthy    120ms      5s ago          15d 3h# discord    degraded   2500ms     30s ago         15d 3h# whatsapp   down       N/A        5m ago          0d 0h
{  channels: {    healthMonitor: {      enabled: true,      // 健康判定条件      criteria: {        // 连续 N 次发送失败判定为不健康        maxConsecutiveFailures: 3,        // 响应延迟超过阈值判定为降级        degradedLatencyMs: 2000,        // 超过 N 秒无消息判定为空闲        idleTimeoutSeconds: 300      },      // 检查间隔      intervalSeconds: 30    }  }}

消息投递指标

指标
说明
告警建议
openclaw_messages_total
消息总数(按渠道标签)
异常下跌 > 50% 告警
openclaw_message_delivery_duration_ms
消息投递延迟
> 5000ms 告警
openclaw_message_delivery_errors_total
投递失败数
> 10/min 告警
openclaw_channel_up
渠道在线状态(0/1)
变为 0 时告警
openclaw_channel_latency_ms
渠道响应延迟
> 2000ms 告警
openclaw_failover_total
故障转移次数
> 5/hour 告警
openclaw_session_sync_lag_ms
会话同步延迟
> 3000ms 告警

告警配置

{  diagnostics: {    alerts: {      enabled: true,      // 告警通知渠道      notify: {        channels: ["slack", "email"],        // 告警静默期(避免重复告警)        silenceMinutes: 15      },      // 告警规则      rules: [        {          name: "channel_down",          condition: "channel_up == 0",          severity: "critical",          message: "渠道 {channel} 已离线"        },        {          name: "high_latency",          condition: "channel_latency_ms > 5000",          severity: "warning",          message: "渠道 {channel} 延迟过高: {value}ms"        },        {          name: "failover_triggered",          condition: "failover_total increase > 3 in 1h",          severity: "warning",          message: "故障转移频繁触发,请检查渠道稳定性"        }      ]    }  }}

Prometheus 集成

# Prometheus 抓取配置# prometheus.ymlscrape_configs:  - job_name: 'openclaw'    static_configs:      - targets: ['localhost:9090']    scrape_interval: 15s

存储监控

# 查看存储使用openclaw status --all --json# 输出示例:# Backend:    sqlite# Database:   /data/openclaw/messages.db# Size:       2.3 GB / 10 GB (23%)# Messages:   1,234,567# Oldest:     2026-04-01 (87 days ago)# Indexes:    4 indexes, 256 MB

踩坑

坑1:消息ID冲突

现象:不同渠道消息ID重复,导致去重失败

深层原因:不同渠道的消息ID在各自系统内唯一,但跨渠道后 ID 空间重叠。例如 Telegram 消息ID是纯数字递增(1, 2, 3...),Discord 使用 Snowflake ID(17-18位数字),Slack 使用时间戳格式。如果只用 messageId 作为存储主键,Telegram 的消息ID "1" 和 Discord 的消息ID "1" 会冲突。

解决(参见上方"消息统一存储"章节的 keyFormat 配置):

{  storage: {    messages: {      // 使用复合主键      keyFormat: "{channel}:{channelAccount}:{messageId}"    }  }}

坑2:会话同步延迟

现象:跨渠道会话状态不一致

深层原因:跨渠道同步需要经过"消息入站 → 身份映射查找 → 会话写入 → 同步通知 → 对端渠道读取"5步链路,任何一步的延迟都会累积。常见瓶颈是身份映射查找(多次数据库查询)和同步通知(跨进程通信)。

解决(参见上方"跨渠道会话同步"章节的 sync 配置):

{  session: {    sync: {      // 强制同步等待      waitForSync: true,      timeoutMs: 5000    }  }}

waitForSync: true 设置后,消息处理线程会阻塞等待同步完成,适合对一致性要求高的场景,但会牺牲响应速度。

坑3:存储空间爆满

现象:消息存储占用过多磁盘

深层原因:消息存储包含原始消息文本、附件元数据、索引数据三部分。对于活跃渠道(如消息量大的 Telegram 群组),日增数据可达 100MB+。如果没有保留策略,3个月就是 9GB+。

解决(参见上方"消息统一存储"章节的 retention 配置):

{  storage: {    messages: {      retention: {        days: 30,           // 缩短保留期        archiveOld: true,   // 归档到冷存储        compress: true      // 启用压缩(通常压缩率 40-60%)      }    }  }}

坑4:故障转移循环

现象:渠道故障后反复切换

深层原因:当主渠道因网络抖动出现间歇性故障时,健康检查可能在"通过"和"失败"之间快速切换,导致系统在主渠道和备用渠道之间反复切换。每次切换都涉及连接建立、会话迁移和用户通知,频繁切换比单渠道故障影响更大。

解决(参见上方"渠道优先级与故障转移"章节的 failover 配置):

{  channels: {    failover: {      // 冷却期,避免频繁切换      cooldownMinutes: 5,      // 最大重试次数      maxRetries: 3    }  }}

cooldownMinutes: 5 确保切换后至少 5 分钟不再切回,避免抖动。

坑5:身份映射错误导致上下文串台

现象:不同用户的对话内容互相串扰

深层原因:手动身份映射配置错误(如复制粘贴时不小心将两个不同用户的渠道ID映射到同一个统一身份),导致系统认为两个不同用户是同一个人,共享了会话上下文。

解决

{  identity: {    // 开启映射冲突检测    validation: {      enabled: true,      // 检查是否有多个统一身份引用了同一个渠道ID      checkDuplicates: true,      // 启动时自动校验      validateOnStartup: true    }  }}
# 验证配置格式正确性openclaw config validate# 查看 Agent 身份映射配置openclaw config get agents.list# 输出:# Unified ID   Telegram    Slack         Discord# john         123456789   U1234567890   123456789012345678# jane         987654321   U9876543210   987654321012345678

FAQ

Q1: 如何查看跨渠道消息统计?

# 查看各渠道状态(含消息统计)openclaw channels status --json# 输出:# Channel    Status     Messages    Latency# telegram   healthy    4521        45ms# slack      healthy    3210        120ms# discord    degraded   2301        2500ms

Q2: 可以禁止跨渠道同步吗?

可以,按渠道配置:

{  channels: {    telegram: {      sessionSync: false    // 该渠道不参与同步    }  }}

Q3: 如何导出所有消息?

# 创建完整备份(包含消息数据)openclaw backup create --output /backup/openclaw-$(date +%Y%m%d).tar.gz# 仅导出配置openclaw backup create --only-config --json

消息数据包含在完整备份中。如需消息级别的细粒度导出,建议配置日志后端为 postgres 或 elasticsearch,通过外部工具检索。

Q4: 故障转移时用户会丢失消息吗?

不会,OpenClaw 会:

  1. 缓存待发送消息
  2. 渠道恢复后重试
  3. 或转发到备用渠道

Q5: SQLite 和 PostgreSQL 存储后端怎么选?

维度
SQLite
PostgreSQL
适用规模
日消息 < 10万
日消息 > 10万
部署复杂度
零配置
需独立部署
并发性能
写入锁竞争
高并发
查询能力
基础 SQL
全功能 SQL
运维成本
极低
中等

建议:日消息量 < 10 万用 SQLite,> 10 万或需要多网关共享数据时用 PostgreSQL。

Q6: 跨渠道消息延迟怎么排查?

# 1. 检查渠道延迟openclaw status --all# 2. 查看消息投递状况(通过日志)openclaw logs --follow --json | grep "delivery"# 3. 检查活跃会话openclaw sessions list --active 60 --json# 4. 全面健康检查openclaw doctor --deep

常见延迟原因:

  • 渠道 API 限流 → 调整 rateLimit 配置
  • 存储写入瓶颈 → SQLite 切 PostgreSQL 或启用压缩
  • 会话同步超时 → 调低 sync.timeoutMs 或关闭跨渠道同步

总结

本文详细讲解了多渠道消息统一管理:

能力
要点
统一存储
标准化消息格式,统一存储后端
会话同步
跨渠道共享用户上下文
故障转移
优先级+健康检查+自动切换
格式转换
自动适配各渠道特性
监控可观测
渠道健康+投递指标+告警规则(详见第28篇运维体系)

关键认知

  • 适配器层是多渠道统一的基石——所有渠道的异构消息都通过适配器标准化
  • 统一存储便于审计和分析
  • 会话同步提升用户体验——切换渠道后上下文不断
  • 故障转移确保高可用——生产环境必配
  • 监控与可观测性是运维的核心——没有监控的多渠道系统是盲飞

下一篇预告

第28篇:全渠道AI助手的终极配置

Phase 3 收官:

  • 10+渠道完整配置
  • 企业级部署架构
  • 监控与运维体系
  • Phase 3 总结与 Phase 4 预告

本文是系列第27篇。你的 AI 助手已实现跨渠道统一管理。


📌 觉得有用?点个「在看」 👇 👨‍💻 关注「敏叔侃技术」,每周更新 OpenClaw 实战干货 ⭐ 收藏这篇文章,作为多渠道管理的参考手册

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-11 13:14:15 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/881738.html
  2. 运行时间 : 0.228548s [ 吞吐率:4.38req/s ] 内存消耗:4,966.52kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=246e9dee3e520d0652a35244d0d0ad3c
  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 ( 4.22 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.11 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.000853s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001559s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000630s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000625s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001503s ]
  6. SELECT * FROM `set` [ RunTime:0.000560s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001511s ]
  8. SELECT * FROM `article` WHERE `id` = 881738 LIMIT 1 [ RunTime:0.001277s ]
  9. UPDATE `article` SET `lasttime` = 1786425256 WHERE `id` = 881738 [ RunTime:0.006248s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000719s ]
  11. SELECT * FROM `article` WHERE `id` < 881738 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001219s ]
  12. SELECT * FROM `article` WHERE `id` > 881738 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001128s ]
  13. SELECT * FROM `article` WHERE `id` < 881738 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.002264s ]
  14. SELECT * FROM `article` WHERE `id` < 881738 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001859s ]
  15. SELECT * FROM `article` WHERE `id` < 881738 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.006969s ]
0.232321s