乐于分享
好东西不私藏

Excel 算留存总卡死?用 DATEDIFF 与自关联秒出留存矩阵

Excel 算留存总卡死?用 DATEDIFF 与自关联秒出留存矩阵

在日常的数据运营和产品增长分析中,“次日留存”、“三日留存”和“七日留存”是衡量一个产品是否具备持久生命力的核心生命线指标。然而,许多非技术出身的产品经理(PM)与初级数据分析师(DA)由于不会写复杂的 SQL,常常习惯性地将上百万行的登录流水导出到本地,企图在 Excel 里利用极其繁琐的嵌套 VLOOKUP 和多重 IF 函数进行穷举拼装。

结果,只要流水数据量稍微上涨,本地电脑就会瞬间卡死、风扇狂转并直接蓝屏,导致对账和汇报工作彻底延误。

实际上,在大数据处理中,Excel 根本无力承载哪怕一天的活跃流水。要实现毫秒级的大大规模新增留存矩阵渲染,最佳的极客姿势是直接在数仓层利用 DATEDIFF 日期差算子,并配合基于用户主键的“非等值左外自关联”,实现海量明细在物理层的高速配对与矩阵展开。今天我们就来看看,怎么在数仓里直接用 DATEDIFF 结合自关联把这套十字留存矩阵一步算出来,彻底告别本地卡死。

准备物料:做个 13 行的登录行为日志表

简单造 13 条用户登录的流水数据,模拟同一个用户在不同日期的反复登录状态:

DROPTABLE IF EXISTS sql_101_user_login_raw;CREATE TABLE sql_101_user_login_raw (id INT AUTO_INCREMENT PRIMARY KEY,    user_id INT,    login_date DATE,    device_id VARCHAR(50));INSERT INTO sql_101_user_login_raw (user_id, login_date, device_id) VALUES(101'2026-06-20''dev_01'),(102'2026-06-20''dev_02'),(103'2026-06-20''dev_03'),(101'2026-06-21''dev_01'),(102'2026-06-21''dev_02'),(104'2026-06-21''dev_04'),(101'2026-06-21''dev_01'),(101'2026-06-22'NULL),(102'2026-06-22''dev_02'),(103'2026-06-22''dev_03'),(105'2026-06-22''dev_05'),(101'2026-06-23''dev_01'),(101NULL'dev_01');

在上述登录流水中,存在如下脏数据与指标干扰:

  1. 第 7 行是用户 101 在 2026-06-21 日发起的完全重复的登录记录(重复数据);
  2. 第 8 行的登录记录 device_id 字段值为 NULL(属性缺失);
  3. 第 13 行的登录记录 login_date 字段值为 NULL(登录日期丢失)。

接下来,我们提供完整的去重防呆清洗与 DATEDIFF 结合自外关联的留存矩阵十字表解决方案。

清除多重计数并产出无重复日活登录底表

为了计算真实的独立用户留存,必须排除由于高频打开 App、多次点按导致的“用户单日多次登录”冗余计数。我们编写以下 DQL 过滤出干净、唯一的日活跃明细:

SELECT    l.user_id AS`用户编号`,    l.login_date AS`登录日期`FROM sql_101_user_login_raw lWHERE l.login_date ISNOTNULLGROUPBY l.user_id, l.login_date;

基于时间差与左外关联拼装完美的留存十字表

要优雅、高效率地渲染出一张包含各日期“新增人数”、“次日留存数”、“双日留存数”、“三日留存数”的对账十字表,核心的 SQL 级解决方案是将 “用户新增注册日期表(1:1)” 与 “日活跃去重明细表(1:N)” 建立基于 user_id 的自关联,并通过 DATEDIFF 算子匹配间隔。

完整的数仓级 DQL 留存十字表查询如下:

