当前位置:首页>python>第210讲:告别工单洪水:VBA和Python双方案精准标记重复提交的技术实践

第210讲:告别工单洪水:VBA和Python双方案精准标记重复提交的技术实践

  • 2026-03-25 14:29:59
第210讲:告别工单洪水:VBA和Python双方案精准标记重复提交的技术实践

在日常的客户服务与工单处理中,我们常被一个低效却高频的问题困扰:客户在短时间内重复提交内容相同或高度相似的工单。这不但挤占了宝贵的客服资源,导致响应延迟,也影响了客户体验和内部数据处理效率。一个典型的业务规则是:同一客户ID在5分钟内重复提交相同问题描述的工单,应被系统自动标记为“重复工单”

本文将深入探讨这一场景的技术实现方案,并分别用VBA(Excel环境) 和 Python(数据分析环境) 两种工具,手把手演示实现逻辑,助您构建更清爽、高效的工单处理流程。


一、 业务逻辑深度剖析:何为“有效重复”?

在编码之前,我们必须精准定义业务规则。规则“同一客户ID在5分钟内重复提交相同问题”包含三个核心判定维度:

  1. 客户ID:工单的归属主体。

  2. 问题描述:工单的核心内容,判断是否“相同”。

  3. 提交时间:判定是否在“5分钟内”的时间窗口。

因此,技术实现的关键在于,如何基于多列条件进行去重判断,而不仅仅是依据单列。

二、 VBA实现:巧用字典构建唯一性哈希

在Excel环境中处理工单数据,VBA是强大的自动化工具。其核心思路是使用 Scripting.Dictionary对象,创建一个内存中的“检测器”。

实现原理

我们将客户ID、问题描述和时间戳组合成一个唯一字符串键,存入字典。遍历每条新工单时,生成其对应的键,并检查该键是否已在字典中存在。若存在,则标记为重复;若不存在,则将其加入字典,并记录时间,用于后续时间窗口的判断。

关键代码与讲解

Sub MarkDuplicateTickets()    Dim ws As Worksheet    Dim lastRow As Long, i As Long    Dim ticketDict As Object ' 用于创建字典    Dim key As String    Dim currentTime As Date, storedTime As Date    Const TIME_WINDOW As Double = 5 / 24 / 60 ' 将5分钟转换为Excel时间序列值(天)    Set ws = ThisWorkbook.Sheets("工单数据") ' 修改为你的工作表名    Set ticketDict = CreateObject("Scripting.Dictionary")    ' 假设:A列=工单ID,B列=客户ID,C列=问题描述,D列=提交时间,E列=标记列    lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row    ' 按时间顺序排序后处理很重要,确保先到先得    ws.Range("A2:E" & lastRow).Sort Key1:=ws.Range("D2"), Order1:=xlAscending, Header:=xlYes    For i = 2 To lastRow        key = ws.Cells(i, "B").Value & "|" & UCase(Trim(ws.Cells(i, "C").Value)) ' 组合键:客户ID+标准化后的问题        currentTime = ws.Cells(i, "D").Value        If ticketDict.Exists(key) Then            ' 如果键存在,检查时间差            storedTime = ticketDict(key)            If Abs(currentTime - storedTime) <= TIME_WINDOW Then                ' 5分钟内,标记为重复                ws.Cells(i, "E").Value = "重复工单"            Else                ' 超过5分钟,视为新工单,更新时间                ticketDict(key) = currentTime                ws.Cells(i, "E").Value = ""            End If        Else            ' 键不存在,作为首条记录存入字典            ticketDict.Add key, currentTime            ws.Cells(i, "E").Value = ""        End If    Next i    MsgBox "重复工单标记完成!"End Sub

优势与局限

  • 优势:深度集成于Excel,无需额外环境;处理单次万级以下数据速度较快;逻辑直观,易于调试。

  • 局限:数据量极大时(如十万行以上)性能下降明显;对时间窗口的复杂逻辑(如滑动窗口)支持较弱。


三、 Python实现:借助pandas进行向量化高效运算

对于更大规模的数据、更复杂的分析需求,或需要集成到自动化流程中的场景,Python是更优选择。pandas库提供了高度优化的数据结构和方法,使多列去重变得异常简洁。

