当前位置:首页>python>Python从入门到精通day40

Python从入门到精通day40

  • 2026-03-03 11:02:33
Python从入门到精通day40

视图、函数和过程:MySQL数据库核心工具详解

上一节内容中,我们已经学习了DML(数据操纵语言)的插入、删除与更新操作。本节课,我们将继续围绕「员工管理系统数据库(hrs)」展开,深入拆解视图、函数和过程这三大MySQL常用数据库对象的用法。它们既能实现数据隐藏、功能封装与复杂操作简化,也是开发人员提升开发效率、保障数据安全的关键工具。

温馨提示:在执行本文所有操作前,请务必确认已完成「建库建表的DDL语句」和「插入数据的DML语句」,确保表结构与数据完整无误,再通过以下命令切换至hrs数据库,避免出现操作报错。

-- 切换到hrs数据库(``符号用于规避关键字冲突,建议日常开发规范使用)USE `hrs`;

一、视图:虚拟表的实用技巧

视图是关系型数据库中,将一组查询指令所构成的结果集,组合成可直接查询的数据表对象。简单来说,视图本质上是一张虚拟表——与实体数据表不同,它没有实际的存储结构,更像是一条被赋予名称、永久保存于数据库中的SQL查询语句。

在实际开发中,合理使用视图能带来不少便利,具体优势如下:

  1. 1. 隐藏实体表结构,降低数据库安全风险:将核心数据表的细节隐藏,仅向外部程序开放视图中的部分字段,避免数据结构泄露,减少被攻击的可能性。
  2. 2. 限制数据修改权限,保障数据安全:多数情况下视图仅支持读取操作,更新视图的操作存在诸多限制,可有效防止外部程序通过视图随意修改核心数据。
  3. 3. 复用复杂SQL,提升开发效率:将逻辑复杂的查询语句封装为视图,后续无需重复编写复杂代码,直接访问视图即可获取所需数据,也可将视图与实体表结合进行连接查询。
  4. 4. 格式化数据输出,适配业务需求:创建视图时,可对查询结果进行格式化处理,让视图返回的数据格式更贴合实际业务场景,无需额外编写格式化代码。

1. 如何创建视图

核心语法:CREATE VIEW 视图名称 AS 具体查询语句;其中,查询语句可根据业务需求筛选字段、添加查询条件,实现虚拟表的个性化定制。

createview `vw_emp_simple`asselect  `eno`,`ename`,`job`,`dno`from  `tb_emp`;

温馨提示:由于视图不存储实际数据,每次访问视图时,数据库都会重新执行其对应的查询语句来获取数据。如果视图是基于连接查询、嵌套查询创建的,可能会出现查询性能下降的情况,建议使用前先进行性能测试,确保满足业务需求。

创建上述视图后,我们可以借助之前学习的DCL(数据控制语言),限制部分用户仅能通过该视图获取员工信息,从而避免员工表中工资(sal)、补贴(comm)等敏感字段泄露。以下代码演示了如何从视图中查询数据:

select*from `vw_emp_simple`;

查询结果如下:

+------+-----------+--------------+-----+| eno  | ename     | job          | dno |+------+-----------+--------------+-----+| 1359 | 胡二刀    | 销售员       |  30 || 2056 | 乔峰      | 分析师       |  20 || 3088 | 李莫愁    | 设计师       |  20 || 3211 | 张无忌    | 程序员       |  20 || 3233 | 丘处机    | 程序员       |  20 || 3244 | 欧阳锋    | 程序员       |  20 || 3251 | 张翠山    | 程序员       |  20 || 3344 | 黄蓉      | 销售主管     |  30 || 3577 | 杨过      | 会计         |  10 || 3588 | 朱九真    | 会计         |  10 || 4466 | 苗人凤    | 销售员       |  30 || 5234 | 郭靖      | 出纳         |  10 || 5566 | 宋远桥    | 会计师       |  10 || 7800 | 张三丰    | 总裁         |  20 |+------+-----------+--------------+-----+

2. 视图的可更新性说明

很多同学会疑问:既然视图是一张虚拟表,那它里面的数据可以更新吗?答案是:视图的可更新性需结合具体场景判断,以下4种类型的视图无法进行更新操作:

  1. 1. 包含聚合函数(SUMMINMAXAVGCOUNT等)、DISTINCTGROUP BYHAVINGUNIONUNION ALL的视图。
  2. 2. SELECT子句中包含子查询的视图。
  3. 3. FROM子句中引用了不可更新视图的视图。
  4. 4. WHERE子句的子查询,引用了FROM子句中数据表的视图。

