当前位置:首页>python>《Python 从入门到精通》121|为什么程序离不开数据库

《Python 从入门到精通》121|为什么程序离不开数据库

  • 2026-08-18 23:11:10
《Python 从入门到精通》121|为什么程序离不开数据库

爬虫这一阶段结束之后,接下来你会进入一个真正更贴近实际开发的新阶段:数据库。很多人学 Python 学到这里,前面已经会变量、列表、字典、文件、JSON、网络请求,甚至还能写一点小项目,于是很自然会冒出一个问题:既然数据已经能放进列表、字典、文件里了,为什么程序还非得学数据库。这个问题不但正常,而且特别关键。因为数据库不是“又多学一个新工具”这么简单,它本质上是在解决程序如何长期、稳定、可查询、可管理地保存数据这件事。

很多初学者一开始对数据库的理解都很模糊。

有人觉得数据库就是一个更高级的 Excel。 有人觉得数据库就是一个专门存数据的大文件。 也有人觉得只有做网站、做公司项目才会用到数据库,自己写脚本用不上。

这些理解不能说完全错,但都不够到位。

这一章的任务,就是把这件事讲透:

为什么程序离不开数据库 数据库到底替程序解决了什么问题 什么时候列表、字典、文件已经不够用 为什么真实项目一旦规模稍微大一点,最后几乎都会走向数据库

一、先想一个最朴素的问题:程序里的数据放哪

程序一运行,肯定会碰到数据。

用户名单要存。 订单记录要存。 文章内容要存。 商品信息要存。 登录账号要存。 评论、日志、配置、成绩、库存,这些都要存。

问题是,这些数据到底放哪里。

你前面最先接触到的,通常是变量。

name = "张三"age = 18

再往后,是列表和字典。

users = [    {"name""张三""age"18},    {"name""李四""age"20}]

再往后,是文件。