实现原理

我们主要利用pandas.DataFrame的 duplicated方法。通过设置 subset参数指定去重的列,keep参数决定保留哪一条记录。结合时间差计算,我们可以高效实现“5分钟内”的条件判断。

关键代码与讲解

import pandas as pdfrom datetime import timedeltadef mark_duplicate_tickets(df, customer_id_col='客户ID', problem_col='问题描述', time_col='提交时间', window_minutes=5):    """    标记重复工单的核心函数。    参数:    df: 包含工单数据的pandas DataFrame。    customer_id_col: 客户ID的列名。    problem_col: 问题描述的列名。    time_col: 提交时间的列名(应为datetime类型)。    window_minutes: 判定重复的时间窗口(分钟)。    返回:    添加了‘是否重复’标记列的DataFrame。    """    # 1. 按时间排序,确保逻辑正确    df = df.sort_values(by=time_col).reset_index(drop=True)    # 2. 创建用于去重的“复合键”,并对问题描述进行简单标准化(去空格,转小写)    df['_composite_key'] = (df[customer_id_col].astype(str) + '_' +                              df[problem_col].str.strip().str.lower())    # 3. 核心步骤:识别重复的复合键    # `keep='first'` 会将第一次出现的行标记为False(非重复),后续重复的标记为True    duplicate_key_mask = df.duplicated(subset=['_composite_key'], keep='first')    # 4. 对初步识别为重复的行,进一步检查时间窗口    def check_time_window(group):        # group是同一个_composite_key的所有行,已按时间排序        if len(group) > 1:            # 计算与组内第一条记录的时间差            time_deltas = group[time_col] - group[time_col].iloc[0]            # 标记出与第一条记录在window_minutes内的行(第一条本身除外)            is_dup_in_window = (time_deltas <= timedelta(minutes=window_minutes)) & (time_deltas > timedelta(seconds=0))            return is_dup_in_window        else:            return pd.Series(False, index=group.index)    # 对每个复合键分组应用时间窗口检查    time_window_dup_mask = df.groupby('_composite_key', group_keys=False).apply(check_time_window)    # 5. 合并两个条件:既是重复键,又在时间窗口内    final_duplicate_mask = duplicate_key_mask & time_window_dup_mask    # 6. 创建标记列    df['重复工单标记'] = '否'    df.loc[final_duplicate_mask, '重复工单标记'] = '是'    # 7. 清理临时列    df.drop(columns=['_composite_key'], inplace=True)    return df# --- 模拟数据使用示例 ---# 创建示例数据data = {    '工单ID': [10011002100310041005],    '客户ID': ['C001''C001''C002''C001''C002'],    '问题描述': ['网络无法连接''网络无法连接''密码重置''网络无法连接''密码重置'],    '提交时间': pd.to_datetime(['2023-10-27 09:00''2023-10-27 09:03'                                 '2023-10-27 09:10''2023-10-27 09:20''2023-10-27 09:11'])}df = pd.DataFrame(data)# 应用函数result_df = mark_duplicate_tickets(df, window_minutes=5)print(result_df[['工单ID''客户ID''问题描述''提交时间''重复工单标记']])

输出结果解析

客户 C001在09:00和09:03提交了相同问题,间隔3分钟<5分钟,因此1002被标记为“是”。

客户 C001在09:20再次提交,与09:00的记录已超时,不标记为重复。

客户 C002在09:10和09:11提交了相同问题,间隔1分钟<5分钟,因此1005被标记为“是”。

优势与局限

  • 优势

    • 代码简洁duplicated方法一行代码即可完成基于多列的基础去重标识。

    • 性能卓越pandas的底层是C/C++/Cython,进行向量化运算,处理海量数据(百万行)速度极快。

    • 灵活性高:轻松整合更复杂的时间窗口逻辑、模糊匹配(需结合其他库如fuzzywuzzy)等高级需求。

    • 生态丰富:结果可轻松导出、可视化或集成到Web服务、自动化脚本中。

  • 局限:需要Python环境;对于不熟悉编程的业务分析人员有学习门槛。


四、 VBA vs Python:如何选择?

特性

VBA (Excel)

Python (pandas)

学习曲线

