当前位置:首页>Linux>系统|Linux文件系统:从磁盘布局到VFS内核抽象

系统|Linux文件系统:从磁盘布局到VFS内核抽象

  • 2026-03-28 22:10:59
系统|Linux文件系统:从磁盘布局到VFS内核抽象

Linux文件系统:从磁盘布局到VFS内核抽象

引言

文件系统是操作系统的基石之一,它负责在持久性存储设备上组织、管理和存储数据。对于Linux系统而言,文件系统的设计尤为精妙——它不仅支持数十种不同类型的文件系统(从经典的EXT2到现代的Btrfs),还通过虚拟文件系统(VFS)层为上层应用提供统一的访问接口。本文将深入探讨Linux文件系统的核心概念、磁盘布局、关键数据结构,以及VFS如何实现多种文件系统的共存。

一、文件系统的基本概念与设计哲学

在Linux系统中,文件不仅仅是指存储在磁盘上的数据,它是一个广义的概念——普通文件、目录、符号链接、设备节点甚至进程间通信通道都被抽象为文件。这种“一切皆文件”的设计哲学是Unix/Linux体系的重要特征。

文件系统需要解决的核心问题包括:

  1. 命名与组织结构:如何让用户通过路径名定位文件
  2. 物理存储管理:如何在磁盘上高效分配和回收空间
  3. 元数据维护:如何记录文件的属性(权限、时间戳、所有者等)
  4. 一致性保障:如何在系统崩溃时保证数据完整性
  5. 性能优化:如何减少磁盘I/O,提高访问速度

二、磁盘布局与核心数据结构

2.1 物理存储的层次划分

从物理角度看,磁盘被划分为多个分区(partition),每个分区可以独立格式化为不同的文件系统。一个典型的Unix文件系统(如EXT系列)将分区划分为若干个块组(Block Group),每个块组包含以下关键部分:

  • 超级块(Superblock):记录文件系统的全局信息,如块大小、块总数、inode总数、空闲块数等。超级块至关重要,通常在每个块组中都有备份。
  • 块位图(Block Bitmap):用位标识哪些数据块已被占用,哪些空闲。
  • inode位图(inode Bitmap):用位标识哪些inode节点已被占用。
  • inode表(inode Table):连续存放的inode节点数组,每个inode对应一个文件或目录。
  • 数据块(Data Blocks):实际存储文件内容的区域。

这种分组设计的优势在于:将元信息(inode、位图)与数据块放置在相近的物理位置,减少磁头寻道时间,提升性能。

2.2 inode:文件的元信息核心

inode(索引节点)是文件系统的核心数据结构,它包含了除文件名之外的所有文件元信息:

  • 文件类型:普通文件、目录、符号链接、块设备、字符设备等
  • 权限位:所有者、所属组、其他用户的读写执行权限
  • 链接计数:有多少个目录项指向该inode
  • 所有者信息:用户ID和组ID
  • 时间戳:创建时间(ctime)、修改时间(mtime)、访问时间(atime)
  • 文件大小:以字节为单位
  • 数据块指针:指向存储文件内容的数据块

一个关键的设计问题是:inode大小固定,如何支持任意大小的文件? 解决方案是多级索引块指针。以典型的EXT2/3/4为例,inode中包含:

  • 12个直接块指针:直接指向数据块
  • 1个一级间接块指针:指向一个包含多个块指针的块
  • 1个二级间接块指针:指向包含一级间接块指针的块
  • 1个三级间接块指针:指向包含二级间接块指针的块

这种多级索引结构在保持inode结构固定的同时,能够支持超大文件。例如,在块大小为4KB、块指针占4字节的情况下,单文件最大可达:12×4KB + (1024×4KB) + (1024×1024×4KB) + (1024×1024×1024×4KB) ≈ 4TB。

2.3 目录项:文件名与inode的映射

文件名并不存储在inode中,这是Unix/Linux文件系统的重要设计决策。原因有二:

  1. 灵活性:硬链接允许同一个inode对应多个不同名字,文件名不能唯一确定inode
  2. 固定长度:inode结构需要固定长度便于索引,而文件名长度可变

那么文件名存储在哪里?答案是目录文件的数据块中。目录是一种特殊的文件,它的数据块内容是一系列目录项(dentry),每个目录项包含:

  • inode编号:指向该文件在inode表中的位置
  • 文件名:变长字符串
  • 文件类型:用于快速识别而不必加载inode

通过这种设计,从路径名找到文件数据的过程是:

路径名 → 逐级查找目录项 → 获取inode编号 → 从inode表加载inode → 通过inode的块指针访问数据

