MySQL删除操作全解析:DELETE、TRUNCATE与DROP的区别及实战场景
1. 先搞清楚三个命令到底在干什么很多刚接触MySQL的朋友看到DROP、DELETE、TRUNCATE这三个命令第一反应都是“不就是删除嘛有什么区别”。但真到了生产环境一个删的是数据行一个删的是整张表另一个直接把表结构一起端走。搞混了轻则数据没了重则整个表没了恢复起来骨头都找不着。1.1 三条语句的基础形态先把最基础的语法摆出来这三个命令的长相就不一样-- 删除符合条件的行 DELETE FROM table_name WHERE condition; -- 清空整张表但保留表结构 TRUNCATE TABLE table_name; -- 连表结构带数据一起删除 DROP TABLE table_name;DELETE属于DML数据操作语言它干的事情是“删行”核心能力是带WHERE条件想删几行删几行。你不写WHERE它就把全表都删了但本质上还是逐行删。TRUNCATE属于DDL数据定义语言它的语义是“清空”把表里所有行一次性干掉但表结构字段、索引、约束这些原封不动地保留着。DROP也是DDL但比TRUNCATE狠得多。它不只是清数据而是把表结构、索引、约束、触发器全部从数据字典里抹掉。执行完DROP之后这张表就彻底不存在了想再用只能重新建表。1.2 用房子来理解这三个层次为了把三者的定位说清楚我喜欢用一个生活化的类比把一张表想象成一栋房子。DELETE相当于是把房子里的家具搬走一部分。你可以指定只搬客厅的沙发也可以把所有家具都搬走但房子本身还在墙体、水电、隔间这些结构完全不变你随时可以再搬新家具进来。TRUNCATE相当于是把所有家具、物品一次性全部清空房子变成毛坯但主体结构还在。你不能说它和DELETE完全一样因为DELETE可能只搬客厅TRUNCATE是全部搬光。DROP相当于是爆破拆除整栋楼连地基都不留。想再住得重新打地基、重新盖楼也就是重新建表。这个类比基本能覆盖三者的功能边界。实际工作中我就见过有人分不清TRUNCATE和“DELETE全表”的区别觉得反正都是把数据清空用哪个都一样。这个认知在开发环境玩玩还行放到生产环境后果可能是灾难性的。为什么这么说下面从数据安全性开始拆。2. 事务、回滚和锁差距最大的地方2.1 DELETE一行一行删所以能进“回收站”DELETE是逐行操作的在InnoDB存储引擎下它会把符合条件的数据行标记为删除同时把变更前的数据写入undo日志。只要没有执行COMMIT你就可以随时用ROLLBACK把数据恢复回来。用铅笔和橡皮来打比方最贴切DELETE就像你用铅笔写字写错了用橡皮擦掉。只要还没决定“就这样了”提交事务你完全可以把擦掉的字重新写回来。但如果你“用钢笔描了一遍”COMMIT之后那就意味着这个操作已经确认生效了橡皮擦也找不回来了后面想恢复只能靠备份或者binlog。这个特性对生产环境至关重要。我做大表清理的时候常规操作一定是先开事务再执行删除确认影响行数最后才提交。比如这样BEGIN; DELETE FROM orders WHERE create_time 2020-01-01; -- 查看一下影响行数确认没删错 SELECT ROW_COUNT(); -- 确认无误再提交 COMMIT; -- 如果发现不对劲就回滚 ROLLBACK;有人觉得多此一举但实际操作中这个习惯救过我很多次。尤其是那些没有前期备份、又不敢随便停服务的系统多一层事务保护就是多一条命。2.2 TRUNCATE和DROP根本不吃“后悔药”TRUNCATE和DROP走的是完全另外一套逻辑。它们都属于DDL语句MySQL在执行DDL时会隐式提交当前事务而且这两种操作不会生成undo日志。这意味着什么呢意味着不管你有没有显式开启事务只要TRUNCATE或DROP执行了就是立刻生效、立刻提交ROLLBACK对它们完全无效。这里有个实际场景可以感受一下START TRANSACTION; DELETE FROM temp_table; ROLLBACK; -- 数据完好无损一切像没发生过但如果是这样START TRANSACTION; TRUNCATE TABLE temp_table; ROLLBACK; -- 数据已经没了ROLLBACK救不回来我确实踩过这个坑。有一年在测试环境清数据本来只想清一张临时表结果因为脚本里写死了表名一个TRUNCATE下去把正式环境的一张配置表给清空了。当时第一反应就是赶紧ROLLBACK结果MySQL返回“Query OK, 0 rows affected”。那一刻的感受真的很难形容好在最后通过当天的备份恢复过来了但整个过程非常折腾。从那之后我给自己定了一条铁律凡是要执行TRUNCATE或DROP的地方执行之前必须先做两件事。第一SELECT * FROM 目标表 LIMIT 1 确认表名没写错第二SHOW TABLES 看看当前所在库是不是自己要操作的库。然后再执行。而且永远不要对这类操作抱有“先执行出问题再回滚”的幻想因为根本不存在这个选项。2.3 锁的粒度决定别人等多久锁的差异是并发环境下最影响业务体验的地方。DELETE是逐行加锁。在InnoDB下每删一行都会对那一行加排他锁如果一次要删几百万行锁的范围会覆盖大量数据持续时间也长。同时删除过程中要不断写undo日志undo表空间会快速膨胀binlog也一样。如果是在业务高峰期做这种操作周围的读写请求基本都会被堵住主从复制延迟也会直接飙升。TRUNCATE锁的是整张表。在MySQL 8.0里TRUNCATE的实现类似于重建表它会获取表级排他锁然后直接丢弃旧的数据页。这个过程中其他对该表的读写操作都会被阻塞但因为执行时间很短通常也就一两秒所以业务感知不会太强。DROP也是锁表级别的。MySQL 8.0之后支持了原子DDLDROP TABLE的元数据锁持有时间更短整体上对业务的影响也比“DELETE全表”要小得多。所以在大表清理这个场景下结论很明确如果是删一部分数据DELETE完全没问题如果是要清空一整张大表TRUNCATE的效率远高于DELETE也不会因为长事务把整个实例拖垮。这里分享一个真实对比。某次维护一张累计5000万行的流水日志表旧数据已经不需要了。刚开始有个同事图省事执行 DELETE FROM big_log结果跑了将近二十分钟期间CPU一直飙高binlog涨了好几个GB所有关联该表的业务查询都出现超时。后来把语句换成 TRUNCATE TABLE big_log一秒左右就执行完了表结构还在后续写入完全不受影响。这个量级的差距就是加班到半夜和正常下班的区别。3. 效率、空间释放和自增ID那些容易被忽略的细节3.1 为什么TRUNCATE比DELETE快那么多DELETE是逐行操作每删一行都要检查约束、维护二级索引、写undo日志、写binlog。当数据量到了一定规模这些开销会叠加得非常恐怖。TRUNCATE不一样。它的核心思路是“直接丢弃数据页”在InnoDB里相当于把原有的表数据文件扔了再按原结构重建一张空表。整个过程不逐行处理不需要写undobinlog里的记录也不是一行一条而是表级别的DDL记录。所以从机制上就决定了它比DELETE快好几个数量级。DROP就更直接了把表对象从数据字典里删掉数据文件如果没被引用空间就能立刻释放出来。我实测过一个典型案例一张约5000万行、带有两个二级索引的普通日志表三种操作的表现大致如下操作耗时对实例的影响DELETE FROM log_table约18分钟CPU持续高负载binlog增量数GB相关查询被阻塞TRUNCATE TABLE log_table约1秒短暂锁表业务基本无感知DROP TABLE log_table约1秒短暂锁表空间立即释放不过要说明一点这个数据不代表所有环境。耗时会受到机器配置、二级索引数量、是否开启binlog、MySQL版本等多种因素影响。但量级上的差距是真实存在且普遍的。如果你在大表上“DELETE全表”发现特别慢不要怀疑MySQL有问题这恰恰是它的正常表现。3.2 数据库空间到底释放了没有这个问题非常容易引发误解尤其是当你清理完数据后发现磁盘空间一点都没降下来。DELETE删除行后InnoDB并不会立刻把磁盘空间还给操作系统。它只是把行标记为“已删除”数据所占的物理空间仍然留在表空间文件里只是被标记为可复用。你跑完DELETE之后用 df -h 查看磁盘占用可能一点变化都没有。这不是BUG是InnoDB的回收机制就是这样设计的。想真正把碎片清理掉拿到那部分空间需要额外执行 OPTIMIZE TABLE 或者 ALTER TABLE ... ENGINEInnoDB 这类重建表的操作。但重建大表也有代价需要额外的临时磁盘空间在部分版本的在线DDL特性下还可能有锁等待风险。所以不能随手就重建要评估业务容忍度。TRUNCATE则不同。在独立表空间模式下现在的InnoDB默认每个表一个.ibd文件TRUNCATE会直接释放整张表占用的数据文件空间会被真正交还给操作系统。高水位线直接归零。DROP更彻底整个表文件都删了空间释放得干干净净。这里用游泳池来类比DELETE就像把池子里的水放掉一部分但池壁上的水痕还在你看着水痕以为还有水TRUNCATE就像把泳池彻底抽干再重新放水池壁干干净净DROP则是直接把泳池拆了什么都不剩。所以如果你跑完DELETE发现磁盘空间没变化不用慌张这是正常的。真正要注意的是碎片积累过多会导致后续INSERT和UPDATE性能下降该做OPTIMIZE的时候还是得做。3.3 自增ID到底会不会重置这个差异是开发中经常触发“灵异事件”的根源。先说结论操作自增ID是否重置DELETE全部行不会重置TRUNCATE重置为1DROP后重建表从1开始举个例子。有一张用户表自增ID已经涨到10000。你执行 DELETE FROM user; 把数据全清了再插入一条新记录它的ID会是多少不是1而是10001。如果业务代码里把ID默认值或展示逻辑写死了“从1开始”这里就会蹦出各种匪夷所思的问题。而TRUNCATE之后插入数据ID会重新从1开始。这个特性对“清空表并重新导入初始数据”的场景非常友好。但也意味着如果你之前有历史数据依赖这个ID做关联那TRUNCATE之后历史的关联关系就彻底对不上了。所以在“清数据并重置ID”这个需求下标准答案就是TRUNCATE而不是DELETE。不过这里还有一个隐藏坑如果这张表被其他表的外键引用TRUNCATE通常会直接报错提示无法执行。这种情况下要么先处理外键关系要么只能用DELETE。4. 权限、触发器、Binlog不常提但很重要的差异面4.1 权限体系里的要求不一样三类操作需要的权限分别是操作所需权限DELETE表的DELETE权限TRUNCATE表的DROP权限DROP表的DROP权限这里有很微妙的一点TRUNCATE在MySQL的权限体系里被归到了DROP权限而不是DELETE权限。也就是说一个账号即使拥有 DELETE、INSERT、UPDATE 等手上全部权限只要没有DROP权限执行 TRUNCATE 依然会报权限不足。在团队协作的场景里这个设计其实挺合理。从权限最小化的角度如果你希望某个同事能清空表数据但不能删除表那就给他DELETE权限就行如果希望他能做清空操作但不想让他DROP表那就要想清楚TRUNCATE到底要不要放权因为TRUNCATE和DROP在权限上其实是同级的。4.2 触发器的触发行为完全不同如果表上定义了触发器三者的差异就更明显了。DELETE是逐行删除所以每删一行都会触发对应的DELETE触发器。那意味着如果在表上建了一个AFTER DELETE的触发器做审计或级联操作DELETE会老老实实逐行触发。数据量大时触发器本身的逻辑也会放进循环里执行删除速度会更慢。TRUNCATE不会触发行级DELETE触发器。MySQL的实现方式不是先去逐行读数据而是直接重建表结构行级触发器根本来不及响应。有些数据库产品用DDL触发器来覆盖这类操作但MySQL里TRUNCATE对普通行级触发器来说就是“无感”的。DROP也一样不会触发表中的行级DML触发器。这一点非常容易忽略。我就见过一个系统在业务表上建了DELETE触发器用于同步删除另一张关联表的记录。后来运维为了清理数据执行了TRUNCATE结果关联表里的记录全变成了孤儿数据因为触发器压根没有触发。排查了半天最后才知道问题是出在TRUNCATE不触发行级触发器上。遇到这种需求要么接受触发器失效的事实要么改用DELETE虽然慢但至少能触发级联逻辑。4.3 Binlog里的记录形态也是不同的从同步和复制的角度来看DELETE会把每一行删除操作都写进binlog格式可能是ROW模式下的每条变更记录也可能是STATEMENT模式下的DELETE语句。不管哪种在从库或下游数据管道里数据量都非常可观。TRUNCATE在binlog里就是一条DDL语句不是一堆行级变更。执行完TRUNCATE之后从库也会执行同样的DDL速度很快同步链路不会因此产生大量延迟。DROP同样只记录一条DDL。这个差异在做数据同步、归档、CDC变更数据捕获时尤其重要。如果你的下游任务是监听行级变更来做增量同步TRUNCATE之后你大概率收不到任何行级事件可能需要额外的手段去处理“表被清空”这件事。5. 实际场景决策表到底该用哪个每次面试聊到这三个命令很多人都会背书一样列出区别但一落到具体场景就不知道怎么选了。这里我把日常开发、运维中常见的情况整理成一张决策参考表。场景推荐操作原因清理某时间点之前的部分数据DELETE可以精确控制删除范围且可以开事务保护清空整张表但表结构还要保留TRUNCATE速度快释放空间自增ID归零清空整张表且需要触发器生效DELETETRUNCATE不触发行级触发器表已经彻底不用了想删掉释放空间DROP连结构带数据一起删空间彻底回收清理超大表上亿行的全部数据TRUNCATEDELETE会拖垮实例TRUNCATE秒级完成要求删除后能回滚DELETETRUNCATE和DROP隐式提交无法回滚要求重置自增IDTRUNCATEDELETE不会重置AUTO_INCREMENT想删除数据但还要保留空间给后续复用DELETE空间不释放但可以复用表空间内部碎片再看一个很常见的“清空配置表”场景。很多系统会有一张config表里面存的是业务配置项。发布新版本时可能需要重置这些配置重置完之后希望清空表、ID从1开始同时表结构不能动。这种情况下最优解就是 TRUNCATE TABLE config。速度快、空间释放、自增归零一步到位。如果哪天你只是想让局部配置失效而不是全清那DELETE加上WHERE条件才是正确选择。还有一种典型场景是“清理分区表的某个分区”。比如按月分区的日志表要删除半年前的历史分区这个操作用ALTER TABLE DROP PARTITION而不是直接对分区内的数据DELETE。因为直接DELETE那一整月的几千万行数据和TRUNCATE一个分区比起来成本天差地别。这个虽然和标题里的DROP不是一回事但在实际运维中它比DROP TABLE更常见也更值得记住。6. 实操中遇到的坑与排查技巧6.1 误删之后到底怎么救如果已经误操作了怎么办先不要慌按优先级处理。如果是DELETE且没提交直接ROLLBACK。这是唯一一种“神仙操作”级别的后悔药。如果DELETE已经提交了能指望的就是备份和binlog。常规做法是找到删除时间点之前最后一次备份做恢复更精细一点用mysqlbinlog把删除开始前的binlog解析出来定位到事务开始位置把后续操作反向补偿回去。这个流程比较繁琐但不失为一种可行的数据找回方案。如果误执行了TRUNCATE或DROP事情就大条了。因为DDL语句是隐式提交的事务机制完全救不了它。这时候只能看备份策略是否覆盖到那一点。如果备份周期是每天一次那最多能恢复到最后一次备份时的状态中间产生的增量数据就丢了。如果启用了binlog可以配合备份做基于时间点的恢复PITR把数据恢复到TRUNCATE执行前的一瞬间。这也是为什么我给所有生产环境团队的第一条建议都是把binlog留着不管用不用得到关键时刻能续命。6.2 大表DELETE后主从延迟怎么处理有一次我们清理大表的历史数据DELETE了几百万行结果主库执行完不到一分钟从库却延迟了好几个小时。原因其实不复杂DELETE在从库也是逐行执行从库要重放binlog里的每一条变更执行时间和主库原本的时间差不多甚至因为从库压力大时间会更长。遇到这种情况我的处理方案是分批次删除而不是一口气把几百万行全删完。具体做法是在WHERE条件里加上主键范围或用LIMIT分批每批只删几万行间隔几秒再继续下一批。这样不会让主库长时间持有大量锁从库的延迟也会被控制在可接受范围内。写法大致是DELETE FROM big_log WHERE id 1000000 LIMIT 5000; -- 稍微停顿一下再继续下一批 DELETE FROM big_log WHERE id 1000000 AND id 2000000 LIMIT 5000;虽然看起来代码啰嗦但实际运维里这种“小口吃饭”的方式远比一次性梭哈要安全。另外提醒一点大表DELETE时如果需要建索引最好在数据清理之前把索引维护做好。因为DELETE每删一行都要同步更新二级索引索引越多删除越慢。如果能把多余索引临时去掉再清数据清完再重建索引整体时间可能会更快。6.3 开发环境里“习惯性TRUNCATE”带来的隐患很多人在本地开发环境喜欢用TRUNCATE来重置表数据图的是快。但这个习惯带到生产环境风险极大。TRUNCATE不仅不可回滚而且会直接重置自增ID。如果你的业务里有一些“看着像主键外键关联、实际上靠ID硬关联”的历史逻辑TRUNCATE之后新旧数据在ID上可能会冲突或者直接错乱。我见过最典型的一个情况是一张字典表业务上通过ID关联订单表里的type_id然后开发本地一重置就用TRUNCATE结果本地新插入的数据ID从1开始旧的订单数据关联的type_id已经被新ID覆盖了语义所有展示逻辑全部乱了。这类问题排查起来特别头大因为SQL本身没有报错只是数据语义变了。所以在开发和测试环境之间最好做到“环境隔离”本地随便TRUNCATE但开发和预发环境尽量用带WHERE条件的DELETE或者使用显式事务包裹。别小看这个习惯它能帮你躲过不少莫名其妙的线上事故。6.4 一个关于空间“假释放”的冷知识TRUNCATE释放空间这件事只针对独立表空间的InnoDB表。如果MySQL的innodb_file_per_table参数是OFF所有表的数据都放在共享的ibdata1文件里那TRUNCATE并不能把空间还给操作系统空间只是被标记为可复用。现在的MySQL 8.0默认开启独立表空间但如果你还在维护比较老的环境或者设置过共享表空间那一定要看清楚配置再做操作否则你会有一种“明明TRUNCATE了为什么磁盘空间没变”的错觉。6.5 外键约束下的奇怪报错TRUNCATE在某些情况下会报错提示“Cannot truncate a table referenced in a foreign key constraint”。这不是权限问题而是表被外键引用时MySQL不允许直接TRUNCATE。外键关联的情况下处理方案一般是先暂时禁用外键检查执行完再恢复但这个方法要谨慎使用尤其在生产环境关掉外键检查等于把数据完整性交给运气。具体操作方案是这样SET FOREIGN_KEY_CHECKS 0; TRUNCATE TABLE parent_table; SET FOREIGN_KEY_CHECKS 1;但请记住这只是一个临时规避手段。如果关联表里还有历史数据指向这张表TRUNCATE完之后那些外键引用就变成了悬空引用。多数情况下这种操作只适合在“确实要彻底清空并重新初始化”的场景里用。7. 我自己的一点实操体会这三个命令的区别说起来简单但真正理解透了能帮你少踩很多坑。我个人在实际操作中最深的体会是DELETE是“行级”操作适合精细删除可以靠事务保护TRUNCATE是“表级”重置工具适合快速清空且表结构保留的场景但别指望它能回滚DROP是终极毁灭工具使用前必须确认备份和业务影响因为它连后悔的余地都没有。很多人都喜欢在面试题里把这三者并列但真实工作里它们不是“平级选项”而是处于不同安全等级、不同性能量级、不同使用场景的工具。用DELETE能解决的部分数据清理千万别顺手改成TRUNCATE用TRUNCATE能快速搞定的清空表也千万别用DELETE硬顶那是拿系统性能开玩笑。最后分享一个小技巧无论使用哪个命令执行前先看一眼当前所在库名和表名再习惯性备份一下关键表。尤其在生产环境哪怕只是SELECT一下也能帮你避免很多因手误造成的惨剧。数据无价谨慎永远不嫌多。