3. 视图的删除方法

核心语法:DROP VIEW IF EXISTS 视图名称;该语句可避免视图不存在时出现报错,同时支持视图更新——既可以先删除旧视图再重新创建,也可直接使用CREATE OR REPLACE VIEW语句更新。

dropview if exists `vw_emp_simple`;

补充说明:若需更新视图,除了先删除再创建的方式,也可直接使用create or replace view语句,无需删除旧视图,操作更便捷。

4. 视图的使用规则与限制

  1. 1. 视图支持嵌套使用:可利用现有视图检索的数据,创建新的视图;同时,视图也可与实体数据表结合进行各类查询操作。
  2. 2. order by子句的使用限制:创建视图时可添加order by子句,但如果查询视图时也使用了order by,则视图中原有的order by会被覆盖。
  3. 3. 索引与触发器相关限制:视图无法使用索引,也不会触发触发器的执行(实际开发中,出于性能等多方面考虑,通常不建议使用触发器,本文暂不展开讲解)。

二、函数:MySQL中的功能封装工具

MySQL中的函数,与Python等编程语言中的函数逻辑大致相同,核心作用都是封装功能独立、可重复使用的代码片段。两者的主要区别在于,MySQL中的函数可直接执行SQL语句,能更便捷地适配数据库操作场景。

下面我们通过一个实际案例,演示如何自定义函数——实现超长字符串的截断功能,该函数可直接在查询中调用,大幅提升代码复用性。

1. 自定义函数的创建方法

核心语法:先通过DELIMITER修改语句定界符 → 再使用CREATE FUNCTION定义函数(包含参数、返回值类型、函数属性)→ 编写函数体 → 最后恢复默认定界符。

delimiter $$createfunction fn_truncate_string(content varchar(10000),max_length int unsignedreturnsvarchar(10000nosqlbegindeclareresultvarchar(10000default content;if char_length(content) > max_length thensetresult=left(content, max_length);setresult= concat(result'……');end if;returnresult;end $$delimiter ;

说明1:函数声明后的no sql,表示该函数体中未使用SQL语句;若函数体需要通过SQL语句读取数据,则需将其声明为reads sql data

说明2:定义函数前后修改定界符(DELIMITER命令),是为了避免函数体中以;结尾的语句被提前截断执行——默认情况下,MySQL以;作为语句终止符,不修改定界符会导致函数定义失败。

2. 自定义函数的调用方式

核心语法:在SELECT语句中,像使用MySQL系统函数(如CONCAT、LEFT)一样调用自定义函数,可搭配AS关键字设置别名,让查询结果更易读。

select fn_truncate_string('和我在成都的街头走一走,直到所有的灯都熄灭了也不停留'10as short_string;

查询结果如下:

+--------------------------------------+| short_string                         |+--------------------------------------+| 和我在成都的街头走一……                 |+--------------------------------------+

三、过程:复杂SQL操作的封装方案

过程(又称存储过程),是将一组SQL语句提前编译好,存储在数据库中的集合。调用过程不仅能简化应用程序开发人员的工作,减少与数据库服务器的通信次数,还能有效提升数据操作的性能。

在此之前,我们使用的SQL语句均为针对单个或多个数据表的单条操作,但实际开发中,很多业务场景需要多条SQL语句配合才能完成。例如,电商网站受理用户订单时,需执行以下一系列操作:

  1. 1. 通过查询核对目标商品的库存是否存在、数量是否充足;
  2. 2. 若库存充足,锁定对应库存(防止重复售卖),并减少库存数量,确保库存数据准确;
  3. 3. 若库存不足,需与供应商对接补货,或生成系统提示消息,告知用户无法下单;
  4. 4. 无论订单受理成功与否,都需生成操作流水记录,并向用户发送相关通知。

将这类复杂操作封装为过程,不仅能保证数据一致性(避免部分操作成功、部分失败),后续业务变动时,只需修改过程内部逻辑,无需修改调用端代码。同时,过程不会暴露数据表的核心细节,且执行速度比逐条执行SQL语句更快。

1. 存储过程的创建方法

核心语法:与自定义函数类似,需先修改定界符,过程中可包含变量、条件判断、事务、异常处理等逻辑,与函数的核心区别是:过程无返回值,主要用于执行一系列操作。

下面我们创建一个存储过程,实现hrs数据库中员工工资的普调功能,具体规则为:10部门员工薪资上浮30020部门员工薪资上浮80030部门员工薪资上浮500

delimiter $$createprocedure sp_upgrade_salary()begindeclare flag booleandefault1;-- 定义异常处理器,捕获SQL执行异常declare continue handler forsqlexceptionset flag=0;-- 开启事务环境,确保操作的原子性start transaction;update tb_emp set sal=sal+300where dno=10;update tb_emp set sal=sal+800where dno=20;update tb_emp set sal=sal+500where dno=30;-- 根据异常情况,执行提交或回滚操作if flag thencommit;elserollback;end if;end $$delimiter ;

补充说明:上述过程中使用start transaction开启了事务环境(事务相关知识将在本文后续补充)。为了应对SQL执行过程中可能出现的异常,我们定义了flag变量和异常处理器——若执行过程中出现异常,flag会被赋值为0,后续根据flag的值判断执行事务提交(commit)或回滚(rollback),确保数据一致性。

2. 存储过程的调用方式

核心语法:CALL 过程名称();无需指定返回值,调用后会自动执行过程中封装的所有SQL操作。

call sp_upgrade_salary();

3. 存储过程的删除方法

核心语法:DROP PROCEDURE IF EXISTS 过程名称;与视图、函数的删除逻辑一致,可避免过程不存在时出现报错。

dropprocedure if exists sp_upgrade_salary;

4. 存储过程的使用注意事项

存储过程的功能十分强大,除了上述示例中的逻辑,还可在过程中定义变量、条件判断、循环语句,通过游标操作查询结果,甚至使用事件调度器等。这些高级用法,本文暂不展开,感兴趣的同学可自行深入学习。

需要特别提醒的是:虽然存储过程有诸多优势,但在实际开发中,不建议频繁使用,更不建议将大量复杂运算放入过程中。因为数据库往往是系统的性能瓶颈,过多的过程操作会给数据库服务器带来巨大压力,加剧性能问题。对于互联网产品开发,建议让数据库专注于数据存储,将复杂运算和业务处理交给应用服务器,若应用服务器压力过大,可通过部署多台服务器分摊压力,更易实现扩展。

如果大家对视图、函数、过程,以及未提及的触发器等知识感兴趣,建议阅读MySQL入门书籍《MySQL必知必会》进行基础了解即可——这些知识点在日常开发中未必常用,很多时候只是为了应对面试需求。

四、补充知识点:范式、数据完整性与一致性

结合本节课讲解的视图、函数、过程示例,我们补充3个MySQL数据库设计与数据安全相关的核心知识点,帮助大家更深入理解数据库操作的底层逻辑和规范。

1. 范式理论:数据库表设计的指导原则

范式理论是关系型数据库二维表设计的核心指导思想,核心目标是减少数据冗余、保证数据一致性,日常开发中最常用的是前三范式:

  1. 1. 第一范式(1NF):数据表的每一列值域,都由不可分割的原子值组成,不能存在多值、复合值。
  2. 2. 第二范式(2NF):数据表中的所有数据,都需与该表的键(主键或候选键)完全依赖,不能存在部分依赖。
  3. 3. 第三范式(3NF):所有非键属性,仅与候选键存在相关性,非键属性之间不能存在依赖关系。

补充说明:实际开发中,出于操作效率的考虑,往往会采用反范式设计——故意降低范式级别,增加适量数据冗余,以此提升查询和操作性能,平衡规范性与效率。

2. 数据完整性:确保数据的准确与有效

数据完整性是指数据库中的数据,在逻辑上保持一致性、准确性和有效性,主要分为三类,具体如下:

  1. 1. 实体完整性:确保每个实体都是唯一的,不会出现重复数据。
  • • 核心实现方式:主键(primary key)、唯一约束(unique)。
  1. 2. 引用完整性(又称参照完整性):确保关系中不允许引用不存在的实体,避免出现无效关联。
  • • 核心实现方式:外键(foreign key)。
  1. 3. 域完整性:确保数据符合预设规则,是有效的数据。
  • • 核心实现方式:指定数据类型及长度、非空约束(not null)、默认值约束(default)、检查约束(check)。

补充说明:在MySQL 8.x版本之前,检查约束(check)仅能声明,无法实际生效;MySQL 8.x及以上版本,才真正支持检查约束的功能。

3. 数据一致性:事务的核心作用

数据一致性是指事务执行前后,数据库的状态始终保持一致,核心依赖于事务及其ACID特性,具体拆解如下:

  1. 1. 事务的定义:一系列对数据库的读/写操作的集合,这些操作要么全部执行成功,要么全部执行失败,不会出现部分成功、部分失败的情况。
  2. 2. 事务的ACID特性
  • • 原子性(Atomicity):事务是一个不可分割的整体,包含的所有操作要么全部执行,要么全部不执行,无中间状态。
  • • 一致性(Consistency):事务执行前后,数据库的状态从一个一致状态,转变为另一个一致状态,数据不会出现异常。
  • • 隔离性(Isolation):多个事务并发执行时,每个事务的执行过程相互独立,不会受到其他事务的干扰。
  • • 持久性(Durability):事务一旦提交,对数据库的修改将永久保存,即使数据库发生故障,修改后的数据也不会丢失。
  1. 3. MySQL中的事务基本操作
  • • 开启事务环境
start transaction
  • • 提交事务(确认修改,永久生效)
commit
  • • 回滚事务(取消修改,恢复到事务开启前的状态)
rollback
  1. 4. 查看事务隔离级别
show variables like'transaction_isolation';

查询结果如下:

+-----------------------+-----------------+| Variable_name         | Value           |+-----------------------+-----------------+| transaction_isolation | REPEATABLE-READ |+-----------------------+-----------------+

从结果可以看出,MySQL默认的事务隔离级别是REPEATABLE-READ(可重复读)。

  1. 5. 修改当前会话的事务隔离级别
set session transaction isolation level read committed;

修改后重新查看事务隔离级别,结果如下:

+-----------------------+----------------+| Variable_name         | Value          |+-----------------------+----------------+| transaction_isolation | READ-COMMITTED |+-----------------------+----------------+

补充说明:关系型数据库的事务是一个复杂的话题,当多个事务并发访问数据时,可能会出现三类读数据问题(脏读、不可重复读、幻读)和两类更新数据问题(第一类丢失更新、第二类丢失更新)。若想深入了解这五类问题,可阅读CSDN网站上《Java面试题全集(上)》一文的第80题。

为了避免上述问题,关系型数据库底层提供了锁机制:按锁定对象可分为表级锁和行级锁,按并发事务锁定关系可分为共享锁和独占锁。直接使用锁操作繁琐,因此数据库提供了自动锁机制——只需指定合适的事务隔离级别,数据库会自动分析SQL语句,为事务访问的资源添加合适的锁,并通过多种方式维护锁的性能,这一过程对用户完全透明。

若想深入学习MySQL事务和锁的细节知识,推荐阅读进阶书籍《高性能MySQL》,该书是数据库领域的经典读物,能帮助大家系统掌握MySQL性能优化与底层原理。

ANSI/ISO SQL 92标准定义了4个等级的事务隔离级别,需要注意的是:事务隔离级别与数据访问的并发性呈反比——隔离级别越高,数据一致性越好,但并发性越差;反之,隔离级别越低,并发性越好,但数据一致性风险越高。实际开发中,需结合具体业务场景选择合适的隔离级别,没有统一的万能原则。

五、总结

MySQL的知识体系十分庞大,本文讲解的视图、函数、过程,以及补充的范式、数据完整性、事务等知识点,仅为MySQL的基础核心内容。除此之外,MySQL性能调优、运维工具使用、数据备份与恢复、服务监控、高可用架构部署等内容,由于篇幅限制,本文无法逐一展开。

后续有相关需求时,我们再针对性讲解这些进阶内容,也建议大家在日常学习中多动手实践、自行探索,逐步积累MySQL开发与运维经验。

AI工具,提高学习,工作效率神器

国内直接使用顶级AI工具

谷歌浏览器访问:https://www.nezhasoft.cloud/r/vMPJZr

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-03-06 00:06:11 HTTP/2.0 GET : https://f.mffb.com.cn/a/477668.html
  2. 运行时间 : 0.078611s [ 吞吐率:12.72req/s ] 内存消耗:4,822.79kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=0886bf27118a888034301da871a10d7b
  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.000544s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000639s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000272s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000269s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000467s ]
  6. SELECT * FROM `set` [ RunTime:0.000182s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000576s ]
  8. SELECT * FROM `article` WHERE `id` = 477668 LIMIT 1 [ RunTime:0.000416s ]
  9. UPDATE `article` SET `lasttime` = 1772726771 WHERE `id` = 477668 [ RunTime:0.002075s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000227s ]
  11. SELECT * FROM `article` WHERE `id` < 477668 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000503s ]
  12. SELECT * FROM `article` WHERE `id` > 477668 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000372s ]
  13. SELECT * FROM `article` WHERE `id` < 477668 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001716s ]
  14. SELECT * FROM `article` WHERE `id` < 477668 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001879s ]
  15. SELECT * FROM `article` WHERE `id` < 477668 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000788s ]
0.080182s