较平缓,适合精通Excel的用户

较陡峭,需掌握Python及pandas基础

处理速度

中小数据量快,大数据量慢

中小数据量极快,大数据量依然高效

可扩展性

局限于Office生态,扩展性弱

极强,可连接数据库、API,融入数据管道

维护成本

代码与特定文件绑定,版本管理复杂

代码独立,易于版本控制和团队协作

适用场景

一次性、临时的数据分析;团队环境仅限Excel

重复性、自动化任务;大数据处理;复杂分析

简易决策指南

  • 如果数据量小(<1万行),处理频率低,且团队完全依赖Excel,选择 VBA

  • 如果数据量大,处理是常规或自动化任务,或未来需要更复杂的分析,投资学习 Python 是回报更高的选择。


五、 举一反三:扩展应用场景

本文介绍的多列条件去重思想,可广泛应用:

  1. 日志分析:识别同一IP在短时间内的大量相同错误请求。

  2. 订单清洗:防止同一用户因点击多次生成的重复订单。

  3. 问卷调查:根据IP、设备指纹和提交时间,筛选有效问卷,剔除刷单数据。

  4. 风险监控:标记同一账户在特定时间内的多笔相似交易。

关键在于准确把握业务规则,并将其转化为“关键列的组合”


知识检验:5道选择题

  1. 在本文的VBA实现中,用于临时存储和检查唯一性的是什么对象?

    A) Collection

    B) Scripting.Dictionary

    C) Array

    D) Worksheet

  2. 使用pandas的duplicated(subset=['客户ID', '问题摘要'], keep='first')方法时,对于重复行,以下描述正确的是?

    A) 所有重复行都会被标记为True。

    B) 第一次出现的行被标记为True,后续重复行标记为False。

    C) 第一次出现的行被标记为False,后续重复行标记为True。

    D) 最后出现的行被标记为False,其他重复行标记为True。

  3. 在判断“5分钟内”重复的业务规则时,除了客户ID和问题描述,最重要的第三个维度是?

    A) 工单处理员

    B) 工单紧急程度

    C) 工单提交时间

    D) 工单所属部门

  4. 相比VBA,Python(pandas)方案在处理大规模数据时的核心优势是什么?

    A) 代码语法更简单

    B) 无需编程基础

    C) 底层基于向量化运算,性能更高

    D) 结果只能保存在Excel中

  5. 如果一个客户在09:00提交工单A,09:04提交工单B(内容不同),09:07再次提交工单A。根据本文5分钟窗口规则,会如何标记?

    A) 只有09:07的工单被标记为重复。

    B) 09:04和09:07的工单都被标记为重复。

    C) 09:07的工单不会被标记为重复,因为它与09:04的工单内容不同。

    D) 09:07的工单不会被标记为重复,因为它与09:00的工单间隔超过5分钟。


答案:1. B; 2. C; 3. C; 4. C; 5. A (解析:09:07的工单A与09:00的工单A内容相同,且间隔7分钟>5分钟,故不标记为重复。09:04的工单B内容不同,不参与重复判定。)

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-03-27 10:06:05 HTTP/2.0 GET : https://f.mffb.com.cn/a/481979.html
  2. 运行时间 : 0.284900s [ 吞吐率:3.51req/s ] 内存消耗:4,596.55kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=e09566dd445de46a697a88352b8a38e7
  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.001403s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001986s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000862s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.003091s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001667s ]
  6. SELECT * FROM `set` [ RunTime:0.000571s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001537s ]
  8. SELECT * FROM `article` WHERE `id` = 481979 LIMIT 1 [ RunTime:0.005624s ]
  9. UPDATE `article` SET `lasttime` = 1774577166 WHERE `id` = 481979 [ RunTime:0.022932s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.020583s ]
  11. SELECT * FROM `article` WHERE `id` < 481979 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.005140s ]
  12. SELECT * FROM `article` WHERE `id` > 481979 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.010215s ]
  13. SELECT * FROM `article` WHERE `id` < 481979 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.007007s ]
  14. SELECT * FROM `article` WHERE `id` < 481979 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.003568s ]
  15. SELECT * FROM `article` WHERE `id` < 481979 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.004400s ]
0.291224s