跳到内容
当前位置:首页>课件>MEM.课件 || 王宇航:玩转训练数据

MEM.课件 || 王宇航:玩转训练数据

  • 2026-09-20 02:35:04
MEM.课件 || 王宇航:玩转训练数据

Cyclience科学训练讲座分享:

2024年3月30日星期六晚上,MEM第五轮第9期系列讲座、MEM第1期马拉松运动主题交流会如期举办。受MEM园地邀请,运动健康科普作者王宇航,做了题为《玩转训练数据》的报告。以下为整理的讲座文字内容与PPT。在自行车科学训练中,离不开数据的支撑。现在越来越多人使用功率计、心率带、码表进行训练——数据是如何帮助我们增进对运动的理解的?我们又可以如何灵活应用这些训练数据?

希望分享的这一讲座能帮助大家对每日训练数据进行深入的探究。

我是一名自行车教练,我教育背景是毕业于中国科学院大学物理系,并且在大学期间通过Self - coaching自我教练的方式成为一名专业自行车运动员,在全国范围内自行车赛事中多次获得冠军,并且曾经以业余车手的身份参加了全国锦标赛等职业赛事。在2023年,我前往位于瑞士的国际自盟UCI总部培训,取得了最高级别的自行车教练认证。

过去几年,我主要在探索的是如何通过数据来驱动耐力运动员的训练。无论是自行车运动员还是跑者,训练比赛时都有很多记录数据的设备:功率计、心率带、踏频计、步频计,甚至动态监测肌氧、血糖、血乳酸的设备。

透过这些数据的分析,可以让教练即使在远程(我们管这个叫remote based coaching)也能了解、分析运动员的状态,从而更好地指导、优化运动员训练

今天我和大家分享一下我在指导高水平运动员或者是业余骑行爱好者的过程中,玩转训练数据的一些经验。

这个讲座我将从下面4部分展开:

首先是训练以及运动数据从古至今的历史,以及未来发展趋势;

以及数据作为对于运动科研以及训练应用都非常重要的资源,是如何帮助我们教练训练模型,让我们在训练实践中更好地理解训练背后的运动科学本质;

最后两部分,我们将看到训练数据在耐力运动方面发挥的重大作用,以及作为教练如何灵活运用数据、进行数据挖掘(data mining)从而得到一些非常有价值的信息。

从数据的角度来说,现代运动领域的数据相比之前精度、灵敏度有很大提升。

古时候,人们判断一个人跑得快不快是以天为计时单位的,或者让霸王举个鼎,类似这样定性的判断;现代电子计时设备,终点高速摄像机已经可以分辨0.001s的差距了。

测量精度的提升当然是数据科学进步的体现,但不仅限于此。

我对运动训练数据的定义是:一部分训练数据属于时空参数的测量,运动的距离、速度时间等;另一部分是围绕人体以及运动器械相关的数据,包括人体内外环境状态、人体与外界的物质能量交换(比如对外输出的功率、心率、乳酸值、摄氧量都属于这个范畴)。

现代运动数据获取的范畴是范畴广的,把这些数据整合起来,就能建立对运动比较全面的理解。

从人体运动负荷的角度来区分,练数据测量的分为内部负荷和外部负荷。还可以分成生理负荷以及力学负荷。这属于对数据性质进行的分类。

运用数据指导训练的时候,不同性质数据之间的关联性是值得我们花时间去思考的。举两个例子:

第一个例子,心率、耗氧量属于内部负荷,并且可以通过这两个数据来计算运动时人体能量代谢消耗;人体对外的功率输出属于外部负荷。这两者的联系是:在体内能量消耗一定的情况下,对外功率输出,就说明运动经济性越高,这就是耐力运动跑步、骑车训练时非常重视去提高的一个方面。

第二个例子,疲劳可能来自于神经或者乳酸堆积等内部生理负荷,但是会影响到动作模式发力,肌肉收缩这些生物力学方面。比如在自行车运动方面的一个研究就是,运动员在疲劳情况下的力-速曲线会有变化,那么根据这一点就可以去优化踩踏发力的踏频。

我们现在已经可以在实验室测量很多维度的数据,并且应用这些数据无论是在体育科研上还是运动训练上取得非常好的进展。运动数据未来发展的趋势,一定是从实验室这样一个有限的环境,走向真实的赛场。这主要得益于可穿戴设备的发展,以及很多测量设备的小型化。

