当前位置:首页>Excel>手把手教学:用Excel和SQL画出你的第一条Vintage风险曲线

手把手教学:用Excel和SQL画出你的第一条Vintage风险曲线

  • 2026-03-25 16:16:31
手把手教学:用Excel和SQL画出你的第一条Vintage风险曲线

当别人还在用模糊的“感觉”判断资产质量时,你已经能用一条精准的曲线预测未来6个月的坏账走势——这就是专业风控的硬核能力。

01 数据准备:你需要这5个核心字段

Vintage分析始于正确的数据结构。以下是每个字段的详细说明:

必选字段(缺一不可)

  1. 1. 放款日期:精确到日,格式统一(建议YYYY-MM-DD)
    • • 用途:确定客户所属的Vintage批次
    • • 注意:同一客户多笔贷款应视为不同记录
  2. 2. 客户ID:唯一标识符
    • • 用途:追踪单个客户在整个生命周期的表现
    • • 注意:确保ID系统稳定,避免重复或变更
  3. 3. 逾期状态:时点逾期状态
    • • 建议采用标准定义:C-M1-M2-M3-M4+(C为正常)
    • • 统计时点:通常为月末最后一天的状态
  4. 4. 逾期天数:当前逾期持续天数
    • • 用途:计算M1+、M3+等指标
    • • 注意:与逾期状态保持逻辑一致
  5. 5. 还款记录:每期还款情况
    • • 最小字段:应还款日、实还款日、应还金额、实还金额
    • • 用途:验证逾期状态,计算回收率

扩展字段(提升分析深度)

  • • 产品类型、渠道来源、客户评分
  • • 借款金额、期限、利率
  • • 地理位置、职业信息(如可用)

实战技巧:建立一个“数据需求清单”,每次提取数据前核对。某机构曾因漏提“提前结清标志”,导致Vintage曲线在后期异常下降——不是风险改善,而是高风险客户提前结清造成的统计假象。


02 数据清洗:避开这三个“天坑”

原始数据从不完美,清洗质量决定分析结果的可信度。

天坑一:缺失值处理

问题场景:放款日期缺失、逾期状态为空专业处理

  1. 1. 放款日期缺失 → 直接剔除,无法确定批次
  2. 2. 逾期状态为空 → 根据还款记录反向推导,若推导失败则标记为“数据异常”
  3. 3. 关键字段缺失率>5% → 暂停分析,先解决数据源问题

天坑二:异常值识别

常见异常

  • • 放款日期在未来(系统错误)
  • • 逾期天数>1000(通常为系统默认值)
  • • 还款金额为负数(冲正交易)

处理流程

-- SQL示例:识别放款日期异常SELECT loan_id, loan_date FROM loan_table WHERE loan_date > GETDATE() -- 未来日期OR loan_date <'2020-01-01'-- 不合理的历史日期

天坑三:特殊客户处理规则

这是Vintage分析最易出错的部分:

提前结清客户

  • • 错误做法:从结清当月开始从分母中剔除
  • • 正确做法:在观察期内始终保留在分母中
  • • 理由:评估的是放款时的风险判断质量,不是持有期管理能力

核销客户

  • • 核销后不再计入分子(逾期客户数)
  • • 但观察期内始终保留在分母中
  • • 单独标记,可计算核销率曲线

债务重组客户

  • • 重组后视为新贷款,重新开始账龄计数
  • • 原贷款记录保留至观察期结束

清洗检查清单

  • • 各批次客户数在MOB0时是否合理?
  • • 相邻MOB客户数下降幅度是否在预期内(通常<5%)?
  • • 逾期率有无跳变(如从0%直接到10%)?
  • • 核销客户是否被正确处理?

03 手动计算(Excel):从零到一理解本质

我们以2024年1月批次为例,逐步计算:

步骤1:数据透视表构建批次-账龄矩阵

  1. 1. 添加辅助列“批次”:
    =TEXT([@放款日期],"YYYY-MM")
  2. 2. 添加辅助列“账龄(MOB)”:
    =DATEDIF([@放款日期],统计月末,"M")
    注:MOB0为放款当月,MOB1为放款后第一个完整月
  3. 3. 创建数据透视表:
    • • 行:批次 + 账龄
    • • 列:逾期状态(分组为C/M1/M2/M3+)
    • • 值:客户ID计数(去重)

步骤2:计算单账龄逾期率

在透视表右侧添加计算列:

MOB0总客户数 = MOB0时该批次所有状态客户数之和MOB1 M1+逾期率 = MOB1时M1及以上客户数 / MOB0总客户数MOB2 M1+逾期率 = MOB2时M1及以上客户数 / MOB0总客户数...

