MySQL索引原理与优化实战指南
1. 为什么需要索引从全表扫描到精准定位想象一下你在一个没有目录的图书馆里找一本书。管理员告诉你这里的书是按入库时间堆放的你要找《高性能MySQL》那就从第一排书架开始挨个翻吧。这种场景就是数据库中的全表扫描Full Table Scan。当你的用户表有50万行数据时执行SELECT * FROM users WHERE username张三就会触发这种低效操作。索引的本质是预排序的数据结构。以最常见的B树索引为例它就像图书馆的图书目录系统所有书名按字母顺序排列每个条目记录着书名和对应的书架位置查找时直接定位到字母G区域再细查到高性能MySQL实测对比基于100万行的用户表-- 无索引时 SELECT * FROM users WHERE emailuser123example.com; -- 执行时间: 1.2秒 -- 创建索引后 CREATE INDEX idx_email ON users(email); SELECT * FROM users WHERE emailuser123example.com; -- 执行时间: 0.003秒关键理解索引不是为加速查询而生而是为了避免全表扫描。就像你不能因为有了图书馆目录就宣称加速了找书过程目录的真正价值是让你不用翻遍整个图书馆。2. B树索引的物理实现细节2.1 InnoDB的索引组织方式InnoDB存储引擎采用**索引组织表IOT**设计这意味着表数据本身就是按主键顺序存储的B树。理解这一点至关重要主键索引聚簇索引的叶子节点存储完整的行数据二级索引的叶子节点存储主键值而非物理地址每次通过二级索引查询都需要回表回到主键索引查找完整数据(图示主键索引与二级索引的关系)2.2 页Page的基本单位InnoDB中所有数据存取都以16KB的页为单位每个B树节点对应一个物理页页内通过槽位数组Slot Array管理记录页分裂是影响写入性能的主要因素通过SHOW ENGINE INNODB STATUS可以观察到页分裂情况BUFFER POOL AND MEMORY ---------------------- Pages made young 1246, not young 0 0.00 youngs/s, 0.00 non-youngs/s Pages read 5321, created 1246, written 20832.3 索引的高度与性能一个千万级表的B树索引通常只有3-4层假设每页可存1000条记录指针3层B树可管理1000 × 1000 × 1000 10亿条记录因此大部分查询只需3次I/O即可定位数据计算索引高度的公式树高度 ⌈log_N(记录数)⌉ 1 其中N是单个页能存储的键值数量3. 索引类型全景解析3.1 按功能分类索引类型创建语法适用场景限制条件普通索引INDEX idx_name (col)常规查询条件无特殊限制唯一索引UNIQUE INDEX (col)需要强制唯一性的列不允许重复值主键索引PRIMARY KEY (col)行唯一标识不允许NULL且必须唯一全文索引FULLTEXT INDEX (col)文本内容搜索仅MyISAM/InnoDB(5.6)空间索引SPATIAL INDEX (col)地理空间数据仅MyISAM/支持空间数据类型3.2 按数据结构分类B树索引默认索引类型适合范围查询支持, , , BETWEEN, LIKE prefix%等操作InnoDB中实际使用的变种B树带链接指针哈希索引Memory引擎默认索引精确匹配O(1)时间复杂度不支持范围查询不保证排序InnoDB的自适应哈希索引AHI是内部优化机制R-Tree索引专为空间数据设计支持MBRContains()等空间函数使用场景有限3.3 特殊索引类型覆盖索引Covering Index-- 创建组合索引 CREATE INDEX idx_covering ON users(department, name, hire_date); -- 查询可以被索引完全覆盖 EXPLAIN SELECT department, name FROM users WHERE department Engineering;Extra列显示Using index即表示使用了覆盖索引前缀索引-- 对长文本列前20字符建立索引 CREATE INDEX idx_name_prefix ON users(name(20)); -- 计算合适的前缀长度 SELECT COUNT(DISTINCT LEFT(name,10))/COUNT(*) AS selectivity10, COUNT(DISTINCT LEFT(name,20))/COUNT(*) AS selectivity20 FROM users;选择性(selectivity)越接近1越好4. 索引优化实战策略4.1 索引选择原则三星索引评价标准一星WHERE条件涉及的列都在索引中快速定位二星ORDER BY子句与索引顺序一致避免排序三星SELECT的列被索引完全覆盖避免回表索引选择实战案例-- 查询查找某部门某时间段入职的员工 SELECT id, name FROM employees WHERE department Sales AND hire_date BETWEEN 2020-01-01 AND 2022-12-31 ORDER BY hire_date DESC; -- 最优索引方案 CREATE INDEX idx_dep_hire ON employees(department, hire_date, name, id);该索引同时满足三星标准4.2 索引失效的典型场景隐式类型转换-- phone是varchar类型但用数字查询 SELECT * FROM users WHERE phone 13800138000; -- 解决方案保持类型一致 SELECT * FROM users WHERE phone 13800138000;函数操作索引列-- 对索引列使用函数 SELECT * FROM orders WHERE YEAR(order_date) 2023; -- 优化方案使用范围查询 SELECT * FROM orders WHERE order_date BETWEEN 2023-01-01 AND 2023-12-31;前导通配符LIKE-- 无法使用索引的LIKE SELECT * FROM products WHERE name LIKE %apple%; -- 有限解决方案使用全文索引 CREATE FULLTEXT INDEX idx_ft_name ON products(name); SELECT * FROM products WHERE MATCH(name) AGAINST(apple IN BOOLEAN MODE);4.3 索引维护与监控索引统计信息更新-- 手动更新统计信息 ANALYZE TABLE users; -- 查看索引使用情况 SELECT * FROM sys.schema_index_statistics WHERE table_schema mydb;识别冗余索引-- 使用pt-index-usage工具分析 pt-index-usage /var/lib/mysql/mysql-slow.log -- 或通过performance_schema查询 SELECT * FROM performance_schema.table_io_waits_summary_by_index_usage WHERE index_name IS NOT NULL ORDER BY count_star DESC;索引碎片整理-- 查看碎片率 SELECT table_name, index_name, ROUND(stat_value * innodb_page_size / 1024 / 1024, 2) AS size_mb, stat_description FROM mysql.innodb_index_stats WHERE stat_name size AND database_name mydb; -- 优化表重建索引 OPTIMIZE TABLE orders;5. 高级索引技术解析5.1 索引条件下推ICPMySQL 5.6引入的优化技术允许在存储引擎层过滤数据-- 启用ICP默认开启 SET optimizer_switchindex_condition_pushdownon; -- 示例查询 EXPLAIN SELECT * FROM employees WHERE last_name LIKE Smith% AND salary 8000;Extra列显示Using index condition即表示使用了ICP5.2 多范围读MRR优化随机I/O为顺序I/O的技术-- 启用MRR SET optimizer_switchmrron; SET optimizer_switchmrr_cost_basedoff; -- 查看效果 EXPLAIN SELECT * FROM employees WHERE department_id IN (10,20,30);Extra列显示Using MRR5.3 索引合并优化当WHERE条件包含多个索引时可能的优化策略Index Merge Intersection-- 两个独立条件的AND组合 EXPLAIN SELECT * FROM users WHERE account_id 100 AND register_time 2023-01-01;Extra列显示Using intersect(idx_account,idx_register)Index Merge Union-- 两个独立条件的OR组合 EXPLAIN SELECT * FROM users WHERE status active OR is_vip 1;Extra列显示Using union(idx_status,idx_vip)6. 生产环境索引管理经验6.1 索引设计工作流收集查询模式启用慢查询日志使用pt-query-digest分析关注执行频率高、性能差的查询验证索引有效性-- 使用EXPLAIN验证 EXPLAIN FORMATJSON SELECT * FROM orders WHERE user_id 100 AND status paid; -- 或使用优化器跟踪 SET optimizer_traceenabledon; SELECT * FROM orders WHERE user_id 100; SELECT * FROM information_schema.optimizer_trace;A/B测试性能影响-- 创建测试索引 CREATE INDEX idx_test ON orders(user_id, status); -- 对比测试 SELECT BENCHMARK(1000000, (SELECT COUNT(*) FROM orders WHERE user_id 100 AND status paid)); -- 清理测试索引 DROP INDEX idx_test ON orders;6.2 索引监控告警建议监控的关键指标索引使用频率避免无用索引索引大小增长趋势索引碎片率30%应考虑重建索引查询效率扫描行数/返回行数比示例Zabbix监控项UserParametermysql.index_usage[*], mysql -NBe SELECT COUNT_STAR FROM performance_schema.table_io_waits_summary_by_index_usage WHERE OBJECT_SCHEMA$1 AND OBJECT_NAME$2 AND INDEX_NAME$36.3 索引变更管理安全添加索引的步骤在从库测试索引效果使用ALGORITHMINPLACE在线创建低峰期执行监控线程阻塞设置lock_wait_timeout避免长时间锁等待大表索引创建技巧-- 使用pt-online-schema-change工具 pt-online-schema-change --alter ADD INDEX idx_email (email) Dmydb,tusers -- 或分阶段创建MySQL 8.0 SET GLOBAL innodb_parallel_read_threads 16; CREATE INDEX idx_email ON users(email) ALGORITHMINPLACE LOCKSHARED;7. 索引与事务的交互影响7.1 事务隔离级别的影响不同隔离级别下的索引使用差异隔离级别可能影响的索引操作解决方案READ COMMITTED可能使用更保守的索引范围扫描适当调整优化器开关REPEATABLE READ间隙锁导致索引范围扩大精确控制查询条件范围SERIALIZABLE可能退化为全表扫描仅在必要时使用该隔离级别7.2 索引与锁的关联InnoDB的锁机制高度依赖索引无索引查询会锁全表通过索引查询只锁定必要的行唯一索引能优化锁范围演示案例-- 会话1 BEGIN; SELECT * FROM users WHERE age 30 FOR UPDATE; -- 会话2被阻塞 INSERT INTO users(name, age) VALUES (New, 35); -- 查看锁情况 SELECT * FROM performance_schema.data_locks;7.3 索引对MVCC的影响多版本并发控制(MVCC)与索引的关系二级索引不直接存储回滚指针通过主键查找历史版本索引列更新可能导致回表操作增加优化建议避免频繁更新索引列大事务中减少索引扫描范围合理设置innodb_undo_log_truncate8. MySQL 8.0索引新特性8.1 倒序索引Descending Indexes-- 创建倒序索引 CREATE INDEX idx_created_desc ON orders(created_at DESC); -- 在混合排序查询中特别有效 EXPLAIN SELECT * FROM orders WHERE user_id 100 ORDER BY created_at DESC, amount ASC;注意8.0前DESC修饰符会被忽略8.2 函数索引Functional Indexes-- 创建基于函数的索引 CREATE INDEX idx_name_lower ON users((LOWER(name))); -- 查询自动匹配 EXPLAIN SELECT * FROM users WHERE LOWER(name) john doe;8.3 隐藏索引Invisible Indexes-- 创建隐藏索引优化器忽略 CREATE INDEX idx_test ON orders(product_id) INVISIBLE; -- 临时启用测试 SET SESSION optimizer_switchuse_invisible_indexeson; EXPLAIN SELECT * FROM orders WHERE product_id 100; SET SESSION optimizer_switchuse_invisible_indexesoff;8.4 索引跳跃扫描Index Skip Scan-- 对低区分度前列的复合索引优化 CREATE INDEX idx_gender_city ON employees(gender, city); -- 即使不指定gender也能使用索引 EXPLAIN SELECT * FROM employees WHERE city New York;Extra列显示Using index for skip scan9. 分布式环境下的索引挑战9.1 主从复制中的索引差异常见问题场景主库有索引但从库没有索引在不同副本上的统计信息不同复制延迟导致索引使用不一致解决方案-- 使用pt-table-checksum验证一致性 pt-table-checksum --replicatepercona.checksums hmaster,ucheck_user -- 在从库上控制索引使用 SET use_slave_index 0; SELECT /* SET_VAR(use_slave_index1) */ * FROM large_table;9.2 分库分表下的索引策略全局索引表方案-- 全局索引表结构 CREATE TABLE global_idx_user_email ( email VARCHAR(255) PRIMARY KEY, shard_id TINYINT NOT NULL, user_id BIGINT NOT NULL ); -- 查询路由 SELECT shard_id, user_id FROM global_idx_user_email WHERE email userexample.com; -- 然后到对应分片查询详情本地索引广播表方案-- 每个分片维护自己的索引 CREATE INDEX idx_local_email ON users_%{shard}(email); -- 通过中间件合并结果9.3 云原生数据库的索引优化AWS RDS/Aurora优化建议利用Performance Insights识别索引问题使用Aurora的快速DDL特性减少索引维护影响监控Read IOPS判断索引效率阿里云PolarDB注意事项共享存储架构下的索引更新开销只读节点上的索引统计信息同步利用Hash Join优化替代部分索引需求10. 索引设计思维训练10.1 时间序列数据索引电商订单表索引设计案例-- 基础表结构 CREATE TABLE orders ( id BIGINT PRIMARY KEY, user_id BIGINT NOT NULL, order_date DATETIME NOT NULL, status ENUM(pending,paid,shipped,completed) NOT NULL, amount DECIMAL(10,2) NOT NULL ); -- 推荐索引方案 ALTER TABLE orders ADD INDEX idx_user_status_date (user_id, status, order_date); ALTER TABLE orders ADD INDEX idx_date_status (order_date, status);10.2 多租户SaaS应用索引租户隔离场景设计-- 包含tenant_id的复合索引 CREATE INDEX idx_tenant_product ON products(tenant_id, product_code); -- 分区表本地索引 CREATE TABLE events ( id BIGINT, tenant_id INT, event_time DATETIME, PRIMARY KEY (tenant_id, id) ) PARTITION BY HASH(tenant_id) PARTITIONS 16; CREATE INDEX idx_event_time ON events(event_time) LOCAL;10.3 JSON数据类型索引MySQL 8.0的JSON索引实践-- 创建JSON列索引 CREATE TABLE product_catalog ( id BIGINT PRIMARY KEY, attributes JSON, INDEX idx_attributes_price ((CAST(attributes-$.price AS DECIMAL(10,2)))) ); -- 多值索引Multi-Valued Index CREATE INDEX idx_tags ON product_catalog( (CAST(JSON_EXTRACT(attributes, $.tags[*]) AS CHAR(32) ARRAY)) );11. 索引性能基准测试方法论11.1 测试环境设计推荐测试工具组合sysbench基础负载测试TPC-C事务处理测试自定义脚本模拟真实查询模式关键监控指标# 使用Percona PMM监控 pmm-admin add mysql --usernamepmm --passwordxxx --query-sourceperfschema11.2 测试用例设计典型测试场景索引对SELECT查询的加速效果索引对INSERT/DELETE/UPDATE的开销影响并发访问下的索引锁竞争索引维护操作REBUILD/OPTIMIZE的资源消耗11.3 结果分析方法使用R语言进行统计分析library(ggplot2) data - read.csv(index_benchmark.csv) ggplot(data, aes(xindex_type, yquery_time)) geom_boxplot() labs(title不同索引类型的查询性能分布)12. 索引相关参数调优12.1 内存相关参数# InnoDB缓冲池大小建议物理内存的50-75% innodb_buffer_pool_size 12G # 索引统计信息采样页数 innodb_stats_persistent_sample_pages 20 # 自适应哈希索引开关 innodb_adaptive_hash_index ON12.2 优化器相关参数-- 控制索引下推 SET optimizer_switchindex_condition_pushdownon; -- 范围优化设置 SET optimizer_switchrange_optimizer_max_mem_size8388608; -- 索引合并控制 SET optimizer_switchindex_mergeon; SET optimizer_switchindex_merge_intersectionon;12.3 持久化统计信息-- 启用持久化统计 SET GLOBAL innodb_stats_persistentON; -- 设置自动更新阈值 SET GLOBAL innodb_stats_auto_recalcON; SET GLOBAL innodb_stats_persistent_sample_pages20; -- 手动更新统计信息 ANALYZE TABLE orders;13. 索引与存储引擎的协同13.1 InnoDB索引特性聚簇索引结构自适应哈希索引AHI变更缓冲区Change Buffer页压缩对索引的影响13.2 MyISAM索引特点非聚簇索引结构键缓存Key Cache配置全文索引实现差异压缩表与索引关系13.3 内存引擎索引机制哈希索引的精确匹配优势临时表索引选择策略内存限制与索引大小14. 索引与查询重写优化14.1 查询重写技巧-- 原始低效查询 SELECT * FROM products WHERE price 100 OR category_id 5; -- 优化为UNION ALL SELECT * FROM products WHERE price 100 UNION ALL SELECT * FROM products WHERE category_id 5 AND price 100;14.2 使用物化视图MySQL 8.0方案-- 创建物化视图 CREATE TABLE mv_product_stats ( category_id INT PRIMARY KEY, avg_price DECIMAL(10,2), INDEX idx_avg_price (avg_price) ) ENGINEInnoDB; -- 定期刷新 REPLACE INTO mv_product_stats SELECT category_id, AVG(price) FROM products GROUP BY category_id;14.3 利用衍生表优化-- 优化复杂JOIN查询 SELECT t1.* FROM main_table t1 JOIN ( SELECT DISTINCT user_id FROM behavior_log WHERE event_time NOW() - INTERVAL 7 DAY ) t2 ON t1.user_id t2.user_id;15. 未来索引技术展望15.1 机器学习索引自动索引推荐系统查询模式预测索引动态索引调整机制15.2 异构硬件加速持久内存PMEM索引GPU加速索引扫描智能网卡卸载索引操作15.3 分布式索引演进全局索引一致性协议基于RAFT的索引同步多模数据库的跨引擎索引索引设计是一门需要持续学习的艺术。在实际工作中我经常发现教科书上的完美索引方案往往需要根据真实业务场景调整。记住没有放之四海皆准的索引规则只有最适合当前业务需求的索引策略。每次索引变更后务必进行充分的性能测试和监控确保变更带来的是真正的性能提升而非潜在风险。