这一发展趋势带来的好处是,我们能够通过运动去理解真实赛场上发生了什么——因为运动员在实验室测试的状态和真实比赛状态肯定是有很大差异的。而且测试是离散的,不可能每天让运动员都来实验室测试;但是通过便携的设备,就可以连续地监控、记录运动员每天的训练,以及获取训练之外的一些数据。

当然,未来教练要面对的数据也是指数增长了——这就给我们提出了新的挑战:如何用好这些数据?

其实无论是从运动科研的角度还是教练指导运动训练的角度,我们关心的是同一个问题:运动训练的时候,身体内部发生了什么?

数据其实可以帮我们理解这个问题。运动的生理学是一个层次化的复杂网络,自下而上从分子细胞层面、到组织器官、然后再到宏观的运动表现。科研关心的可能是从运动表现数据出发、设计实验去探索底层的一些机制;那么作为教练,我也会去关心一些前沿的运动科学研究,一些分子细胞层面的内容,或者运动引发的身体内部反应。

教练需要理解吸收一些前沿科学的内容,建立较为抽象、比较简化的训练模型。通过模型化的思想,将复杂的运动科学理论转化为可实操的训练计划。

有一类教练,他们非常擅长通过数据得到有效的训练模型,他们属于科研型教练——本身既是教练、也是运动科研人员。比如说,100年来最年轻环法冠军波加查的教练Inigo San Millan,是研究乳酸代谢以及线粒体功能方面非常权威的专家。

在这几年耐力运动训练领域,所谓二区训练,也就是在第一乳酸阈值LT1以下的低强度有氧训练受到很多教练和运动员的重视。可能20年前,更多的耐力运动员可能在LT2的强度区间训练更多。

这种训练思路转变背后是需要科学研究结论做支撑的,这里的结论就是LT1之前的有氧训练能够更有效提升线粒体功能。一方面线粒体能够提高有氧供能能力,提高运动经济性;另一方面,高强度运动产生的乳酸也是由线粒体来清除的。

刚刚提到的San Millan教练,他在研究线粒体功能的过程中积累了大量运动员乳酸测试的数据,所以基于这些数据他可以总结出非常有效的训练模型、以及通过运动员乳酸测试的数据来判断他们在自行车这个项目上有没有潜力。环法冠军波加查,就是在20岁还没成名的时候,去San Millan实验室做了乳酸的阶梯测试,被发现有冠军潜力。其实高水平的教练一定是有自己的数据库,通过数据库他们是会建立自己的所谓“冠军模型”。从数据到模型,个人认为是教练比较重要的方法论。

San Millan教练他的训练模型其实就是耐力运动训练里的“极化模型”:在基础期做大量的低强度有氧训练,可能比例占总训练量的70%~80%;赛前进行高强度的无氧训练。这种方式对自行车、马拉松还有铁人三项训练是比较有效的。

有些时候,数据并不一定来自于实验室,非得用很先进、昂贵的设备去测一些数值然后得出一些结果。很简单的数据整理、作图可视化就可以得出非常有影响力的发现:100多年前,运动生理领域非常重量级的先行者 A.V Hill,他把全力运动的平均速度和运动持续时间作图之后发现速度随着运动时间的衰减大致成反比例函数。也就是速度的衰减会趋近于一个临界值,无论是赛马、跑步、游泳还是自行车都非常一致地存在这个现象,所以根据这些数据的作图,他提出了临界速度(Critical speed)这个概念。

临界速度的概念对训练和科研的影响都是非常大的,在科研上氧债、乳酸阈值、内环境稳态的研究都和临界速度相关的;训练方面,现在临界速度、临界功率模型也是自行车、跑步训练中经常用来评价运动员有氧、无氧能力的平衡

我作为自行车教练,平时主要关注的是功率、心率相关的数据,因为功率计和心率带在运动员当中已经非常普及了。我监控到的功率心率数据,可以去判断运动员训练的强度区间。

制定训练计划的时候,我用的就是之前提到的极化训练模型和临界功率模型。

左边这幅图记录了运动员在一个训练周期每天和训练负荷相关的一些数据,蓝色散点是训练强度指数。这是一个比较可视化的图像,我可以查看运动员在执行的训练是不是符合极化训练模型强度的分布。

长期训练强度的规划,比如一年有多少训练负荷需要在有氧区间、多少在无氧区间,可以参考极化训练模型。运动员如果按要求执行下来,有氧能力、阈值功率会有很大提升。

右边这幅图,是我用临界功率模型安排的一次间歇训练。我会关注运动员在一堂训练课中,在临界功率以上做了多少功。把这个做功的数值周与周之间对比,可以了解他们在专项备赛期间无氧能力发展情况。