步骤3:计算累计逾期率(Vintage核心指标)

MOB1累计M3+逾期率 = MOB1时M3+客户数 / MOB0总客户数MOB2累计M3+逾期率 = (MOB1时M3+客户数 + MOB2新增M3+客户数) / MOB0总客户数

关键:累计逾期率的分子是“曾经达到过该逾期状态的客户数”,即使后续还款或核销

步骤4:绘制Vintage曲线

  1. 1. 选择数据:批次为系列,账龄为X轴,累计逾期率为Y轴
  2. 2. 插入折线图
  3. 3. 专业美化技巧:
    • • 不同批次用不同颜色/线型
    • • 添加数据标签(关键MOB点)
    • • 添加参考线(行业基准、公司目标)
    • • 图表标题明确:如“2024年各批次累计M3+逾期率Vintage曲线”

Excel模板技巧:创建动态名称和下拉菜单,实现“选择批次→自动更新曲线”的交互效果。


04 自动化计算(SQL):批量处理的工业级方案

对于百万级以上的数据,Excel已力不从心。以下是生产环境SQL脚本的核心逻辑:

基础Vintage统计脚本

WITH-- 步骤1:基础数据准备loan_base AS (SELECT        customer_id,        loan_id,        loan_date,        DATE_FORMAT(loan_date, '%Y-%m'as vintage_month,        loan_amount,        product_typeFROM loan_originationWHERE loan_date >='2024-01-01'AND loan_date <='2024-06-30'AND status ='放款成功'),-- 步骤2:生成账龄日历calendar AS (SELECTDISTINCT        vintage_month,-- 计算每个vintage到各月末的账龄        PERIOD_DIFF(report_month, vintage_month) as mobFROM (SELECTDISTINCT DATE_FORMAT(loan_date, '%Y-%m'as vintage_monthFROM loan_base    ) v,    (SELECTDISTINCT DATE_FORMAT(report_date, '%Y-%m'as report_monthFROM performance_snapshotWHERE report_date >='2024-01-01'    ) rWHERE PERIOD_DIFF(report_month, vintage_month) >=0),-- 步骤3:账龄表现快照performance AS (SELECT        lb.vintage_month,        cal.mob,        lb.customer_id,        lb.loan_id,        ps.dpd, -- 逾期天数CASEWHEN ps.dpd >=90THEN1ELSE0ENDas is_m3_plusFROM loan_base lbJOIN calendar cal ON lb.vintage_month = cal.vintage_monthLEFTJOIN performance_snapshot ps ON lb.loan_id = ps.loan_id AND ps.report_date = DATE_FORMAT(            DATE_ADD(STR_TO_DATE(CONCAT(lb.vintage_month,'-01'), '%Y-%m-%d'), INTERVAL cal.mob MONTH),'%Y-%m-01'        )),-- 步骤4:Vintage指标计算vintage_stats AS (SELECT        vintage_month,        mob,COUNT(DISTINCT customer_id) as vintage_cohort_size,SUM(is_m3_plus) as m3_plus_count,-- 累计M3+逾期率SUM(SUM(is_m3_plus)) OVER (PARTITIONBY vintage_month ORDERBY mob        ) as cum_m3_plus_countFROM performanceGROUPBY vintage_month, mob)-- 步骤5:最终输出SELECT    vintage_month,    mob,    vintage_cohort_size,    cum_m3_plus_count,-- 核心指标:累计M3+逾期率    ROUND(cum_m3_plus_count *100.0/FIRST_VALUE(vintage_cohort_size) OVER (PARTITIONBY vintage_month ORDERBY mob        ), 2as cum_m3_plus_rateFROM vintage_statsORDERBY vintage_month, mob;

脚本优化技巧

  1. 1. 分区键设置:按vintage_month分区,大幅提升查询性能
  2. 2. 增量计算:每日只计算新增账龄的数据,避免全量重算
  3. 3. 结果缓存:将Vintage统计结果存入专用表,供多场景调用
  4. 4. 监控告警:添加数据质量检查(如客户数骤降>10%时告警)

05 实操任务:2024年1-6月批次Vintage分析

现在,让我们完成一个完整任务:

任务描述

基于提供的脱敏数据集(模拟数据),绘制2024年1-6月各放款批次的Vintage曲线,分析:

  1. 1. 各批次风险收敛速度差异
  2. 2. 识别异常批次
  3. 3. 预测各批次终极损失率

数据集说明

  • • 文件:loan_performance_2024.csv
  • • 记录数:约50万条
  • • 时间范围:2024年1-6月放款,追踪至2024年12月
  • • 字段:loan_id, customer_id, loan_date, product_type, dpd_202401, dpd_202402, ..., dpd_202412

分步指南

步骤1:数据导入与检查

# Python示例(也可用Excel)import pandas as pddf = pd.read_csv('loan_performance_2024.csv')print(f"总记录数: {len(df)}")print(f"批次分布:")print(df['loan_date'].str[:7].value_counts().sort_index())

步骤2:计算各批次各账龄逾期率

results = []for vintage in df['loan_date'].str[:7].unique():    vintage_df = df[df['loan_date'].str[:7] == vintage]    cohort_size = len(vintage_df)for mob inrange(013):  # 观察13个月        month_col = f'dpd_{2024 + (mob//12)}{str((mob%12)+1).zfill(2)}'if month_col in df.columns:            m3_count = (vintage_df[month_col] >= 90).sum()            cum_rate = m3_count / cohort_size            results.append([vintage, mob, cohort_size, cum_rate])

步骤3:可视化呈现

import matplotlib.pyplot as pltimport seaborn as snsresult_df = pd.DataFrame(results, columns=['vintage''mob''cohort_size''cum_m3_rate'])plt.figure(figsize=(128))for vintage in result_df['vintage'].unique():    vintage_data = result_df[result_df['vintage'] == vintage]    plt.plot(vintage_data['mob'], vintage_data['cum_m3_rate']*100             marker='o', label=vintage, linewidth=2)plt.xlabel('账龄 (MOB)', fontsize=12)plt.ylabel('累计M3+逾期率 (%)', fontsize=12)plt.title('2024年1-6月批次 Vintage 曲线对比', fontsize=14, fontweight='bold')plt.grid(True, alpha=0.3)plt.legend(title='放款批次')plt.tight_layout()plt.savefig('vintage_curve_2024.png', dpi=300)plt.show()

专业分析要点

  1. 1. 曲线形状分析
    • • 陡峭上升:风险早期快速暴露
    • • 平缓上升:风险缓慢释放
    • • 平台期:风险基本收敛
  2. 2. 批次对比
    • • 1月批次:13个月累计逾期率2.1%(基准)
    • • 4月批次:9个月已达2.3%(预警)
    • • 6月批次:6个月仅0.8%(表现优异)
  3. 3. 根本原因挖掘
    • • 检查异常批次的产品结构、渠道构成
    • • 分析同期审批策略变化
    • • 考虑季节性因素影响

06 从曲线到决策:Vintage分析的闭环应用

画出曲线只是开始,真正的价值在于驱动决策:

决策点1:审批策略调整

  • • 若某批次风险显著高于历史:收紧同类客户审批
  • • 若某批次风险显著低于历史:可适度放宽,测试边界

决策点2:定价策略优化

  • • 高风险批次对应的客群 → 提高定价
  • • 低风险批次对应的客群 → 降低定价,提升竞争力

决策点3:拨备计提校准

  • • 基于Vintage曲线预测终极损失率
  • • 动态调整拨备覆盖率

决策点4:绩效考核关联

  • • 客户经理:放款批次的Vintage表现
  • • 审批人员:审批决策的长期质量
  • • 催收团队:逾期客户的回收表现

某金融机构将Vintage分析嵌入月度经营会议流程:

  1. 1. 会前:自动化生成Vintage报告
  2. 2. 会中:重点分析异常批次,制定调整方案
  3. 3. 会后:跟踪调整效果,下月会议复盘

这一流程实施后,风险识别时间平均提前了4个月,年度坏账损失降低了28%


在金融风控领域,理论与实践之间,只差一次完整的实操

看过再多理论文章,都不如亲手从原始数据画出一条完整的Vintage曲线。这条曲线不仅连接了过去与未来,更连接了数据与决策。

当你的同事还在为“感觉风险在上升”而争论不休时,你只需要调出Vintage曲线,指着4月批次在第8个月的异常上升点说:“不是感觉,是数据。问题出现在这个批次,原因可能是这个,我们应该这样做。”

这就是专业的力量——用数据说话,用曲线预测,用事实决策。

现在,打开你的Excel或SQL编辑器,开始绘制属于你的第一条Vintage曲线吧。从今天起,让风险在你的曲线中无所遁形。

更多精彩扫码获取

欢迎添加:

公众号:消费金融风控联盟,ID:xiaojinfengkong
公众号:天天学风控,ID:xuefengkong
商务合作:13716986572 
欢迎加入联盟粉丝通讯录:免费加入+免费发布信息,Vivian:13911850028回复通讯录
欢迎加入风控干货知识星球:详情可添加管理Vivian:13911850028回复知识星球

最新文章

随机文章

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