MySQL实战:从建表设计到慢查询排查

数据量增长后,查询为何变慢?从MySQL表结构与索引设计入手,结合执行计划定位瓶颈,再理解事务、锁和备份恢复,兼顾数据读写效率与可靠性。

阅读216
发布人iPython
发布时间2026-09-24
MySQL实战:从建表设计到慢查询排查

MySQL中使用CASE WHEN处理字段为NULL的情况

在MySQL数据库开发中,经常需要处理字段值为NULL的情况。本文详细介绍如何使用CASE WHEN语句结合IS NULL和IS NOT NULL条件,将NULL值替换为指定的默认文本(如“该字段为空”或“暂无数据”),并通过多表关联的实战案例展示其在复杂查询中的应用方法。

MySQL查询NULL与空值陷阱:IS NULL的正确用法

在MySQL数据库中,NULL值不等于任何具体数值,使用等号或不等号查询往往无法得到预期结果。本文结合Navicat环境,详解如何使用IS NULL和IS NOT NULL精确筛选数据,并指出开发中常见的“不等于”漏查NULL的坑,提供完整的排查思路与解决方案。

MySQL查询NULL与空值陷阱:IS NULL的正确用法

MySQL查询结果添加自动序号的三种方法

在MySQL中,若需为查询结果集添加自增序号,可通过定义用户变量实现。文章详解了三种常用语法:内联子表初始化、SET语句预处理及直接赋值方式,分析了 (@i:=@i+1) 的执行逻辑与 @ 符号用法区别,帮助开发者快速掌握无窗口函数时的序号生成方案。

MySQL触发器实现操作日志自动记录

本文详解如何在MySQL中利用触发器(Trigger)自动记录用户对数据表的增、删、改操作。通过创建源业务表与专用日志表,编写INSERT、UPDATE、DELETE三类后置触发器,捕获OLD/NEW状态及执行用户,实现审计数据的自动化入库。

MySQL数据恢复实战:.ibd文件还原与Binlog误删恢复

介绍两种核心MySQL数据恢复方法:一是基于表结构的.ibd文件导入,适用于磁盘文件损坏但保留数据和结构文件的场景;二是利用Binlog日志进行精确时间点的回滚或重放,用于修复误删、误改等逻辑错误操作。本文详述前提条件、具体命令及参数说明,并提供Windows与Linux下的操作指引。

MySQL Count 函数深度解析:原理、性能与索引选择

详解 MySQL COUNT 函数的运行逻辑,揭示其统计非 NULL 值的本质。通过 EXPLAIN 分析指出优化器如何选择最小索引提升 count(*) 或 count(常数) 的查询效率,并解释为何特定列即使非空也可能不走索引,帮助开发者写出高效的 SQL 语句。

MySQL Count 函数深度解析:原理、性能与索引选择

MySQL配置文件my.cnf与my.ini区别及修改方法

本文详细解析了 MySQL 在不同操作系统下的配置文件差异,Linux 下为 my.cnf,Windows 下为 my.ini。重点介绍了关键参数的含义,如端口、路径、连接数及超时设置,并提供了通过 SQL 命令查看当前状态及动态修改 max_connections 的方法,帮助用户快速定位并优化数据库性能。

MySQL添加索引方法详解:Navicat可视化操作与SQL语句

本文详细讲解了如何在MySQL数据库中高效添加索引以解决慢查询问题。内容涵盖通过Navicat图形界面设计表添加索引的步骤,以及使用ALTER TABLE和CREATE INDEX等SQL命令创建普通、唯一、主键、组合及全文索引的完整语法与实战示例,帮助用户快速提升数据库检索性能。

MySQL添加索引方法详解:Navicat可视化操作与SQL语句

MySQL DQL查询语句详解:从基础到实战

本文全面解析MySQL DQL(数据查询语言)的核心语法,涵盖简单查询、条件过滤、排序、聚合、分组及分页等关键操作。通过具体示例和代码演示,帮助开发者掌握SELECT语句的高效使用技巧,提升数据库检索能力。

MySQL DQL查询语句详解:从基础到实战