实际安排训练的时候,把极化模型、临界功率模型,有氧能力、无氧能力融合在一起考虑。把真实的训练数据放到这些训练模型里面,可以发挥很大的威力,可以进行:长期训练规划、赛前状态管理、比赛结果预测、战术制定等。

这是一份年度训练计划表,运动员按照计划执行之后的长期训练效果、急性疲劳程度、当前身体状态如何?是可以通过数据可视化的方式呈现出来的

这个图大家如果用过像Training PeaksStrava这些训练平台应该非常熟悉:灰色曲线是过去4周的平均训练负荷,代表长期训练负荷;紫色曲线是过去一周平均负荷,反映的是急性训练压力;黄色曲线是长期负荷和急性负荷的差异,被解释为训练压力平衡

作为教练,要去发现这些数据和曲线背后的含义:你的运动员适应的长期负荷和能承受的短期负荷是多少?赛前如何管理训练压力平衡会带来比较好的状态?

比如理想的基础期训练应该像这张图一样:急性负荷波动式上升并到后期维持稳定,这是符合超量恢复的训练原则的;长期负荷稳定的均匀上升,这就代表运动员有氧能力逐步的建立;最后临近比赛阶段,通过减量训练,让训练压力平衡指数进入比较理想的区间。

像这样的曲线图,结合运动员对训练的反馈,教练可以动态调整训练计划,并且让运动员在赛前建立比较好的自我预期。

后面这张图,就是状态管理不到位的一个体现,运动员的长期进步和赛场表现都会差很多。

前面讲的是数据驱动的训练,作为教练如何应用数据做一些训练上的决策。

在比赛的时候,数据还是制定战术的重要依据——可能比赛战术大家了解比较多的是球类项目,其实耐力运动想要在赛场上取得成功也需要正确的战术。

这里展示的研究利用临界功率模型去预测2017年伦敦田径世锦赛男子5000米、10000米最后的名次:赛前通过统计参赛选手赛季最好成绩,建立他们每个人的临界速度模型。有了这个模型之后,根据比赛每一圈的配速就可以估算、预测他们最后完赛时间。

可以看到,当比赛进行到2400米之后,根据模型预测的14名的名次和最后实际排名就完全一致了。

这是数据在比赛中发挥的非常大的威力,在自行车运动领域,不仅考虑配速,还要把地形、天气、空气动力学纳入比赛战术制定的模型中,甚至用博弈论的分析手段来制定争夺冠军的战术。对于一个想要争夺冠军的团队来说,数据采集得越全面、模型越细化,最后获胜概率就越大。

顶级的运动队和统计学家、数据分析师合作已经有非常多成功的案例了。

最后,跟大家分享一下作为教练,有些时候应该灵活发明一些方法对数据进行灵活的解读。或者用数据科学的术语来说,就是要做一些数据挖掘的工作,借助一些统计分析的方法,从大量数据中捕捉一些细微的特征。有些时候这些细节的蛛丝马迹,对优化训练是有非常大帮助的。

从事运动科研的科学家,和教练都非常重视数据。以我作为教练的视角和工作逻辑来看,二者侧重还是有不同的。这里是运动科学和运动训练在数据上的对比。

科学上强调数据的准确性,用的设备可能在采样率和精度上,包括测量的过程都是有严格的标准和流程的;那么在训练上,有些时候因为设备或者使用场景的限制,比如运动员用的心率带、智能手表、心率臂带测的ECG信号、ppg信号肯定是不如实验室心电图那么准确,装在自行车上的功率计在采样率、误差方面也是比实验室用的测功仪差不少。

作为训练使用,我们更关心数据的一致性,也就是我们会仔细选择产品,产品的稳定性必须要好。比如测量数据的产品需要在不同天气、不同户外场景都能提供相对准确的参考,这样才能对运动员进行有效的长期监控。

做科研在采集数据的时候试验方法是非常严谨的,比如通过控制变量或者随机双盲试验。但是这两点在训练过程中是非常难做到的,因为我们面对的对象是一个又一个的运动员个体,所有人的训练方案都是个性化的,我们所能做的只能把一名运动员训练历史数据和当前数据进行对比。所以这时候,教练对数据的应用就要非常灵活,大胆创新、小心验证。

同样,在科研方面,往往需要很大的样本规模以及统计的显著性分析来支撑起一个有效结论。教练如何判断什么样的训练方案对运动员是有效的呢?我们更多时候依赖的是自己的判断方法论,自己对数据的解读和诠释。