WITH t_clean_login AS (SELECT        l.user_id,        l.login_dateFROM sql_101_user_login_raw lWHERE l.login_date IS NOT NULLGROUP BY l.user_id, l.login_date),t_reg_date AS (SELECT        user_id,MIN(login_date) AS reg_dateFROM t_clean_loginGROUPBY user_id)SELECT    r.reg_date AS `新增日期`,COUNT(DISTINCT r.user_id) AS `新增用户数`,SUM(CASE WHEN DATEDIFF(c.login_date, r.reg_date) = THEN ELSE ENDAS `次日留存数`,SUM(CASE WHEN DATEDIFF(c.login_date, r.reg_date) = THEN ELSE ENDAS `双日留存数`,SUM(CASE WHEN DATEDIFF(c.login_date, r.reg_date) = THEN ELSE ENDAS `三日留存数`FROM t_reg_date rLEFT JOIN t_clean_login c ON r.user_id = c.user_idGROUP BY r.reg_date;

运行上述查询,数据库瞬间在内存中完成笛卡尔配对和汇总,秒级返回如下干净明了的留存分析十字表:

新增日期
新增用户数
次日留存数
双日留存数
三日留存数
2026-06-20
3
2
2
1
2026-06-21
1
0
0
0
2026-06-22
1
0
0
0

【数据对账逻辑原理解密】

为什么结果如此精准?我们以用户 101 进行数据行为轨迹跟踪对账:

  • 第一天新增注册101 在 2026-06-20 首次登录,被标记为该用户的新增日期。
  • 次日活跃配对:自连接将新增日期 2026-06-20 与活跃表中的多行配对:
    • 与 2026-06-21 行配对,DATEDIFF = 1次日留存数 累加 1。
    • 与 2026-06-22 行配对,DATEDIFF = 2双日留存数 累加 1。
    • 与 2026-06-23 行配对,DATEDIFF = 3三日留存数 累加 1。
  • 最终,用户 101 的活跃轨迹被拆分,按天精准计入了 2026-06-20 这批新增用户对应的后续每日留存格子中。

深度剖析一对多自关联与日期差的底层原理解析

将千万级的活跃日志和新增表合并,不仅是逻辑的巧妙结合,在 InnoDB 和分布式引擎底层更涉及精密的值计算机制。

1. DATEDIFF 算子的 Julian Day 物理级高吞吐计算

在大部分数据库底层(如 MySQL 和 ClickHouse),执行两日期相减时:

  • Julian Day 物理整型减法DATEDIFF(end, start) 算子绝不执行字符串解析。它首先将传入的日期在 CPU 中快速转换成 Julian Day(儒略日,即从公元前 4713 年开始的绝对累计天数)的物理整型值。
  • **历法跨界计算开销降为 O(1)**:日期差计算由此被降维成简单的 Julian_Day(end) - Julian_Day(start) 的纯 CPU 级整数减法。由于将复杂的历法日期转化为了连续递增的绝对天数,无论是跨越 2026-12-31 到 2027-01-01 的年度边界,还是大月的月度边界,其物理计算耗损均为 ,保证了在超大数仓环境下的运算稳定性。
  • NULL 值的隐式吸收:若 login_date 或 reg_date 混入了 NULL 虚无值,DATEDIFF 算子会自动返回 NULL,不会因为类型转换错误导致查询意外瘫痪。

2. 左外连接自关联时的基数配对变化与矩阵折叠

该 SQL 最核心的极客设计,在于将新增日期表 t_reg_date(1:1)与干净的活跃表 t_clean_login(1:N)通过 LEFT JOIN 进行用户 ID 的自联结。

  • 1:N 的基数配对与物理膨胀:连接发生前,t_reg_date 里每个用户只有一行记录(即注册日期)。然而,在执行 LEFT JOIN 后,如果用户  在注册后的第 1、2、3 天均有活跃登录,那么基于 user_id 连接的结果集中,该用户就会物理膨胀为  行记录。这在物理层实现了一次“新增与后续登录明细的笛卡尔积式精准配对”。
  • DATEDIFF 判定与 CASE WHEN 矩阵展开:膨胀后的每一行记录,都会当场在 CPU 中运行 DATEDIFF(c.login_date, r.reg_date) 计算。
    • 若相减为 1,则说明该次登录刚好发生在注册次日,CASE WHEN 捕获该匹配行并输出整数 1。
    • 若相减不为 1,则说明不匹配,输出 0。
  • SUM 聚合折叠与空集保底:最后,通过 GROUP BY r.reg_date 对结果进行重新分组聚合。SUM(...) 算子将上述基于 CASE WHEN 膨胀计算出来的零散数值重新累加折叠。同时,由于使用的是 LEFT JOIN,即使某些高冷用户注册后一生再未登录,其在 t_reg_date 的行在连接时也不会像 INNER JOIN 那样由于没有右表记录而被意外裁剪蒸发,而是通过 LEFT JOIN 的 NULL 保底,依然能稳稳地被计入 新增用户数,确保留存比率的绝对正确。

避坑要点与工程防线

  • 严禁在自关联时忘记提前去重:如果活跃流水表没有进行 GROUP BY user_id, login_date 的前置去重,同一个用户在同一天多次登录就会导致自关联时的基数配对产生“指数乘数效应”,引起留存统计指标的极度毒化。
  • 避免在 LEFT JOIN 的右侧表中直接施加 WHERE 过滤:如果将过滤条件(如 WHERE c.device_id IS NOT NULL)写在最外层 WHERE 子句中,会强行将 LEFT JOIN 隐式降级为 INNER JOIN,导致那些从未二次登录的用户注册行在物理上被强制裁剪,进而引发新增用户数偏低的“幸存者偏差”统计黑洞。
  • 海量历史留存计算应依赖物化视图与聚合增量更新:对于数十亿级日活流水的数仓环境,单次运行大范围的 DATEDIFF 自关联会带来灾难性的 CPU 和磁盘 Spill 溢写开销。业界极客标准的物理防线是:利用每天凌晨的离线任务计算出当天的干净去重登录,并通过 Merge 增量写入到固定的“日活宽表(物化视图)”中,将自关联范围压缩至最近 7 天,从物理上隔绝全表自联结的性能黑洞。

本期知识库沉淀: 留存十字表的极客精髓,在于利用 1:N 的 LEFT JOIN 自关联技术将用户新增与历史活跃流水进行物理配对膨胀,并通过 DATEDIFF 的 Julian Day 整数减法算子进行时间差精确匹配,最后用 SUM(CASE WHEN ...) 重新分组聚合折叠为紧凑的矩阵列。掌握这一基数膨胀与折叠原理,是数仓建模中最经典的物理设计之一。

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