相关新闻

IPD评审要素落地指南:DCP与TR硬门槛解析

IPD评审要素落地指南:DCP与TR硬门槛解析

简介:本资源是一份面向研发管理从业者、IPD流程实施顾问及医疗器械/高端制造企业项目管理人员的IPD集成产品开发评审要素实操指南,聚焦DCP决策评审与TR技术评审各阶段的关键查核点与交付物要求。文档系统梳理了从Phase0-1立项到TR6批量试制共12个核心评审…

2026/10/11 20:28:15 阅读更多 →
YOLOv5工地安全帽识别实战:从源码拆解到训练推理全流程

YOLOv5工地安全帽识别实战:从源码拆解到训练推理全流程

简介:本资源面向计算机视觉入门与进阶开发者,提供一套基于YOLOv5的工地安全监控实战项目,重点解决安全帽佩戴检测与禁入危险区域识别两类问题,适合希望掌握目标检测落地流程、积累项目经验的学生与工程师。压缩包共61个文件&#…

2026/10/11 20:27:15 阅读更多 →
TensorFlow+OpenCV实战:人脸识别与表情识别CNN全流程

TensorFlow+OpenCV实战:人脸识别与表情识别CNN全流程

简介:本资源面向计算机视觉入门与进阶开发者,提供一套基于TensorFlow与OpenCV的人脸识别与表情识别完整项目方案,可用于安全监控、人机交互等场景的学习与二次开发。项目围绕人脸检测、特征提取与七类基本表情分类展开,涉及MTCNN、…

