目录

MySQL IS NULL 会索引失效?深度解析 InnoDB 索引结构与优化器决策

许多开发者误以为 MySQL 中 WHERE name IS NULL 会导致索引失效,实则不然。本文通过 innodb_ruby 工具与二进制文件分析,揭示 NULL 值在 B+ 树中的存储位置;并通过案例复现证明,所谓“索引失效”通常是由于条件匹配行数过多(如 >20%)导致回表成本高于全表扫描,由 Optimizer 主动放弃索引所致。

MySQL IS NULL 会索引失效?深度解析 InnoDB 索引结构与优化器决策

MySQL InnoDB Buffer Pool 运行机制与调优详解

本文解析 MySQL InnoDB 存储引擎的缓冲池(Buffer Pool)机制。内容涵盖内存初始化、LRU链表结构及Young/Old分区算法,以及Flush和Free链表的工作原理。同时提供多实例配置与动态扩容参数设置,帮助理解减少磁盘IO并提升查询命中率的核心方法。

MySQL InnoDB Buffer Pool 运行机制与调优详解

SQL Server 2012+ Offset/Fetch与Row_Number()分页性能对比

本文针对SQL Server 2012+的分页语法,深入分析了三种方法:NTILE、ROW_NUMBER()和新的OFFSET-FETCH。通过12.9万条记录测试及执行计划对比,证实OFFSET FETCH虽在CPU消耗上略优于ROW_NUMBER()且无需全表扫描,但IO开销两者基本一致,最终推荐因其语法简洁性而优先使用。

SQL Server 2012+ Offset/Fetch与Row_Number()分页性能对比

MySQL Loose Index Scan优化distinct和group by查询

在MySQL中,使用COUNT(DISTINCT)或GROUP BY时,传统方式会导致全索引扫描。MySQL 5.1+引入Loose Index Scan技术,通过跳过重复键值大幅减少IO。本文详解其适用条件、执行计划特征(Using index for group-by),以及Index Condition Pushdown对非精确匹配场景的补充优化作用。

MySQL数据库性能优化:索引原理、创建与存储引擎选择

本文详细解析MySQL数据库性能优化的核心手段,包括B+树索引原理及适用场景。涵盖主键、唯一、普通及全文索引的创建与维护,深入探讨多列索引的最左匹配原则、LIKE查询陷阱及OR语句对索引的影响。同时对比InnoDB与MyISAM存储引擎特性,提供大批量插入、GROUP BY排序优化等实用SQL技巧,助您提升查询效率并保障数据安全。

MySQL数据库性能优化:索引原理、创建与存储引擎选择
更多信息

专题列表