相关新闻

建设网站需要的软件:从零基础到独立搭建,揭秘那些让你少走弯路的必备工具与避坑指南

建设网站需要的软件:从零基础到独立搭建,揭秘那些让你少走弯路的必备工具与避坑指南

在这个人人都有机会成为“创作者”的时代,拥有一个属于自己的网站,不再仅仅是程序员或技术大牛的专属特权。无论是为了展示个人作品集、搭建小型电商店铺,还是为了运营一个垂直领域的博客,网站都是你在互联网上最稳固的“数字地产”。然而,当真正开始着手准备时,很多人往…

2026/10/7 7:55:34 阅读更多 →
山东网站建设公司哪家专业

山东网站建设公司哪家专业

在这个互联网普及率几乎达到100%的时代,如果你还觉得拥有一个网站只是“锦上添花”的事情,那可能真的有点跟不上节奏了。尤其是对于咱们山东的企业老板们来说,以前做生意靠的是人情世故、靠的是线下口碑,但现在,客户在下单之前,第一件事往往是打开搜索引擎,搜一下你的公…

2026/9/25 23:07:13 阅读更多 →
网站建设宣传册:让品牌在数字时代真正“活”起来,不仅仅是做个页面那么简单

网站建设宣传册:让品牌在数字时代真正“活”起来,不仅仅是做个页面那么简单

咱们今天不聊那些虚头巴脑的大词,也不整什么“颠覆行业”、“重构生态”的PPT黑话。我就想跟各位老板、市场部的负责人,还有那些正在为流量焦虑的创业者们,掏心窝子聊聊一件看似简单、实则深不见底的事儿:网站建设宣传册。很多人听到这四个字,第一反应可能是:“哦,不就是…

2026/10/9 16:51:02 阅读更多 →

最新新闻

408考研刷题误区:用真题选项地毯式排查,建立概念知识网

408考研刷题误区:用真题选项地毯式排查,建立概念知识网

很多备考408的同学都有过这种体验:王道/天勤的课后题刷了两三遍,选择题命中率也不差,可一上真题,仍然会在一道“概念性选项”上卡住。你不是不认识那个词,而是你不确定那个词在当前语境下到底对不对。这种状态非常典型…

2026/10/12 4:07:28 阅读更多 →
.NET WebSocket 实战指南:服务端、客户端、部署与避坑

.NET WebSocket 实战指南:服务端、客户端、部署与避坑

简介:基于.NET Framework 4.5 以上版本的 WinForms WebSocket 通信示例资源包,面向需要在桌面应用里集成实时双向通信的 .NET 开发者,帮助理解客户端、服务器端以及网页测试端三方的完整交互链路。压缩包共 174 个文件,大小约 984…

2026/10/12 4:07:28 阅读更多 →
LK-Bxx Java SDK接入实践:初始化、连接回调与避坑指南

LK-Bxx Java SDK接入实践:初始化、连接回调与避坑指南

简介:面向Sewoo LK-B425打印机的Java SDK资源包,专为需要在Java项目中对接打印硬件的开发者设计,解决Java语言与工业级打印机之间的通信与控制问题。压缩包共14个文件、仅248KB,包含4个Java源码、4个编译后Class文件、3个BMP位图样…

2026/10/12 4:07:28 阅读更多 →
安防WinSDK二次开发:解码显示、句柄与回调机制全解析

安防WinSDK二次开发:解码显示、句柄与回调机制全解析

简介:面向Windows开发者的雄迈二次开发WinSDK,专为需要将雄迈摄像头、NVR等设备接入自研程序的开发者设计,提供从设备连接、取流解码到画面显示的完整接口支持,适合安防监控、视频管理类项目的快速集成。压缩包共436个文件&#x…

2026/10/12 4:07:28 阅读更多 →
本地优先的在线Markdown编辑器:不上传云端的隐私写作方案

本地优先的在线Markdown编辑器:不上传云端的隐私写作方案

最近我在折腾 Markdown 写作时,一直卡在一个点上:想用顺手的编辑工具,又不愿意把每个字都送到别人的服务器上。标题里这句“一个强大在线 Markdown 编辑器,不要上传到云端,保证隐私”基本就是我的筛选标准。说实话&…

2026/10/12 4:07:28 阅读更多 →
在Mac上搞定Spine 2D骨骼动画:从安装到运行时接入的完整工作流

在Mac上搞定Spine 2D骨骼动画:从安装到运行时接入的完整工作流

简介:Spine for Mac是面向2D游戏开发者的专业骨骼动画工具,帮助设计师通过绑定图像到骨骼结构快速制作动态角色,减少逐帧动画的重复劳动。该工具在macOS上保持良好兼容性,支持实时预览、IK反向动力学、动画状态机与纹理自动打包&a…

2026/10/12 4:06:27 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器: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 阅读更多 →