2026/10/11 20:27:15 阅读更多 →

最新新闻

docker-alpine 的 rootfs 构建器(builder)全解析:mkimage-alpine.bash 选项与最小化镜像构建实战

docker-alpine 的 rootfs 构建器(builder)全解析:mkimage-alpine.bash 选项与最小化镜像构建实战

云原生运维 【免费下载链接】docker-alpine Alpine Linux Docker image. Win at minimalism! 项目地址: https://gitcode.com/gh_mirrors/do/docker-alpine 点击查看 免费下载 本篇技术指南围绕 docker-alpine 仓库中的 builder/README.md 展开,深入讲解…

2026/10/12 2:04:08 阅读更多 →
Nuclio Azure Event Hubs 触发器(eventhub trigger)实战指南:配置、认证与分区消费原理

Nuclio Azure Event Hubs 触发器(eventhub trigger)实战指南:配置、认证与分区消费原理

云原生后端微服务 【免费下载链接】nuclio High-Performance Serverless event and data processing platform 项目地址: https://gitcode.com/gh_mirrors/nu/nuclio 点击查看 免费下载 Nuclio 通过 eventhub 类型的触发器为函数提供从 Microsoft Azure Event Hubs…

2026/10/12 2:04:08 阅读更多 →
后EVM时代破局:从并行执行到模块化架构的性能安全博弈