但万幸的是,得益于科学的严谨性,对于训练来说,教练要做的其实是对运动科学已有结论的灵活应用。数据对于科学来说是探索发现,在训练的时候就是一种非常好用的工具。

我现在所做的教练工作,是在数据的帮助下进行的远程工作。

得益于数据,大部分职业自行车运动员都是自行聘请教练进行远程指导的,因为自行车运动员经常在各地参加比赛,教练是不可能随时都跟在身边的。

远程教练,也就是remote based coaching的模式,也是促进了跨国、跨文化的交流合作。也让很多欠发达地区的运动员有机会接触到专业、科学的训练。我相信这不仅仅是自行车这一个项目教练工作的特点,可能很多体育项目的教练都在朝着远程工作的模式转变。

远程工作的特点,教练其实不仅仅是在跟运动员打交道,还在不停地通过各种数据打交道,以便于准确了解运动员的训练、恢复还有生活情况。

下面是我自己做的一些数据驱动自行车运动员训练的案例。

这是对运动员参加特定类型比赛(比如自行车绕圈赛)做的功率暴露变化分析。

通过分析典型的绕圈赛获胜者功率在不同区间以及时间窗口的分布,然后确定备赛阶段的间歇训练应该采用什么样的强度,持续时间以及恢复时间。

这里我是采用了每组10次,100%~110%VO2max强度30秒休息15秒,组间休息3分钟的训练。因为这是最贴近基于暴露变化分析得到的竞赛需求的。

我还研究过国内许多自行车运动员典型的年度状态曲线,发现每年下半年的时候很多人会因为过量参加比赛导致状态比较低迷。如果能把赛季推迟3个月左右,放弃前面的一些比赛,就可以让自己状态高峰期碰上对手的状态低迷期。打的就是一个时间差,提高自己赛场获胜率。

我在2018年就是采用了这个策略,在9月、10月的比赛中,战胜了许多曾经拿到国家冠军、甚至亚洲冠军的车手。

前面提到的这两个例子,都是我在比赛过程中亲自尝试过的一些应用数据上的策略。我觉得我在赛场上,用比较少的训练时间,就能取得很多人多年训练才拿到的成绩,和我对数据的重视是分不开的。

我也会对运动员的数据做一些比较灵活的分析。比如安排他们做阶梯测试Ramp test的时候,最原始的数据一般就是左上角的这个功率曲线和心率曲线。

功率和心率信号,是大家平时都比较方便能测的,一般人是没有机会接触像乳酸、摄氧量之类的测试的。为了得到更多信息,对心电信号进行傅里叶变换后,其实是有一定的算法去推算呼吸频率的——这是来自First Beat的一个开源算法。我们可以自己通过原始数据计算呼吸频率,有些智能手表也提供了这个功能。

所以,这样就可以把测试中的呼吸频率也用可视化的方式呈现出来。可以让运动员了解他们随着功率增加呼吸的改变。像右上角的图片这样,在阶梯测试过程中呼吸明显有4个阶段——其中第二、第三阶段的交叉的位置和我们所谓第一通气阈值VT1是非常接近的。

所以这也给我提供了安排运动员有氧训练的一个参照,根据这个特点估计他们VT1的心率和功率。当然,具体这个估计值和实际VT1究竟差多少,对于大部分人其实是无从验证的,这只能是在仪器比较有限情况下的一个替代方案。

下面这里展示的是通过数据组合来挖掘一些有用的信息

紫色是功率曲线,黄色是踏频曲线。每组训练的功率基本是没有衰减的,但是可以看到踏频出现了衰减的趋势——这可能意味着经济性的下降、以及运动员不得不付出更大力量踩踏来维持目标功率输出。

捕捉到这个迹象之后,就可以在训练时候做一些相应的调整,来增强他们高踏频的耐力。

另一个非常重要的日常监测指标是心率变异性HRV,它和每日训练-恢复平衡、身体健康程度、训练适应息息相关。

上图是我近一个月的HRV,在长期监控以及训练下,HRV是比较敏感且准确的:当训练负荷逐渐加大时,HRV心率变异性(主要是RMSSD)会逐渐下降;如果一段时期HRV数值都显著偏低(连续3天以上,图中黄色部分),则训练负荷需要降低;当HRV重新开始上升,则标志着身体适应了当前的训练,为训练适应的积极信号。

心率变异性相关文章:MEM.科普 || 王宇航:如何用心率变异性(HRV)指导运动训练

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