MySQL逻辑架构详解:一条SQL的完整旅行路线
聊到数据库原理很多同学第一反应是先去啃索引结构、事务隔离级别这些硬核知识点但我带过不少新人之后发现先把MySQL的逻辑架构吃透后面看什么问题都顺。所谓逻辑架构说白了就是一条SQL从客户端出发到最终落盘返回结果中间要经过哪些模块、每个模块干什么活、相互之间怎么配合。搞清楚这条链路慢查询排查、参数调优、死锁分析、数据一致性理解全都变得有章可循而不是靠背结论。这篇文章我尽量不堆教科书概念而是用我实际排查问题时的视角把MySQL逻辑架构的每一层拆开讲清楚包括各层到底做了什么事、参数怎么配、常见的坑有哪些。内容偏原理但全部服务于实操适合刚接触MySQL的开发者也适合工作两三年但对执行流程只有模糊印象的同学。顺带会解释为什么很多优化方案在原理层就有依据而不是因为“别人都这么干”。1. 逻辑架构的整体视图一条SQL的“旅行路线”1.1 为什么要先从逻辑架构入手MySQL最先吸引人的往往是它的易用性装好、建库、写SQL、拿结果似乎不需要知道里面发生了什么。但一旦遇到性能抖动、锁等待、主从延迟、莫名其妙的数据不一致你要是不知道请求经过了哪些环节排查起来基本靠猜。逻辑架构的作用就是给出一条完整的“责任链”每一个环节对应哪些问题域连接建立不了、连接数打满 → 连接层的问题SQL写对了但跑得慢 → 服务层的解析、优化、执行环节的问题数据老丢、并发一高就死锁 → 引擎层的事务、日志、锁机制的问题磁盘占用异常、备份恢复困难 → 存储层与文件组织的问题。这个分层思路也和实际排障顺序完全一致先看能不能连上再看SQL本身最后才深入引擎内部和磁盘文件。架构理清了遇到问题就知道该往哪一层去查不会在错误的方向上浪费时间。1.2 四层结构一目了然网上有很多版本画MySQL架构图我个人比较习惯把它分成四层不必纠结命名关键是理解每层的职责边界层级核心职责主要模块/组件连接层管理客户端连接、认证、权限校验连接管理、连接池、认证模块服务层SQL处理、优化与执行调度解析器、预处理器、优化器、执行器、缓存/缓冲机制引擎层数据读写、事务、锁、日志与恢复InnoDB、MyISAM、Memory等存储引擎存储层数据与日志文件的实际落盘存储数据文件、索引文件、Redo Log、Undo Log、Binlog等文件连接层和服务层是老版本MySQL里Server层拆开来的两种叫法本质都是Server层范围内的事情引擎层则是采用插件式架构接进来的多个存储引擎最底下的存储层负责把内存里的数据变化持久化到磁盘。这种分层的最大好处是解耦Server层不关心数据怎么存引擎层不关心SQL怎么写。于是InnoDB崩溃恢复做得再好也不影响服务层的解析逻辑保持简单上层优化器只需要面向统一的存储引擎接口工作换来的是可插拔的引擎生态。理解这一层设计后面讲执行流程就顺理成章了。2. 连接层一切请求的入口2.1 连接管理与认证授权每次你在客户端执行mysql -uroot -p本质上就是在和MySQL建立一条TCP连接。连接层做的事情有三件握手与协议协商、身份认证、权限校验。协议协商包括字符集、压缩协议、SSL/TLS加密等认证则是核对用户名和密码权限校验并不只是登录时做一次而是在每条SQL执行前都要根据用户权限做检查。权限校验这一块特别容易踩坑有些同学发现某个账号能查A库但不能查B库第一反应是去改mysql.user表实际上应该用SHOW GRANTS FOR userhost;去看授权并用FLUSH PRIVILEGES;让内存中的权限表生效。权限校验发生在连接层和服务层之间但日常权限问题基本都在这个环节排查。连接层还有一个容易忽略的点连接的超时与断开重连机制。MySQL有wait_timeout和interactive_timeout两个参数控制空闲连接多久被服务端主动断开默认通常是8小时。应用侧的连接池如果没做空闲回收就可能出现“连接池里的连接早已失效但应用不知道等到发SQL时才发现连不上”的情况。处理方式不是简单把超时时间调大而是要让连接池配置合理的maxLifetime并开启连接有效性检测。2.2 连接池与参数调优MySQL服务端本身也有一个连接管理模块本质是一个线程池模型每个连接通常对应一个线程负责处理该连接上的请求。连接数一旦暴增线程切换开销会迅速成为瓶颈。几个关键参数max_connections最大连接数默认151。很多生产库一上来就调到1000甚至更高但连接数并不是越多越好每个连接都要占用内存且线程切换成本会指数级上升max_connect_errors同一主机连续连接失败超过该值会被直接阻塞back_log连接请求排队队列长度这个参数在突发高并发连接场景下很有用。实际经验是如果是Java应用数据库连接数建议控制在核心线程数 × 2 1这个量级附近而不是盲目开几百条连接真正需要的并发能力应该靠应用侧连接池自己管理而不是把压力全丢给数据库。连接层这一关都过不了后面的SQL优化做得再漂亮也白搭。表结构设计、索引优化这些都是在连接能稳定建立的前提下才有意义。3. 服务层SQL的“翻译官参谋长执行队长”3.1 解析器把人类意图变成机器能懂的结构一条SQL到了服务层第一步是解析。解析器负责把字符串拆成token做词法分析和语法分析最终生成一棵解析树。词法分析负责“认字”把SELECT、FROM、WHERE、表名、列名、常量各自识别出来语法分析负责“断句”检查你的SQL是否符合MySQL的语法规则。如果SQL写错这个阶段就会直接报错根本轮不到优化器。这里有一个和性能相关的点SQL文本千奇百怪但解析出来的结构差之千里。比如你在SQL里写WHERE DATE(create_time) 2024-01-01解析器能解析没问题但优化器面对这样的条件很可能没法走create_time上的索引。这属于优化器层的问题但根源上解析树里就已经留下了“无法直接利用索引”的伏笔。3.2 优化器看似智能的“顽固者”解析完成之后优化器登场。它的职责是把逻辑上等价的SQL执行方案里挑一个它认为成本最低的生成执行计划。这里的关键词是“它认为”因为优化器并不真的执行所有方案它靠的是统计信息和成本模型。统计信息主要来自information_schema.statistics比如表行数、索引基数、区分度。成本模型则综合考虑CPU成本、I/O成本、内存排序成本等。以MySQL 5.7/8.0中的cost model为例优化器会给全表扫描、索引扫描、随机读等操作估算一个相对成本值然后对比不同执行计划的总成本选出最小的那一个。为什么说它“顽固”因为它的判断依据不一定总符合你的直觉。最典型的就是明明有索引但SQL就是不走走了全表扫描。原因往往是优化器认为那张表数据量小回表成本比全表扫描还高或者统计信息过旧优化器误判了区分度。实操里有几种干预手段用ANALYZE TABLE更新统计信息调整innodb_stats_persistent相关参数让统计信息更准确在SQL里用FORCE INDEX强制走某个索引但这只能是最后的临时手段更靠谱的是改写SQL让条件满足索引使用的结构比如避免在索引列上做函数运算。优化器还负责决定多表连接的顺序MySQL会从小到大估算每张表的驱动顺序。两表连接顺序选反了可能性能差十倍多表关联顺序的优化在实践里几乎等同于“先查小表再关联大表”。执行计划里的id值、type字段、key字段都是此时留下的足迹。3.3 执行器按计划逐行干活执行计划定了执行器开始干活。执行器和我们想象的“黑盒执行”不同它更像是拿着计划书逐行从存储引擎取数、判断条件、过滤、返回结果。执行器每次从存储引擎拿到一行数据都会做一次条件判断。这意味着如果WHERE条件里面有一部分无法在索引层面完成过滤那么这些判断就会在服务层逐行执行。表面上看没什么但数据量大时这个“逐行”的过程就是CPU的隐形消耗。举个例子某条SQL需要扫描100万行但最终只返回10行。优化器选择了一个能把大部分过滤条件下推到索引层的方案执行器就轻松很多如果条件都留在执行层过滤那100万行就要在服务层全部过一遍差距就是几个数量级。执行器还负责权限校验以及更新结果集状态。很多写存储过程的同学会发现过程中创建的临时表和游标操作其实也是执行器在工作。4. 引擎层决定数据安全与读写效率的底层生态4.1 插件式架构的意义MySQL架构里最有历史特色的一点是存储引擎层的插件式设计。你在建表时可以用ENGINEInnoDB指定引擎新版本默认就是InnoDB。但这不代表引擎之间只是名字不同——它们的锁粒度、事务支持、崩溃恢复能力、物理存储格式都完全不同。插件式设计的价值在于Server层面向统一的存储引擎接口编程每个引擎只需实现对应的读写接口即可接入。这意味着你可以根据业务场景选择不同的引擎虽然实际生产环境中99%的场景用InnoDB就够了。4.2 InnoDB vs MyISAM 选择对比老项目里经常还能见到MyISAM表很多同学不清楚为什么新项目基本不用它。关键差异在三个维度事务InnoDB支持事务MyISAM不支持锁粒度InnoDB默认行锁MyISAM只能表锁崩溃恢复InnoDB通过Redo Log和双写缓冲保障崩溃安全MyISAM没有这种机制异常断电极易出现表损坏。行锁和表锁的区别打个比方行锁相当于图书馆里“只锁住你正在看的那一排书”别的读者还能看其他排表锁相当于把整个阅览室锁上谁都进不来。表锁并发写性能极差这也是为什么业务系统里MyISAM逐渐被淘汰。顺带提一个常见操作误区有人用ALTER TABLE ... ENGINEInnoDB在线改引擎以为只动元数据实际上它会重建整张表大表执行时表会短暂不可用如果表上千万行务必评估窗口期。4.3 Redo Log、Undo Log 与 Binlog 的分工引擎层最能体现MySQL可靠性设计的是三类日志的分工。很多一致性相关的面试题本质就是这三者之间的协调问题。日志产生位置作用落盘时机Redo LogInnoDB引擎层保证崩溃恢复时已提交事务不丢失物理重做事务提交时会刷盘Undo LogInnoDB引擎层记录事务修改前的数据用于回滚和MVCC快照读随事务写入用于回滚BinlogServer层记录所有变更操作用于主从复制、数据恢复事务提交前刷盘Redo Log是物理日志记录“哪个数据页被改成了什么样”它的存在是为了让数据修改可以先写内存buffer pool而不必每次提交都立刻刷脏页到磁盘因为随机写盘太慢。Undo Log则是逻辑日志记录“修改前的数据”崩溃回滚和多版本并发控制MVCC都靠它。Binlog是Server层的逻辑日志记录SQL语句或行变更信息主从复制就是基于Binlog的。这三者的关系在接下来讲UPDATE执行流程时最关键。5. 一次 SELECT 查询的完整旅程5.1 客户端连接与SQL发送把前面几层串起来从一次最简单的SELECT * FROM users WHERE id 100;开始走一遍流程。客户端通过连接层建立连接发送SQL文本。连接层完成认证和权限校验把SQL交给服务层。注意权限是“前置校验”但并不是唯一一次执行器在执行时还会做一次更细的权限检查。如果使用的是MySQL 5.7及之前版本还会先查查询缓存Query Cache命中了就直接返回不再进入解析器。但Query Cache的全局失效机制只要相关表有更新就全清在实际业务中往往弊大于利MySQL 8.0已经彻底移除了它这里不必再纠结。5.2 解析、预处理与执行计划生成SQL进入解析器生成解析树。预处理器负责进一步的合法性检查表存在吗列存在吗有没有权限这里埋了一个特别常见的坑SELECT *在解析器阶段不会展开成具体列名但预处理器阶段会根据表的定义展开。如果表结构经常变更SELECT *扩展出来的列也会跟着变这既是隐式风险也是性能隐患。优化器随后登场。它会尝试各种访问路径主键等值查询最优路径是const或eq_ref非主键索引等值查询可能走ref范围查询走range没有索引可用则走ALL全表扫描当索引覆盖所有查询列时走index覆盖扫描避免回表。对于WHERE id 100优化器会看到主键索引的区分度极高估算成本后走主键等值查找复杂度约为 B树的高度通常是2到4层也就是几次磁盘I/O就能定位到行。5.3 执行器如何调用存储引擎执行器拿到优化器选定的执行计划开始逐条调用存储引擎接口。对主键等值查询来说引擎层直接通过B树定位到叶子节点的记录返回给执行器。执行器再做一层过滤和返回处理最终把结果集返回客户端。这里有个多数人不注意的细节即使优化器选择了索引MySQL仍然需要对索引命中的每条记录做“是否满足其他非索引条件”的判断。执行器的过滤条件是逐步叠加的返回的行数越多服务层的判断成本越高。这也是为什么每次聊优化都建议“减少最终扫描行数”而不只是“建个索引”就完事。如果查询涉及多表关联执行器还会决定先查哪张表、用什么连接算法。MySQL 8.0里常见的算法是Nested Loop Join和Hash Join用于等值关联且无索引的场景。观察执行计划里的Extra列出现Using index condition代表索引条件下推已被使用出现Using temporary; Using filesort则要警惕临时表和文件排序的消耗。6. 一次 UPDATE 的底层真相日志先行与两阶段提交6.1 缓冲池中的“脏页”玩法SELECT只涉及读UPDATE则是读写混合流程复杂得多。以UPDATE users SET namenew_name WHERE id100;为例引擎层先把id100对应的数据页从磁盘读入缓冲池Buffer Pool如果内存里已有就直接用。然后对这块内存里的数据页进行修改这个被修改但尚未刷回磁盘的页就叫“脏页”。这里的关键问题是事务还没提交内存里的数据已经变了万一崩溃内存数据直接丢掉怎么办所以有了“日志先行”Write-Ahead Logging的设计在修改数据页之前先把修改记录写入Redo Log Buffer事务提交时再把Redo Log刷到磁盘。只要Redo Log在磁盘上落稳了即使数据页没来得及写回磁盘崩溃恢复时也能通过Redo Log重放把数据页恢复成已提交事务的状态。UPDATE同时还要写Undo Log记录修改前的旧值。这样如果事务回滚可以顺着Undo Log把数据恢复原样同时其他并发事务做快照读时也靠Undo Log构建旧的版本链。6.2 Redo Log与Binlog的两阶段提交为什么需要两阶段提交因为Redo Log在引擎层Binlog在Server层两边各自独立写盘如果没有协调机制要么出现“引擎层数据恢复了但Binlog没记录”要么出现“Binlog记录了但引擎层没有这个提交”主从复制和崩溃恢复就会对不上。两阶段提交的流程简化如下引擎层写入Redo Log状态标记为prepareServer层写入Binlog并完成Binlog的刷盘引擎层再把Redo Log状态更新为commit。第一阶段的prepare让Redo Log先落盘但不算正式提交第二步的Binlog落盘则是主从复制的关键Binlog没写成功整个事务就不能提交第三步把Redo Log标记成commit事务才真正完成。整个过程保证了如果崩溃发生在这个流程中间恢复时能用Binlog和Redo Log相互核对不会出现“一个成功了另一个没成功”的悬挂状态。这个机制最直接的影响就是sync_binlog和innodb_flush_log_at_trx_commit两个参数的配合策略。安全优先的配置是两者都设置为1每个事务提交时都强制刷盘性能会有所牺牲追求性能的场景可以适当放宽但数据安全与性能之间的取舍必须自己心里有数。6.3 崩溃恢复为什么不会丢数据很多同学担心每次提交都写Redo Log是不是太慢了为什么不能直接变一次数据就写一次磁盘答案在于Redo Log是顺序写而数据页落盘是随机写。顺序写比随机写快一到两个数量级。所以InnoDB的设计是事务提交时只要Redo Log顺序写成功事务就算提交成功数据页是否立刻回盘无所谓等累积到足够量或者合理时机后台线程再把脏页批量刷回磁盘。MySQL 8.0中innodb_flush_log_at_trx_commit1意味着每次提交都刷Redo Log0或2则把刷盘时机延后换取更高吞吐量。对应地sync_binlog1也要求Binlog每次提交都刷盘。两个参数都设为1才能做到最严格的不丢数据。但这里有一个我实际踩过的坑曾为了压测性能把两个参数都调成0结果某次应用重启后出现了少量已提交事务丢失。问题根源不是MySQL本身坏了而是我人为放宽了持久化保证。生产环境业务没有强一致要求的时候可以优化但只要涉及支付、订单这类核心数据强烈建议双1配置。7. 常见问题与排查技巧实录7.1 连接数被打满现象是客户端报Too many connections。排查时先看SHOW STATUS LIKE Threads_connected对比max_connections。多数情况下不是真的需要那么多连接而是应用连接池配置过大、或者存在慢SQL导致连接占用时间过长。应对思路是分级处理先让DBA把连接数临时调宽应急再用SHOW PROCESSLIST抓出长期不释放的连接分析它们是在锁等待还是慢查询最后回到应用侧优化连接池参数。单纯把max_connections翻倍属于治标不治本。7.2 慢查询定位打开慢查询日志是第一步但更重要的是知道哪些SQL是真慢、哪些只是偶发。建议日志里同时记录没有走索引的查询比如开启log_queries_not_using_indexes。拿到慢SQL后第一件事是EXPLAIN看执行计划重点看type、key、rows、Extra四列。实际经验里慢查询最常见的原因不是“表数据量太大”而是“扫描行数太多但返回行数太少”本质是索引用不上或选择错误。比如对状态字段做WHERE status1状态区分度很低优化器判断走索引还要大量回表不如直接扫全表这就是为什么你以为建了索引却依然全表扫描。7.3 索引失效的典型原因在索引列上做函数运算如WHERE YEAR(create_time)2024隐式类型转换如字符串列用数字匹配模糊查询LIKE %xxx前缀没有确定值联合索引没有遵循最左前缀原则优化器判断全表扫描更快区分度太低。还有个隐蔽场景字符集不一致导致关联查询无法用索引。两张表关联字段一个是utf8mb4一个是latin1虽然写SQL时看不出问题但执行时会做隐式转换索引直接失效。排查的时候可以SHOW CREATE TABLE对比表与字段的字符集。7.4 排查时我用过的工具命令SHOW ENGINE INNODB STATUS \G看锁等待、事务状态、缓冲池命中率information_schema.innodb_trx、innodb_lock_waits查当前事务与锁等待关系perf或pt-query-digest慢日志归档分析、统计SQL模式sys.schema_unused_indexes查未被使用的索引帮助降冗余索引。我最常用的组合是SHOW FULL PROCESSLIST先定位“卡住”的会话再用EXPLAIN ANALYZE8.0.18看每一步实际执行时间和行数会比传统EXPLAIN直观得多。8. 实操心得与监控建议8.1 监控核心状态变量监控MySQL本质上就是监控逻辑架构每一层的关键指标监控项对应层级常见问题Threads_connected连接层连接数暴涨、泄漏连接QPS / TPS服务层容量评估、热点问题Slow_queries服务层慢SQL频繁触发Innodb_buffer_pool_read_requests / reads引擎层缓冲池命中率低磁盘读放大Innodb_rows_read引擎层扫描行数异常高Copied_to_tmp_tables服务层/引擎层临时表使用过多缓冲池命中率是重点之一。命中率长期低于95%优先看innodb_buffer_pool_size是不是配太小了或者SQL扫描行数太大把热数据挤出了缓冲池。内存充足的机器上把缓冲池配到物理内存的60%70%是常见做法但要留出其他进程的内存余量。8.2 我给新同学的建议逻辑架构这块知识不是看一遍就能内化的我建议养成下面几个习惯凡是遇到性能问题先问“这个问题发生在哪一层”拿到一条慢SQL不要急着加索引先EXPLAIN看执行计划理解优化器的选择做参数调整时一次只改一个参数并记录改动前后的状态指标自建环境里故意制造一次故障比如kill -9模拟崩溃再重启看恢复过程对Redo Log和Binlog的理解会深入很多。最后说一个我自己早期吃亏的经验调优时最容易忽略的就是“分层考虑”这四个字。曾经有个同事因为某条SQL慢在服务层反复折腾SQL写法结果真正问题出在连接层的连接池打满SQL排队等待执行。如果一开始就按架构分层排查十几分钟就能定位到根因根本不用改一行SQL。我不止一次说过MySQL原理学到后面你会发现所谓高级技巧其实都是在给逻辑架构里某个环节“减压”架构脉络在脑子里清晰了你就不会在排查问题时迷路。

相关新闻

云智变AI官网课程论文撰写功能实测:当AI不再“贴皮”,而是替你“搭骨架”

云智变AI官网课程论文撰写功能实测:当AI不再“贴皮”,而是替你“搭骨架”

先说一个反常识的判断 你在网上搜“AI写课程论文”,看到的大多数推荐,其实回答的是另一个问题——“哪个AI聊天机器人好用”。把摘要丢给ChatGPT,说“帮我扩写成三千字”,它确实能写出来,读起来也挺像那么回事。但交给…

2026/10/11 3:07:23 阅读更多 →
MySQL内置函数实战指南:从字符串到窗口函数避开性能坑

MySQL内置函数实战指南:从字符串到窗口函数避开性能坑

干我们这行的,写SQL就像写字一样,MySQL内置函数就是最常用的那套笔画。别小看这几十个函数,用得好,原来要写十几行业务逻辑的查询,一行就能解决;用得不好,线上慢查询一抓一大把,报表…

2026/10/11 3:07:23 阅读更多 →
数据库B+树实现指南:从页面结构到并发控制

数据库B+树实现指南:从页面结构到并发控制

这个项目我当年做的时候连续肝了几天,中间被并发和边界条件来回折磨,最后跑通所有测试那一刻还是很有成就感的。准备这期内容的时候,我又把之前踩过的坑和从代码层面梳理过的思路重新过了一遍,结合常见的作业版本整理成一篇适合照…

2026/10/11 3:07:23 阅读更多 →

最新新闻

开源吐槽大会:开发者从项目吐槽中学到的避坑与成长之道

开源吐槽大会:开发者从项目吐槽中学到的避坑与成长之道

1. 这个标题是怎么“火”起来的:开源吐槽大会的由来与定位如果你混迹开发者社区有一阵子,大概率见过这类帖子:“某某开源项目到底能不能用”“维护者又跑路了”“README吹得天花乱坠,一跑就崩”。这些帖子往往评论区最热闹&#x…

2026/10/11 3:57:53 阅读更多 →
OpenCV实时目标分割:轻量级编解码与边缘掩模优化实战

OpenCV实时目标分割:轻量级编解码与边缘掩模优化实战

/* 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 3:57:53 阅读更多 →
绝缘子自爆数据集XML标签转YOLO格式实战与训练避坑指南

绝缘子自爆数据集XML标签转YOLO格式实战与训练避坑指南

简介:面向智慧电网绝缘子缺陷检测任务,这份瓷质绝缘子自爆数据集包含600张由无人机航拍的高清图片(1200600像素),并配套600个XML标签文件,共1200个文件,压缩包整体约54.91MB。图片按训练集、验证…

2026/10/11 3:57:53 阅读更多 →
资深开发者不看补全速度,看AI插件能不能真的“接得住“任务:用TaoToken统一Key验证多任务并行下的代码可控性

资深开发者不看补全速度,看AI插件能不能真的“接得住“任务:用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 3:57:53 阅读更多 →
数据可视化工具怎么选?四大分类与实战场景全解析

数据可视化工具怎么选?四大分类与实战场景全解析

说到数据可视化工具,很多人的第一反应就是“用Excel拉个图表”“用某在线平台套个模板”。但实际做过数据项目的人都知道,工具选型这件事,远没有看起来那么简单。我从做可视化项目的第一天起,就一直被工具的问题反复折腾——不是功…

2026/10/11 3:57:53 阅读更多 →
车端数据怎么保证不被篡改可被取证:安当CAS事件签名存证实践

车端数据怎么保证不被篡改可被取证:安当CAS事件签名存证实践

一、为什么车端数据需要"可验证"而不是"可信" 在传统汽车电子架构里,行车数据(车速、制动、转向、油门开度、故障码)和事件日志(碰撞、远程诊断接入、固件更新)大多只保存在本地 ECU 的存储区&…

2026/10/11 3:56:53 阅读更多 →

日新闻

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

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

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

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

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

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

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

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

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

2026/10/11 0:00:27 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 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/10 5:23:50 阅读更多 →
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/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练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/10 10:38:42 阅读更多 →