后EVM时代破局:从并行执行到模块化架构的性能安全博弈

1. 打破“EVM最优解”的技术惯性:从共识层到执行层的再审视链上生态发展到现在,很少有一个话题能像“EVM之后往哪走”这样,让基础设施团队、应用开发者和安全审计机构同时感到焦虑。EVM作为智能合约的事实标准,支撑了绝大多数DeFi…

2026/10/12 2:04:08 阅读更多 →
Claude Code 接入 Google Search MCP 实现联网搜索

Claude Code 接入 Google Search MCP 实现联网搜索

最近在做项目时发现一个很现实的问题:Claude Code 在终端里确实很能打,但它是拿不到外部信息的。遇到一个新发布的库、一个报错里出现的陌生函数、或者不确定某个 API 当前版本是否还支持,就只能靠模型自己猜。于是我给 Claude Code 接上了 A…

2026/10/12 2:04:08 阅读更多 →
Claude Code接入MCP搜索:配置实战与踩坑指南

Claude Code接入MCP搜索:配置实战与踩坑指南

1. 项目背景与前置准备1.1 为什么要给 Claude Code 接一个“搜索外挂”用过 Claude Code 的朋友应该都有同感:它在代码生成、文件操作、多文件重构这些任务上确实能打,但一碰到“实时信息”就立刻露馅。比如问它某个框架的最新版本号、某个依赖当前几个月…

2026/10/12 2:04:08 阅读更多 →
JanusGraph 核心能力与存储后端选型:从超大规模图处理到 CAP 权衡

JanusGraph 核心能力与存储后端选型:从超大规模图处理到 CAP 权衡

图数据库分布式数据库后端 【免费下载链接】janusgraph JanusGraph: an open-source, distributed graph database 项目地址: https://gitcode.com/gh_mirrors/ja/janusgraph 点击查看 免费下载 导读:本文围绕 JanusGraph 官方文档《The Benefits of Ja…

2026/10/12 2:03:07 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →