当前位置: 首页 > article >正文

MySQL 索引实战详解:为什么B+类型的索引查询更快

MySQL 索引实战详解:为什么B类型的索引查询更快在MySQL数据库实战中索引是提升查询性能的核心手段——无需逐行扫描全表通过索引可快速定位目标数据将千万级数据的查询耗时从分钟级压缩到毫秒级。某电商平台用户表5000万数据表结构id bigint primary key, phone varchar(20), username varchar(50), create_time datetime的实战案例显示未加索引时执行“SELECT * FROM user WHERE phone ‘13800138000’”耗时3.2秒添加B树索引CREATE INDEX idx_user_phone ON user(phone)后相同查询耗时仅0.003秒性能提升1000倍。但并非所有索引类型都能达到这种效果在MySQL主流存储引擎InnoDB、MyISAM中B树索引始终是首选其查询效率远超B树、哈希索引等其他类型。本文将从底层结构、实战场景、性能对比、优化落地四个维度详细拆解B树索引查询更快的核心原因补充具体实操细节和示意图帮你吃透索引原理并落地到实际业务优化中。一、先搞懂MySQL索引的本质与核心价值索引的本质是为数据库表中的数据建立一套“快速导航系统”类比图书馆的分类目录——若没有目录找一本书需逐排翻找耗时费力有了目录可直接定位到书籍所在的书架和位置大幅减少查找成本。MySQL中索引是基于特定数据结构组织的“排好序的数据集合”存储在磁盘中而非内存其核心价值就是减少磁盘I/O次数——因为磁盘I/O的耗时远高于内存运算磁盘I/O单次耗时约10ms内存运算单次耗时约0.1μs差距达10万倍是MySQL查询性能的核心瓶颈而B树索引的所有设计都围绕“降低I/O成本、适配实际查询场景”展开。MySQL中常见的索引类型包括B树索引、B树索引、哈希索引、全文索引等不同索引的适用场景差异较大具体对比如下结合实战场景补充细节B树索引主流选择支持等值查询、范围查询、排序、分页适配90%以上的业务场景如用户查询、订单分页、商品筛选等InnoDB引擎的主键索引、二级索引均为B树结构B树索引早期索引类型非叶节点既存储索引又存储数据查询效率不稳定当数据量较大时树高过高I/O次数激增现已基本被B树取代仅在部分老版本数据库或特殊场景中存在哈希索引基于哈希表实现仅支持等值查询如“WHERE id 100”不支持范围查询如“WHERE id 100”和排序适合单一等值查询场景如缓存表中查询用户Token、会话ID等全文索引用于文本内容的模糊匹配查询如“WHERE content LIKE ‘%MySQL索引%’”不适用于普通业务字段如ID、手机号查询且查询效率低于B树索引仅在博客、文章等文本场景使用。为什么B树能成为MySQL的“最优解”核心在于其结构设计完美适配磁盘存储特性按页存储、I/O耗时高和业务查询需求多为范围、分页、排序这也是它比其他索引查询更快的根本原因。二、核心剖析B树的结构设计天生适配快速查询B树是“平衡多路查找树”的改进版是为磁盘存储量身定制的数据结构其核心结构分为三层根节点→中间节点非叶节点→叶子节点每个节点对应MySQL中的一个数据页InnoDB默认页大小为16KB可通过“show variables like ‘innodb_page_size’”查看节点之间通过指针关联整体结构高度平衡树高通常为3-4层不会出现单侧树过高的情况。与其他索引结构相比B树的三个核心设计直接决定了其查询优势结合示意图详细拆解如下1. 非叶节点纯索引化大幅降低树高减少I/O次数B树的非叶节点根节点、中间节点仅存储“索引关键字”和“子节点指针”不存储任何实际数据如用户表中的username、create_time等字段——这是B树与B树最核心的区别也是其I/O效率更高的关键。这种设计能最大限度地利用每个数据页的空间存储更多的索引关键字从而降低树高减少磁盘I/O次数。举个实战计算以InnoDB为例精准到字节级更具参考性InnoDB中每个数据页大小为16KB16384字节若索引关键字为bigint类型8字节MySQL中bigint固定占8字节子节点指针为6字节InnoDB中指针固定为6字节单个键值对索引关键字子节点指针仅占14字节。单个非叶节点可存储的索引数量约为16384 ÷ 14 ≈ 1170个向下取整预留少量空间用于节点管理。基于这个计算我们可以得出不同树高对应的最大数据存储量树高1层仅根节点根节点为叶子节点可存储16384 ÷ 每行数据大小假设每行数据1KB≈ 16行数据树高2层根节点叶子节点1170根节点索引数× 16单叶子节点数据行数≈ 18720行数据树高3层根节点中间节点叶子节点1170 × 1170 × 16 ≈ 2190万行数据树高4层1170 × 1170 × 1170 × 16 ≈ 256亿行数据。这意味着即使是千万级、亿级数据通过B树索引查询仅需3-4次磁盘I/O就能定位到目标数据而B树的非叶节点既存索引又存数据单个节点能容纳的索引数量大幅减少假设每行数据1KB单个非叶节点仅能存储16个索引树高更高——同样存储千万级数据B树的树高需达到5-6层需要5-6次磁盘I/O查询速度自然比B树慢30%-50%。2. 叶子节点有序串联高效支持范围查询与排序MySQL中范围查询如“WHERE id BETWEEN 100 AND 200”“WHERE price 500”、排序如“ORDER BY create_time DESC”、分页如“LIMIT 100, 20”是高频业务场景而B树的叶子节点设计完美适配这类场景也是其区别于其他索引的核心优势之一。B树的所有实际数据都集中在叶子节点且叶子节点按索引关键字有序排列如按id升序、price降序同时通过双向链表串联每个叶子节点都有一个前驱指针和后继指针指向相邻的叶子节点。这种设计带来两个核心优势结合示意图和实战SQL详细说明范围查询无需回溯执行“SELECT * FROM user WHERE id BETWEEN 100 AND 200”时MySQL通过B树的根节点、中间节点快速找到id100对应的叶子节点然后沿着叶子节点的双向链表顺序遍历直到找到id200对应的叶子节点无需回溯父节点避免了大量随机I/O。实战测试显示相同范围查询场景下B树的效率比B树高3-5倍比哈希索引高10倍以上哈希索引需全表扫描排序无需额外操作叶子节点本身有序当查询需要排序如“SELECT * FROM order WHERE user_id 100 ORDER BY create_time DESC”时无需MySQL额外执行排序操作避免了filesort操作filesort是MySQL中耗时较高的排序方式直接沿叶子节点的双向链表反向遍历即可大幅节省CPU资源。对比之下B树的叶子节点不串联范围查询需要递归遍历多个子树、反复回溯父节点产生大量随机I/O哈希索引的存储是无序的无法排序范围查询需全表扫描效率远低于B树。3. 查询路径固定性能稳定可控B树的所有查询无论等值查询还是范围查询最终都要遍历到叶子节点才能获取实际数据查询路径长度固定均为“根节点→中间节点→叶子节点”不会出现“有的查询快、有的查询慢”的情况。这种特性让MySQL优化器能精准预估查询成本如预估需要多少次I/O、多少CPU资源从而生成更优的执行计划避免因查询路径波动导致的性能不稳定。而B树的查询路径长度不固定——有的查询在非叶节点就能找到数据并返回如查询非叶节点中存储的索引对应的少量数据有的需要遍历到叶子节点如查询非叶节点中未存储的大量数据导致查询耗时波动较大可能从0.01ms波动到1ms以上不利于高并发场景下的性能管控如电商秒杀、高频接口查询。三、实战对比B树 vs 其他索引差距到底在哪里为了更直观地体现B树索引的优势结合真实业务场景5000万数据量的用户表对比B树与B树、哈希索引的查询性能补充具体的耗时数据和执行计划明确不同场景下的选择逻辑避免误用索引导致性能损耗。1. B树 vs B树I/O效率与范围查询的差距对比维度B树索引B树索引实战耗时5000万数据非叶节点存储内容仅索引关键字子节点指针索引关键字实际数据无直接耗时差异影响树高树高千万级数据3层3次I/O4-5层4-5次I/OI/O差异导致耗时差0.001-0.002ms范围查询效率高叶子节点链表遍历无需回溯低需递归遍历子树反复回溯B树0.005msB树0.02ms查询性能稳定性稳定查询路径固定不稳定查询路径波动大B树波动±0.001msB树波动±0.01ms)实战结论B树仅在少量随机访问优先的场景如单次查询非叶节点中存储的少量数据有微弱优势但MySQL核心查询场景以范围查询、分页查询为主B树的优势碾压B树目前MySQL主流存储引擎InnoDB、MyISAM已基本淘汰B树索引仅在老版本数据库中可能存在。2. B树 vs 哈希索引适用场景的局限性对比对比维度B树索引哈希索引实战耗时5000万数据等值查询效率高3-4次I/O极高1次哈希计算B树0.003ms哈希索引0.001ms范围查询支持效率高不支持需全表扫描B树0.005ms哈希索引3.1ms排序支持无需额外排序不支持B树0.006ms哈希索引需额外排序耗时0.5ms模糊查询如LIKE支持前缀匹配如LIKE ‘138%’不支持B树0.01ms哈希索引全表扫描耗时2.8ms实战结论哈希索引仅适合“单一等值查询”场景如缓存表中查询用户Token、会话ID且无任何范围、排序需求而业务中绝大多数查询都包含范围、排序、模糊匹配等需求如用户查询手机号前缀、订单按时间分页、商品按价格筛选B树索引的通用性和高效性更具优势是日常开发的首选。四、实战落地B树索引的优化技巧避坑高效使用懂了B树的优势更要会在实战中合理使用避免因索引设计不当导致性能损耗如索引失效、冗余索引、页分裂等问题。结合一线实战经验处理过千万级数据的索引优化、高并发场景下的查询调优分享3个核心技巧和避坑指南补充具体的SQL示例、执行计划分析和优化前后对比。1. 联合索引设计遵循“最左前缀原则”提升查询效率联合索引多列组合索引的底层也是B树结构其索引顺序按创建时的列顺序组织如INDEX idx_abc(a,b,c)先按a排序a相同再按b排序b相同再按c排序。实战中需遵循“最左前缀原则”查询条件必须从联合索引的最左列开始且尽可能连续匹配后续列才能充分利用索引否则会导致索引失效或部分失效。实战示例以电商商品表为例表结构id bigint primary key, category_id int, price decimal(10,2), create_time datetime创建联合索引idx_cat_price_time(category_id, price, create_time)有效利用索引全匹配查询“SELECT * FROM goods WHERE category_id5 AND price100 AND create_time‘2026-01-01’”可利用联合索引的全部三列执行计划中key为idx_cat_price_timekey_len为13category_id4字节price8字节create_time1字节 nullable字段需额外1字节有效利用索引部分匹配查询“SELECT * FROM goods WHERE category_id5 AND price100”可利用索引的前两列category_id、price执行计划中key为idx_cat_price_timekey_len为12category_id4字节price8字节索引失效未匹配最左列查询“SELECT * FROM goods WHERE price100”未匹配联合索引的最左列category_id索引失效执行计划中key为NULL触发全表扫描索引部分失效范围查询中断匹配查询“SELECT * FROM goods WHERE category_id5 AND price100 AND create_time‘2026-01-01’”仅能利用索引的category_id和price列create_time列无法利用索引范围查询会中断后续列的匹配。优化建议① 将选择性高唯一值多、区分度高的列放在联合索引左边如category_id的区分度高于price优先放在左边② 将范围查询列放在最后避免中断后续列的索引匹配③ 避免冗余索引如已有(a,b,c)联合索引无需再单独创建a索引、(a,b)索引冗余索引会增加写入开销。2. 避免索引失效避开这些常见坑附实战案例即使创建了B树索引若SQL写法不当会导致索引失效退化为全表扫描大幅降低查询效率。结合实战中最常见的4种索引失效场景补充具体的SQL示例、失效原因和优化方案搭配执行计划示意图隐式类型转换最常见如phone字段为varchar类型存储手机号查询“WHERE phone13800138000”将字符串作为数字查询会导致索引失效。原因MySQL会自动将phone字段转换为数字类型隐式转换破坏索引的有序性。优化方案将查询条件改为字符串类型即“WHERE phone‘13800138000’”优化后索引生效耗时从3.2ms降至0.003ms函数操作索引列如create_time为datetime类型查询“WHERE YEAR(create_time)2026”会导致索引失效。原因函数操作会破坏索引的有序性MySQL无法利用索引快速定位。优化方案改为范围查询即“WHERE create_time BETWEEN ‘2026-01-01 00:00:00’ AND ‘2026-12-31 23:59:59’”优化后索引生效前导通配符查询如name为varchar类型查询“WHERE name LIKE ‘%John’”前导通配符无法利用索引。原因前导通配符会导致MySQL无法确定索引的起始位置只能全表扫描。优化方案改为前缀匹配如“WHERE name LIKE ‘John%’”或使用全文索引文本场景OR条件失控如查询“WHERE a1 OR b2”若a、b未分别建索引会导致索引失效。原因MySQL无法确定使用哪个索引只能全表扫描。优化方案给a、b分别创建单独索引或改为UNION查询“SELECT * FROM table WHERE a1 UNION SELECT * FROM table WHERE b2”优化后索引生效。验证方法使用EXPLAIN命令查看执行计划关注3个核心字段① key实际使用的索引NULL表示未使用索引② key_len索引使用长度越长表示利用越充分③ Extra是否出现“Using index”代表使用覆盖索引效率更高、“Using filesort”代表需要额外排序耗时高、“Using where; Using filesort”代表索引失效全表扫描后排序。3. 索引维护平衡查询与写入性能避坑指南B树索引并非越多越好索引会增加写入INSERT、UPDATE、DELETE的开销——每次写入操作需同步维护B树的节点如插入数据时若节点已满会触发页分裂删除数据时会产生碎片影响写入性能。结合实战维护经验分享3个核心技巧避免因索引维护不当导致的性能问题实战维护技巧定期监控索引使用情况通过performance_schema查询索引的读取、插入次数清理未被使用的“幽灵索引”如创建后从未被查询使用的索引。具体SQL“SELECT * FROM performance_schema.table_io_waits_summary_by_index_usage WHERE index_name IS NOT NULL AND count_star 0;”查询结果中count_star0的索引即为幽灵索引可直接删除整理索引碎片当索引碎片率超过30%时会影响查询效率碎片会增加磁盘I/O次数。InnoDB引擎可通过“ALTER TABLE 表名 ENGINEInnoDB”在线优化不锁表优化MyISAM引擎可使用“OPTIMIZE TABLE 表名”会锁表建议在低峰期执行大表加索引千万级以上大表直接加索引会锁表影响业务正常运行。优化方案使用InnoDB的INPLACE算法MySQL 5.6支持加索引时不会锁表具体SQL“ALTER TABLE 表名 ADD INDEX 索引名(字段名) ALGORITHMINPLACE;”避免锁表影响业务。五、总结B树索引查询更快的核心逻辑MySQL中B树索引查询更快本质是其结构设计完美适配“磁盘存储特性”和“业务查询场景”核心可总结为3点结合前文细节和示意图强化记忆非叶节点纯索引化压缩树高将磁盘I/O次数控制在3-4次大幅降低查询耗时——这是B树比B树、哈希索引I/O效率更高的核心原因叶子节点有序双向链表高效支持范围查询、排序、分页适配绝大多数业务场景——这是B树比哈希索引、B树通用性更强的关键查询路径固定性能稳定可控且能与MySQL优化器深度适配进一步提升查询效率——这是B树适合高并发场景的核心优势。实战中掌握B树的结构原理结合最左前缀原则、索引避坑指南和维护技巧才能让索引真正成为查询性能的“加速器”而非数据库的“负担”。无论是日常开发中的SQL优化还是高并发场景下的性能调优吃透B树索引都是后端开发者、DBA必备的核心能力。后续可结合具体业务场景进一步优化索引设计实现查询性能的最大化。

相关文章:

MySQL 索引实战详解:为什么B+类型的索引查询更快

MySQL 索引实战详解:为什么B类型的索引查询更快 在MySQL数据库实战中,索引是提升查询性能的核心手段——无需逐行扫描全表,通过索引可快速定位目标数据,将千万级数据的查询耗时从分钟级压缩到毫秒级。某电商平台用户表(5000万数据…...

Pixel Aurora Engine效果展示:极光视觉系统UI与生成图像色调自动匹配机制

Pixel Aurora Engine效果展示:极光视觉系统UI与生成图像色调自动匹配机制 1. 像素极光引擎概览 Pixel Aurora Engine是一款融合复古美学与现代AI技术的创意工具,它将扩散模型的高质量图像生成能力与8-bit像素艺术风格完美结合。这款"虚拟游戏机&q…...

为什么你的C# 13主构造函数无法单步执行?微软Roslyn团队2024Q2调试协议变更详解(首批实测报告)

第一章:为什么你的C# 13主构造函数无法单步执行?C# 13 引入的主构造函数(Primary Constructor)语法简洁优雅,但调试时却常出现断点失效、F10/F11 无法单步进入等问题。根本原因在于:**主构造函数不生成独立…...

MySQL 实战进阶:从单表优化到分布式数据库适配

MySQL 实战进阶:从单表优化到分布式数据库适配 在企业业务发展的不同阶段,MySQL 的应用场景从简单的单表查询,逐步演进到高并发、海量数据的处理场景。多数开发者在入门 MySQL 后,容易陷入“会用但不会优”的困境——单表数据量激…...

LoRA训练助手GPU算力优化:支持FP16/INT4双精度推理,显存占用降低58%

LoRA训练助手GPU算力优化:支持FP16/INT4双精度推理,显存占用降低58% 1. 为什么需要GPU算力优化 如果你尝试过训练自己的AI绘画模型,一定遇到过这样的困扰:生成训练标签时显存爆满、推理速度慢、甚至因为资源不足而中断进程。传统…...

如何快速实现FastAPI国际化:多语言支持完整指南

如何快速实现FastAPI国际化:多语言支持完整指南 【免费下载链接】fastapi FastAPI framework, high performance, easy to learn, fast to code, ready for production 项目地址: https://gitcode.com/GitHub_Trending/fa/fastapi FastAPI作为一款高性能、易…...

腾讯混元OCR网页推理快速搭建:新手友好型部署指南与问题汇总

腾讯混元OCR网页推理快速搭建:新手友好型部署指南与问题汇总 1. 认识腾讯混元OCR 腾讯混元OCR是一款基于混元原生多模态架构的轻量级文字识别专家模型。作为一款仅1B参数的轻量化模型,它在多项OCR任务中取得了业界领先的成绩。这个网页推理版本将强大的…...

7个强力修复方案:解决Windows更新故障的创新方法

7个强力修复方案:解决Windows更新故障的创新方法 【免费下载链接】Reset-Windows-Update-Tool Troubleshooting Tool with Windows Updates (Developed in Dev-C). 项目地址: https://gitcode.com/gh_mirrors/re/Reset-Windows-Update-Tool Windows更新故障是…...

LangFlow可视化优势:拖拽式AI流水线构建实操案例

LangFlow可视化优势:拖拽式AI流水线构建实操案例 1. 引言:告别代码,用拖拽构建AI应用 如果你对AI应用开发感兴趣,但一看到复杂的代码和框架就头疼,那么LangFlow可能就是为你量身打造的工具。想象一下,构建…...

window 10 主机安装ubuntu22 系统

准备工作 下载ubuntu22镜像 使用ubuntu_server_220405时,当在/etc/netplan/50-cloud-init.yaml文件里编辑网卡信息 network:version: 2renderer: networkdethernets:eth0:dhcp4: noaddresses: - 172.20.10.2/24routes:- to: defaultvia: 172.20.10.1nameservers:ad…...

解锁Android黑科技:动态加载Activity,让你的App秒变变形金刚

解锁Android黑科技:动态加载Activity,让你的App秒变变形金刚 一、开篇引入 在如今的移动应用开发领域,动态加载 Activity 技术在 Android 开发中占据着举足轻重的地位。想象一下,你使用的 360 安全卫士,在不重新安装…...

深度解析Emby高级功能解锁技术:3种高效破解方案完整指南

深度解析Emby高级功能解锁技术:3种高效破解方案完整指南 【免费下载链接】emby-unlocked Emby with the premium Emby Premiere features unlocked. 项目地址: https://gitcode.com/gh_mirrors/em/emby-unlocked 还在为Emby Premiere的高昂订阅费用而烦恼吗&…...

openvino-plugins-ai-audacity高效部署指南:跨平台配置与性能优化避坑指南

openvino-plugins-ai-audacity高效部署指南:跨平台配置与性能优化避坑指南 【免费下载链接】openvino-plugins-ai-audacity A set of AI-enabled effects, generators, and analyzers for Audacity. 项目地址: https://gitcode.com/gh_mirrors/op/openvino-plugin…...

OpenCore Legacy Patcher终极指南:5步让旧Mac重获新生

OpenCore Legacy Patcher终极指南:5步让旧Mac重获新生 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 还在为Mac无法升级到最新macOS而烦恼吗&…...

忍者像素绘卷实战教程:微信小程序用户上传文字→返回像素图→支持长按保存

忍者像素绘卷实战教程:微信小程序用户上传文字→返回像素图→支持长按保存 1. 项目概述与核心价值 忍者像素绘卷是一款基于Z-Image-Turbo深度优化的图像生成工具,专为微信小程序环境设计。它能够将用户输入的文字描述转化为具有16-Bit复古游戏风格的像…...

OpenClaw+百川2-13B-4bits:自动化生成周报并邮件发送实战

OpenClaw百川2-13B-4bits:自动化生成周报并邮件发送实战 1. 为什么选择这个组合方案 作为一位长期被周报折磨的开发者,我一直在寻找能解放双手的自动化方案。传统模板化周报工具缺乏灵活性,而纯手工编写又耗时费力。直到发现OpenClaw与百川…...

go-systemd 高级特性解析:logind 和 machined API 集成

go-systemd 高级特性解析:logind 和 machined API 集成 【免费下载链接】go-systemd Go bindings to systemd socket activation, journal, D-Bus, and unit files 项目地址: https://gitcode.com/gh_mirrors/go/go-systemd go-systemd 是一个强大的 Go 语言…...

最新聚合短视频解析去水印系统源码 带后台 自适应双端

内容目录一、详细介绍二、效果展示1.部分代码2.效果图展示一、详细介绍 最新聚合短视频解析去水印系统源码 带后台 自适应双端 轻量化 全开源 亲测可用 后台支持修改公告使用方式,网站支持的应用图标等,应用图标支持添加修改和一键删除 更新&#xff…...

League-Toolkit:让英雄联盟游戏体验变得智能高效

League-Toolkit:让英雄联盟游戏体验变得智能高效 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 你是否曾在英雄联盟游戏中遇到这些…...

无锁队列(Lock-Free Queue)

无锁队列原理 无锁队列(Lock-Free Queue)是一种基于无锁编程(Lock-Free Programming)技术实现的并发数据结构。它的核心思想是: 1.基础原理 使用 CAS(Compare-And-Swap,比较并交换)等…...

IoT设备渗透测试实战:从命令注入到流量监控的完整流程(附避坑指南)

IoT设备渗透测试实战:从命令注入到流量监控的完整流程(附避坑指南) 1. IoT渗透测试的特殊性 IoT设备的渗透测试与传统PC环境存在显著差异,这些差异直接影响着测试策略的选择和工具的使用。首先,IoT设备通常运行精简版的…...

从抓包困境到源码掌控:微信小程序逆向分析与实战解包指南

1. 微信小程序抓包为何越来越难? 最近两年做过微信小程序抓包的开发者应该都深有体会,以前用Charles、Fiddler这类工具轻松就能抓到的数据包,现在越来越难捕获了。我去年11月接的一个图书馆预约系统项目就遇到了这个难题,当时用尽…...

[特殊字符] 第30课:排序链表

想系统提升编程能力、查看更完整的学习路线,欢迎访问 AI Compass:https://github.com/tingaicompass/AI-Compass 仓库持续更新刷题题解、Python 基础和 AI 实战内容,适合想高效进阶的你。📖 第30课:排序链表模块&#…...

基于CANopen协议,实现机器人500-1000Hz高频控制(附实操实例) (1)

机器人控制:基于CANopen协议的高频控制(大于500Hz)(附实操实例) 在机器人控制领域,高频控制(500-1000Hz)是实现高精度轨迹跟踪、快速动态响应的核心需求——无论是协作机器人的柔性交互、工业机械臂的高速分拣,还是AGV的精准定位,都需要控制器与执行器(伺服驱动器、…...

Limine UEFI部署教程:安全启动与现代固件的完美结合

Limine UEFI部署教程:安全启动与现代固件的完美结合 【免费下载链接】limine Modern, advanced, portable, multiprotocol bootloader and boot manager. 项目地址: https://gitcode.com/gh_mirrors/li/limine 想要在UEFI系统上部署一款现代化、功能强大的引…...

收藏!小白程序员轻松入门大模型,掌握AI领导力升职加薪必备

AI正颠覆全行业,要求原地升级AI。程序员需从执行者转变成AI领导者,提升AI领导力。未来行业可能两头重(小白AI和架构师AI),初中级工程师需提升专业能力和AI领导力。文章推荐NLP、CV、大模型算法、大模型部署等方向&…...

如何解决文件乱码难题?编码检测工具助你实现文本编码精准识别与转换

如何解决文件乱码难题?编码检测工具助你实现文本编码精准识别与转换 【免费下载链接】EncodingChecker A GUI tool that allows you to validate the text encoding of one or more files. Modified from https://encodingchecker.codeplex.com/ 项目地址: https:…...

QMCDecode:开源音频解密工具,让数字音乐重获自由

QMCDecode:开源音频解密工具,让数字音乐重获自由 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录&#xff0c…...

C语言线程池

多线程的概念 线程是操作系统进行CPU调度的一个基本单位。多线程是一个进程内,多个任务同时并发执行的技术。每个线程都共享进程的资源,但是每个线程都有独立的执行栈和程序的计数器。 我们以做三道菜品的任务来描述一下,单线程和多线程工作…...

ESP32语音唤醒实战:VADNet模型配置与防截断缓存机制详解(附代码)

ESP32语音唤醒实战:VADNet模型配置与防截断缓存机制详解(附代码) 在智能语音设备开发中,语音唤醒功能的稳定性直接影响用户体验。ESP32作为物联网领域的热门芯片,其内置的VADNet语音活动检测模型为开发者提供了强大的工…...