值得注意的是,每个目录下都有两个特殊的目录项:“.”指向当前目录的inode,“..”指向父目录的inode。因此,一个目录的链接计数等于其直接子目录数加2(自身和“.”)。

三、链接:硬链接与符号链接

Linux提供了两种链接机制,理解它们的区别对掌握文件系统至关重要。

3.1 硬链接(Hard Link)

硬链接实质上是在某个目录下创建一个新的目录项,指向已有的inode。当创建硬链接时:

  • 目标文件的inode链接计数加1
  • 可以通过任一硬链接访问同一文件内容
  • 删除任一链接只是将链接计数减1,只有当计数归零时才真正删除文件

硬链接的限制:

  • 不能跨文件系统:不同文件系统的inode编号空间独立,无法保证唯一性
  • 不能链接目录:防止形成目录循环,避免路径解析死锁

3.2 符号链接(Symbolic Link)

符号链接(又称软链接)是一种特殊的文件类型(S_IFLNK)。它不修改目标inode的链接计数,而是:

  • 创建一个新的inode,类型为符号链接
  • 数据块中存储目标文件的路径名(绝对或相对)
  • 权限位通常被忽略,访问权限检查时使用目标文件的权限

符号链接的优势是灵活——可以跨文件系统、可以链接目录,但存在“断链”(目标被删除)的风险。

四、虚拟文件系统(VFS):统一抽象层

Linux最强大的特性之一是对多种文件系统的支持。目前Linux支持的文件系统超过50种,包括EXT2/3/4、XFS、Btrfs、F2FS、NFS、procfs、sysfs等。实现这一能力的核心是虚拟文件系统(VFS,Virtual File System)

4.1 VFS的设计理念

VFS并非一种实际的文件系统,它仅存在于内存中,在系统启动时建立、关闭时消亡。它的作用是充当物理文件系统与操作系统内核之间的接口层。可以将其形象地理解为PC主板的插槽——具体的文件系统就像接口卡,只要符合VFS定义的接口规范,就可以插入使用。

VFS的设计带来了两大好处:

  1. 统一视图:对所有文件系统的操作都通过相同的系统调用接口(open、read、write等)
  2. 透明性:用户和进程不需要关心文件所在的底层文件系统类型

4.2 VFS的核心对象

VFS定义了四个关键对象类型,每个具体的文件系统都需要实现这些对象所规定的操作接口:

对象类型
作用
关键操作
super_block
代表一个已挂载的文件系统
alloc_inode、write_inode、sync_fs等
inode
代表一个具体的文件或目录
lookup、create、mkdir、unlink等
dentry
代表一个目录项,用于路径名解析
无固定操作,主要用于缓存
file
代表进程打开的一个文件
read、write、mmap、open等

这些对象中,dentry特别值得关注。dentry缓存(dcache)是VFS性能优化的关键机制。当解析路径名时,VFS会遍历每个路径分量,在dentry缓存中查找对应的dentry对象。如果命中,就可以直接获取关联的inode,避免频繁的磁盘I/O。dentry对象仅存在于内存中,永不写回磁盘。

4.3 文件系统注册与挂载

文件系统向内核注册通过register_filesystem()函数完成,填写struct file_system_type结构,包含文件系统名称和读取超级块的函数指针。所有注册的文件系统形成一个链表,可以通过/proc/filesystems查看。

文件系统的挂载过程:

  1. 系统调用mount触发VFS层
  2. VFS根据文件系统类型名称,找到对应的file_system_type
  3. 调用该类型的read_super函数,从设备读取超级块信息
  4. 在内存中创建VFS超级块对象
  5. 创建dentry对象作为挂载点
  6. 将新的文件系统附加到全局文件系统树中

4.4 打开文件的完整流程

理解一个文件从打开到读写的完整流程,有助于把握文件系统的全貌:

进程级别:每个进程的task_struct中包含一个files_struct指针,指向该进程打开的文件描述符表。文件描述符(fd)实际上是这个表的索引。

打开过程

  1. 进程调用open()进入内核
  2. VFS根据路径名,通过dentry缓存或逐级查找,定位目标文件的dentry和inode
  3. 根据inode中的文件系统类型,调用对应文件系统的打开方法
  4. 分配一个新的file结构,初始化其操作函数指针(从inode获取)
  5. 在进程的文件描述符表中分配一个空闲fd,指向该file结构
  6. 返回fd给用户空间

读写过程

  1. 进程调用read(fd, ...),VFS通过fd找到对应的file结构
  2. 调用file->f_op->read,即具体文件系统的读操作
  3. 文件系统通过inode找到数据块位置,通过块设备层读取数据
  4. 数据通过Buffer Cache缓存,最终拷贝到用户缓冲区

多进程共享:同一个文件可以被多个进程打开,它们可能指向相同的inode但有不同的file结构(每个进程有自己的文件偏移量)。如果父子进程共享文件描述符(fork后),它们会指向相同的file结构,从而共享偏移量。

五、主流文件系统类型与选型

Linux支持多种文件系统,各有特点和应用场景。

5.1 EXT系列(EXT2/3/4)

  • EXT2:1993年引入,无日志功能,现已较少使用
  • EXT3:EXT2 + 日志,兼容性好
  • EXT4:当前Linux发行版的默认文件系统。主要特性包括:
    • 支持更大文件(最大16TB)和文件系统(最大1EB)
    • 支持无限数量子目录(EXT3限制32000个)
    • 支持extent(区段)取代传统块映射,减少元数据开销
    • 支持延迟分配,优化文件写入

5.2 XFS

最初由SGI开发,适合高性能大规模环境:

  • 优秀的并发I/O性能
  • 支持在线扩展(文件系统可在挂载状态下扩大)
  • 对大型文件的元数据操作高效
  • 适合数据中心、多媒体服务器等高负载场景

5.3 Btrfs(B-tree File System)

被称为“下一代文件系统”:

  • 支持快照(snapshot)和克隆
  • 内置数据校验和(checksum)
  • 支持压缩和去重
  • 支持跨多设备(类似RAID)
  • 适合对数据完整性和高级功能有要求的场景

5.4 F2FS(Flash Friendly File System)

专为闪存存储(SSD、eMMC、SD卡)设计:

  • 考虑闪存的写入放大、垃圾回收特性
  • 优化写入性能,减少磨损
  • 适合移动设备、嵌入式系统

5.5 伪文件系统

  • procfs(/proc):提供进程和内核信息
  • sysfs(/sys):导出内核对象和设备信息
  • tmpfs:基于内存的临时文件系统

5.6 选型建议

场景
推荐文件系统
桌面通用环境
EXT4
高性能服务器、大型数据库
XFS
需要快照、数据完整性
Btrfs
移动/嵌入式闪存设备
F2FS
跨平台兼容(与Windows)
NTFS(需额外驱动)、exFAT

六、结语

Linux文件系统是操作系统设计中优雅与实用的典范。从磁盘上的物理布局到内存中的VFS抽象,每一层都有清晰的职责划分。inode与目录项的解耦实现了硬链接和灵活的命名;多级索引结构在固定大小的元数据中支持超大文件;VFS抽象层则让数十种文件系统能够和平共处、统一使用。

理解这些原理不仅能帮助我们在系统出现问题时准确定位(如inode耗尽导致无法创建文件),更能指导我们做出合理的文件系统选型和参数调优。正如APUE作者所言,虽然具体的文件系统实现不断演进,但核心的设计思想是相通的。从EXT4到Btrfs,从传统HDD到NVMe SSD,文件系统仍在持续进化,但其根本使命始终如一:高效、可靠地管理数据。

参考资料

  1. [apue] Linux文件系统那些事儿
  2. Linux文件系统——百度百科
  3. 虚拟文件系统——百度百科
  4. Linux文件系统概念
  5. Linux Kernel核心中文手册
  6. Linux文件系统如何选择合适的类型
  7. 操作系统真象还原学习笔记
  8. 内核必须懂(二):文件系统初探
  9. Linux虚拟文件系统概述(Linux内核文档)

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-03-29 03:24:31 HTTP/2.0 GET : https://f.mffb.com.cn/a/483702.html
  2. 运行时间 : 0.184785s [ 吞吐率:5.41req/s ] 内存消耗:4,686.14kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=17bb9b2fc6d5e10dca5639936d6e96b7
  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.000897s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001356s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000727s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.001182s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001521s ]
  6. SELECT * FROM `set` [ RunTime:0.000564s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001467s ]
  8. SELECT * FROM `article` WHERE `id` = 483702 LIMIT 1 [ RunTime:0.001141s ]
  9. UPDATE `article` SET `lasttime` = 1774725872 WHERE `id` = 483702 [ RunTime:0.001499s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.001080s ]
  11. SELECT * FROM `article` WHERE `id` < 483702 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001603s ]
  12. SELECT * FROM `article` WHERE `id` > 483702 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.002105s ]
  13. SELECT * FROM `article` WHERE `id` < 483702 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.002873s ]
  14. SELECT * FROM `article` WHERE `id` < 483702 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001833s ]
  15. SELECT * FROM `article` WHERE `id` < 483702 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001655s ]
0.188626s