with open("users.txt""w", encoding="utf-8"as f:    f.write("张三,18\n")    f.write("李四,20\n")

这些方式都能存数据。 而且在入门阶段,它们确实够用。

但问题在于:

它们大多只适合小规模、临时性、简单结构的数据。

一旦数据开始变多、变复杂、需要长期保存、需要频繁查询和更新,前面这些方式就会越来越吃力。

也就是说,数据库不是因为程序员喜欢复杂。 而是因为数据一多,简单办法会越来越不够用。

二、变量和列表,为什么撑不起真实项目

先说最容易理解的一点。

变量、列表、字典这些数据,默认都活在程序运行时的内存里。

程序一关,数据通常就没了。

比如:

users = [    {"name""张三""age"18},    {"name""李四""age"20}]print(users)

运行的时候当然没问题。 但程序一结束,这个 users 列表就不存在了。

这意味着什么。

如果你做的是一次性计算、临时处理,那完全没问题。 但如果你做的是用户系统、订单系统、成绩系统、留言板、记账本、库存表,这就完全不够了。

因为这些数据不是只在当前程序里用一下。 它们要被长期保存。 今天关了程序,明天还得继续读出来。 甚至多个用户、多个请求、多个功能模块都要同时操作它们。

变量和列表当然能装数据。 但它们不是为“长期持久化管理”设计的。

这就是第一层现实:

程序里的内存数据,适合临时计算。 数据库,更适合长期保存。

三、那文件不是能长期保存吗,为什么还不够

这个问题特别重要。

因为很多初学者会想:

内存数据确实会消失。 可我把数据写进文件,不就解决了吗。

比如:

写进 txt 写进 json 写进 csv

这当然比只放在内存里更进一步。 因为文件确实能长期保存。

但你很快就会发现,文件虽然能存,却不一定好用。

先举个很简单的例子。

假设你有一个 users.json 文件,里面存了 1 万个用户数据。 现在你要做这些事情:

查找手机号是 13800000001 的用户 把用户 1001 的年龄改成 21 删除一个已经注销的账号 统计来自北京的用户有多少 按注册时间从新到旧排序 只取最近 10 个用户

这些事,文件当然不是绝对不能做。 但过程会非常麻烦。

你通常得:

先把整个文件读进来 再自己遍历 再自己找 再自己改 再自己全部写回去

这在小数据量时还能忍。 但一旦数据多起来,或者操作频繁起来,就会越来越笨重。

所以文件的问题不是不能存。 而是:

它很适合“存档” 不一定适合“高效管理和查询”

而数据库,恰恰最擅长后者。

四、数据库最核心的价值,不是保存,而是管理

很多人第一次接触数据库时,最容易把重点放错。

会觉得数据库最大的作用是存数据。

其实更准确一点说:

数据库不只是存数据,它更重要的价值是管理数据。

什么叫管理。

你可以快速查。 可以按条件筛选。 可以只更新其中一条。 可以删除特定记录。 可以排序。 可以统计。 可以保证多个数据之间的关系。 可以在很多操作同时发生时,尽量维持一致性。

这一点非常关键。

如果你只是把数据塞进一个大文件,当然也算保存。 但那更像把东西堆进仓库。

数据库的感觉更像什么。

更像一个整理得非常清楚的档案系统。 每条数据放在哪里,有什么字段,怎么查,怎么改,怎么关联,怎么统计,它都有一套成熟办法。

所以数据库真正强大的地方,不是“有地方放”。 而是“放进去之后还能高效、稳定、长期地使用”。

五、为什么真实项目一旦有用户,就几乎绕不开数据库

你可以想想任何一个稍微真实一点的程序。

登录系统,要存账号密码。 电商系统,要存商品、订单、库存。 博客系统,要存文章、评论、分类。 学生系统,要存学生信息、成绩、班级。 记账系统,要存每笔收支记录。 留言板,要存留言内容、时间、作者。

这些数据都有什么共同点。

第一,它们不能丢。 第二,它们要长期存在。 第三,它们会越来越多。 第四,它们要被反复查询、修改、删除。 第五,它们往往还彼此有关联。

比如用户和订单有关。 文章和评论有关。 学生和成绩有关。

一旦数据有了这种“长期、多条、频繁变化、彼此相关”的特点,数据库几乎就成了天然选择。

所以很多真实项目里,不是程序员硬要上数据库。 而是业务一旦稍微像回事,就很难离得开数据库。

六、数据库最擅长解决哪几类问题

你可以把它先理解成,数据库特别擅长下面这些事。

第一,保存大量结构化数据。 不是只存一条两条,而是成千上万条,甚至更多。

第二,快速查找。 比如按用户名查、按手机号查、按时间查、按分类查。

第三,按条件筛选。 只找北京用户、只找已支付订单、只找分数大于 90 的学生。

第四,更新部分数据。 改一个用户年龄,不需要把整份数据全部重写。

第五,删除指定数据。 删一条订单,删一个账号,删一条评论。

第六,统计和排序。 统计总数、平均值、分组数量、按时间或分数排序。

第七,维护关系。 比如一个用户有多条订单,一篇文章有多条评论。

你会发现,这些事其实正是大多数程序最常干的事。

这也是为什么数据库不是某个少数方向才需要的高级技能。 它几乎是所有稍微正式一点的软件系统都会碰到的基础设施。

七、如果不用数据库,最先崩的通常不是保存,而是查询

这点特别值得你记住。

很多人以为数据库最大的意义是“关了程序数据还在”。 这当然没错,但这只是一部分。

真正更容易让你体会到数据库价值的,往往是查询。

比如你有 5 条用户数据时,用列表遍历找一下,几乎没感觉。

users = [    {"id"1"name""张三"},    {"id"2"name""李四"},    {"id"3"name""王五"}]for user in users:if user["id"] == 2:        print(user)

这当然能跑。

可如果你有 10 万条数据、100 万条数据,还全靠自己这样遍历呢。

不仅写起来累。 效率也会越来越差。 而且筛选条件一复杂,代码会迅速变得很重。

数据库擅长的一个特别核心的事情,就是:

你不需要自己手写大量遍历逻辑。 你只要把查询条件说清楚,数据库就会按它的方式帮你找。

后面你学 SQL 时,这种感觉会特别明显。

所以很多时候,程序离不开数据库,不是因为不会存。 而是因为不会高效查,项目根本跑不顺。

八、更新数据这件事,也能让你立刻感受到数据库的重要性

再举个更现实的例子。

假设你有一个用户列表存在 JSON 文件里。 现在用户 1001 改了手机号。

如果用文件方式,你通常得:

读整个文件 把所有用户都读进内存 找到这个用户 改掉手机号 再把整份文件全部写回去

哪怕你只是改一个值,也可能要把整份数据重新处理一遍。

而数据库的思路是什么。

你只改那一条。

这听起来好像只是方便一点。 其实背后差别很大。

因为真实系统里,数据修改特别频繁。

用户改昵称 订单改状态 库存减数量 评论改内容 成绩改分数

这些操作,几乎都是日常。

如果每次都得“整份读入、整份改动、整份写回”,那不仅麻烦,还很容易出问题。 数据库存在的意义之一,就是把这类操作变得更自然、更细粒度。

九、删除数据这件事,用文件做也会越来越别扭

删除也是一样。

假设你要删除一条留言、一条评论、一笔订单。 如果你用纯文件思路,常见做法通常是:

先读出来 过滤掉这一条 再把剩下的内容全部写回去

这当然不是完全不能做。 但你应该已经开始感觉到了:

这种方式其实很“笨”。

它不太像是在操作一条记录。 更像是在反复搬整屋子的东西,只为了拿掉其中一个小盒子。

而数据库的记录级操作,更接近你真正想做的事情:

我要删的就是这一条。 不是把全体都搬一遍。

所以当数据量逐渐变大时,数据库带来的体验差异会特别明显。

十、数据库为什么特别适合“多条记录”这种世界

因为数据库最天然的使用场景,就是“很多条结构相似的数据”。

比如:

很多个用户 很多条订单 很多篇文章 很多条评论 很多笔账单

这些数据有什么共同点。

字段基本一致。 每一条都像一条“记录”。 记录和记录之间又可能有关系。

这时候,数据库的组织方式就特别顺。

比如一张用户表,可能每条记录都有:

id name phone email create_time

一张订单表,可能每条记录都有:

id user_id amount status create_time

你会发现,这种“成批、同结构、可查询、可修改”的世界,几乎就是数据库最擅长的环境。

而列表、字典、普通文件虽然也能勉强模拟这种结构,但一旦规模上来,管理成本会明显高很多。

十一、你可以把数据库理解成程序世界里的图书馆,而不是储物间

这个类比特别适合初学者。

如果只是把数据往文件里写,有时更像把东西堆进储物间。 它也不是没有价值,但重点是“有地方放”。

而数据库更像图书馆。

每本书放在哪里 按什么分类 怎么查 怎么借 怎么还 怎么统计 一本书和作者、出版社、分类之间是什么关系

这套体系本身,就是数据库的价值所在。

所以当你以后学数据库时,不要总把注意力只放在“怎么存进去”。 更要关注:

怎么查 怎么改 怎么删 怎么关联 怎么保证一致性

这些能力加起来,才是数据库真正厉害的地方。

十二、为什么说数据库让程序开始更像“系统”,而不只是脚本

这个点非常重要。

你前面学 Python 时,写过很多有价值的小程序,比如:

文件批量处理 日志分析 数据清洗 网页抓取

这些程序非常有用,但很多时候它们更像“任务脚本”。

它们通常是:

运行一次 处理一批数据 输出结果 结束

而数据库开始出现时,程序的感觉会变得不一样。

因为从这时起,程序不只是“做一次处理”。 它开始有了长期积累的数据。

比如:

今天注册了几个用户 明天还能继续在原来的基础上增加 后天可以查出老用户 过一周还能按条件统计

这时候,程序就从“临时执行一段逻辑”,逐渐走向“持续管理一套数据”。

这其实就是为什么很多人一学数据库,会明显感觉自己开始接近真正项目开发了。

因为数据库让程序开始具备“系统感”。

十三、文件和数据库,不是敌对关系,而是不同层次的工具

这一点也特别值得你知道。

我前面一直在讲数据库的优势,不代表文件就没用了。 不是这样的。

文件当然仍然非常有用。

配置适合放文件。 日志适合放文件。 导出结果适合放文件。 静态资源适合放文件。 某些临时缓存也可以放文件。

所以真正成熟的理解不是:

学了数据库,文件就没价值了。

而是:

文件更适合某些简单、独立、静态、顺序型的存储场景。 数据库更适合大量结构化数据的长期管理场景。

你以后做项目时,往往两者都会同时用到。

比如:

用户信息在数据库里。 上传的图片在文件系统里。 运行日志在日志文件里。 导出的报表是 CSV 文件。

所以这一章真正要帮你建立的,不是“文件不行,数据库才高级”。 而是“什么时候该用哪个”。

十四、为什么数据库一旦学会,会明显提升你的项目上限

因为很多项目之所以做不大,不是业务逻辑不够复杂。 而是数据管理方式太原始。

比如一开始你做个小记账本,用文本文件也许能跑。 可一旦你想支持:

多用户 按日期筛选 按分类统计 修改历史记录 分页展示 查询某个月的消费

这时候数据库就会把事情一下子变顺。

再比如留言板。

一开始你把留言全写进一个 JSON,也不是不能做。 但一旦你想支持:

新增留言 删除留言 分页查看 按时间排序 按用户筛选

数据库的优势就会特别明显。

所以很多时候,项目上限不只是由你会不会 Flask、会不会前端决定。 还很大程度上取决于你有没有一种合适的数据管理方式。

而数据库,往往正是这个分水岭。

十五、程序离不开数据库,还有一个很现实的原因:协作

当程序只是你自己一个人跑一跑脚本时,很多事都还能“凑合”。

但一旦到了正式项目环境,数据往往不只是给你一个人看。

前端页面要读。 后台管理要读。 定时任务要读。 接口服务要读。 统计报表也要读。

这时候,如果底层只是一个大家轮流改的文本文件,那很容易混乱。

谁先写 谁后写 谁覆盖了谁 谁删了哪条 哪一次改动失败了

这些问题都会越来越突出。

而数据库天然更适合做“大家都要读写”的中心数据层。

也就是说,数据库不仅仅让数据“能存”。 它还让数据在系统内部更容易被统一管理。

这也是为什么真实开发里,数据库几乎总处在核心位置。

十六、数据库其实也是程序和数据之间的一种约定

这个理解也很重要。

一旦你用了数据库,就意味着你不再是随手往某个文件里塞点东西。 而是开始认真定义:

数据有哪些字段 字段是什么类型 哪些字段必须有 哪些字段不能重复 表和表之间什么关系

这其实就是一种约束。 也是一种秩序。

很多初学者前期写程序时,数据结构很随意:

今天是 name明天是 username后天又变成 user_name

或者有时手机号是字符串,有时是整数,有时还能为空,有时又没想清楚。

但数据库一介入,这种随意性就会明显下降。 因为你必须更认真地定义数据。

这其实是非常好的训练。

它会逼着你从“随手写点代码”慢慢走向“认真设计数据”。

而项目开发里,数据设计能力真的非常重要。

十七、真正的数据库思维,和只会存数据,差别在哪里

很多人刚开始学数据库,会把重点放在:

怎么建表 怎么插入 怎么查询

这些当然都要学。 但更深一层的数据库思维其实是:

我这类数据,应该怎么组织才合理 哪些应该拆成不同表 哪些字段应该唯一 哪些表之间有关系 什么样的查询会经常发生 后面扩展时会不会很难改

也就是说,数据库不是一个“存东西的坑”。 它更像是在问你:

你到底怎么理解这套数据。

所以从这一章开始,你后面学数据库时,不要只盯着语法。 更要开始练一种新的能力:

把现实问题抽象成数据结构。

这一步会非常值钱。

十八、初学者在这一章最容易误解的几件事

第一个误解,是觉得数据库离自己还很远。

其实只要你做的程序有“长期保存数据”的需求,它就一点都不远。

第二个误解,是觉得文件已经能存,数据库只是更高级一点的存储方式。

这不够准确。 数据库最重要的不只是存,而是查、改、删、排序、统计、关系管理。

第三个误解,是觉得只有特别大的项目才需要数据库。

其实很多不算大的项目,只要数据开始持续累积,也会很快需要数据库。

第四个误解,是觉得学数据库就是背 SQL。

SQL 当然重要,但那只是操作数据库的语言。 真正更深的东西,是对数据如何组织和管理的理解。

十九、为什么这一章一定要先讲“为什么”,而不是直接讲 SQLite

因为很多人一上来学数据库,最容易陷入一种状态:

会写几句 SQL 会创建一张表 但心里还是不明白,为什么项目里非得用这个东西

这样学起来就会很飘。

今天记住 SELECT。 明天记住 INSERT。 后天记住 UPDATE。 但总觉得这些操作是在硬背,不知道它们为什么重要。

所以这一章的价值,就是先把数据库存在的必要性讲透。

一旦你真正理解了:

程序为什么离不开数据库 数据库到底比文件强在哪里 项目为什么一旦有持续数据就会走向数据库

后面再学 SQLite、SQL、增删改查,你会明显觉得那些内容更有落点。

因为你知道自己不是在学一个新名词。 而是在学“程序如何认真管理数据”。

二十、这一章真正要带走的核心认知

如果要把整章压缩成最重要的一句话,那就是:

程序离不开数据库,不是因为数据库显得专业,而是因为现实里的数据一旦要长期保存、频繁查询、持续更新、彼此关联,数据库就会变成最自然、最稳定、最可管理的选择。

你以后只要做的程序出现这些特征:

数据要长期存在 数据越来越多 要频繁查找 要局部更新 要排序统计 要多处共用 要维持结构一致

那你几乎就可以开始认真考虑数据库了。

这不是某种“高级玩法”。 这更像是程序逐渐长大以后,迟早会遇到的一步。

本章小结

数据库的重要性,不在于它只是一个能存数据的工具。 真正的价值在于,它能让程序长期、稳定、有秩序地管理大量结构化数据。

相比变量、列表、字典,数据库更适合长期保存。 相比普通文件,数据库更擅长查询、更新、删除、排序、统计和关系管理。 相比零散脚本,数据库会让程序逐渐具备系统感。

所以程序离不开数据库,不是因为程序员喜欢复杂。 而是因为现实项目里的数据,一旦开始真正“活”起来,简单的保存方式往往就不够用了。

从这一章开始,你后面学 SQLite、SQL、增删改查时,就不要再把它们看成一堆独立命令。 而要把它们理解成:程序开始认真管理数据的第一步。

课后思考

第一,想一想你前面写过的哪些小程序,如果要长期保存数据,已经开始不太适合只用列表或文件了。

第二,试着用自己的话解释: 数据库和普通文件最大的差别,到底不是“能不能存”,而是什么。

第三,想一个你熟悉的小场景,比如记账、学生成绩、留言板、商品列表,看看它为什么迟早会走向数据库。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-21 23:27:37 HTTP/2.0 GET : https://f.mffb.com.cn/a/506169.html
  2. 运行时间 : 0.256948s [ 吞吐率:3.89req/s ] 内存消耗:4,875.48kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=e071114a3e9a7c2fd0f51aae142e6d17
  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.001101s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001444s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.031259s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.002112s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001381s ]
  6. SELECT * FROM `set` [ RunTime:0.002622s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001447s ]
  8. SELECT * FROM `article` WHERE `id` = 506169 LIMIT 1 [ RunTime:0.011827s ]
  9. UPDATE `article` SET `lasttime` = 1787326058 WHERE `id` = 506169 [ RunTime:0.021610s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.003210s ]
  11. SELECT * FROM `article` WHERE `id` < 506169 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.002561s ]
  12. SELECT * FROM `article` WHERE `id` > 506169 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.019327s ]
  13. SELECT * FROM `article` WHERE `id` < 506169 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.004832s ]
  14. SELECT * FROM `article` WHERE `id` < 506169 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.013620s ]
  15. SELECT * FROM `article` WHERE `id` < 506169 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.022495s ]
0.258553s