mysql
文章平均质量分 86
安得小学僧-设计模式之美
致力于研究设计模式的一个资深程序员
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MySQL异常详解:从入门到精通
MySQL异常处理摘要 MySQL数据库操作中常见的异常类型及处理策略: 数据截断异常:当数据超出字段定义范围时触发,建议在应用层进行数据验证并设置严格模式。 事务回滚异常:通常由死锁或锁等待超时引起,可通过重试机制和锁顺序优化来缓解。 连接异常:包括连接超时和连接断开,应实现连接池管理和重连机制。 语法异常:SQL语句错误导致,需严格验证SQL语法和用户权限。 约束异常:违反主键、外键等约束条件,需在业务逻辑中进行数据完整性检查。 最佳实践包括:异常分类处理、适当重试策略、详细日志记录、资源清理以及预防性原创 2025-07-28 19:12:54 · 1176 阅读 · 0 评论 -
MySQL SQL优化完全指南:从执行计划到性能调优
本文系统介绍了MySQL SQL优化的关键技术与实践方法,从基础概念到高级优化技术全面覆盖。主要内容包括: 执行计划分析:详细解读EXPLAIN输出字段,帮助开发者理解查询执行路径 索引优化策略:涵盖索引设计原则、最左前缀原则及选择性计算 常见优化场景:针对全表扫描、范围查询、排序分组等典型问题提供解决方案 高级优化技术:包括查询重写、连接优化、索引条件下推等进阶方法 实战工具链:介绍性能监控与诊断工具的使用 文章通过大量示例和案例分析,帮助开发者掌握从执行计划解读到性能瓶颈定位的全套SQL优化技能,适用于原创 2025-07-24 19:46:29 · 816 阅读 · 0 评论 -
MySQL 执行计划中的 Rowid-ordered Scan 详解
MySQL 执行计划中的 Rowid-ordered Scan 摘要 Rowid-ordered Scan 是 MySQL 优化器采用的一种查询执行策略,它通过三个阶段完成查询:首先使用索引定位记录并收集 RowID,然后按主键顺序排序这些 RowID,最后按排序后的顺序访问表数据。这种扫描方式适用于需要返回大量列且存在 ORDER BY 子句的查询场景,能有效减少随机 I/O,提高缓存命中率,但会带来额外的排序开销和内存消耗。 优化建议包括创建覆盖索引、减少返回字段、使用 LIMIT 子句以及调整 sor原创 2025-07-24 19:22:34 · 715 阅读 · 0 评论 -
MySQL FIND_IN_SET 函数深度解析
MySQL FIND_IN_SET 函数深度解析摘要 FIND_IN_SET()是MySQL中用于在逗号分隔字符串中查找值的函数,返回匹配项的位置索引(1起)或0(未找到)。该函数虽然简便,但存在显著性能问题:无法使用索引,导致全表扫描,时间复杂度为O(m×n)。常见陷阱包括索引失效、数据类型隐式转换、空值处理不当以及逗号字符冲突。最佳实践建议仅在小数据量、配置项等非核心查询中使用,避免在大表频繁查询场景应用。替代方案推荐使用规范化表结构(多对多关系表)以获得更好的查询性能。函数适合处理简单标签系统,但不适原创 2025-07-22 08:45:41 · 2290 阅读 · 0 评论 -
MySQL B+树详解:从基础到深入
B+树是MySQL数据库的核心数据结构,相比B树具有显著优势。B+树将所有数据存储在叶子节点并通过链表连接,非叶子节点仅存储键值用于导航。这种结构特点使其特别适合数据库系统:1)范围查询高效,可通过叶子节点链表顺序访问;2)查询性能稳定,所有叶子节点位于同一层;3)磁盘I/O优化,节点可容纳更多键值减少树高度。在MySQL中,InnoDB使用B+树实现聚簇索引(存储完整数据)和二级索引(存储主键值)。B+树通过节点分裂/合并保持平衡,支持高效查找、插入和删除操作,是数据库索引的理想选择。原创 2025-07-17 08:23:46 · 959 阅读 · 0 评论 -
MySQL执行计划Extra字段详解
MySQL执行计划Extra字段详解摘要 Extra字段是MySQL执行计划中显示查询优化细节的重要指标。本文重点解析四个关键信息: Using index condition:表示使用索引条件下推(ICP),在存储引擎层直接过滤部分WHERE条件,减少回表操作。 Using where:表示服务器层需要额外过滤数据,常见于无索引字段、函数条件或索引无法覆盖全部条件的情况。 Rowid-ordered scan:MySQL按行ID顺序扫描数据,通常用于OR条件查询优化,合并多个索引结果并按主键排序,提高I/原创 2025-07-15 20:13:57 · 540 阅读 · 0 评论 -
MySQL执行计划DEPENDENT SUBQUERY详解
MySQL中的DEPENDENT SUBQUERY是一种相关子查询,其执行依赖于外部查询的结果,需要为外部查询的每一行都执行一次子查询。本文详细分析了DEPENDENT SUBQUERY的执行机制、常见场景(如EXISTS、IN子查询等)及其性能影响(时间复杂度为O(N*M)),并通过电商案例展示了实际应用。文章重点提供了三种优化策略:1)将相关子查询改写为JOIN操作;2)为关联字段创建适当索引;3)使用窗口函数替代传统子查询。这些优化方法能显著提升查询性能,特别是在处理大数据量时,其中JOIN改写和索引原创 2025-07-15 19:52:02 · 637 阅读 · 0 评论 -
MySQL执行计划Using where详解
MySQL执行计划中的"Using where"表示服务器在存储引擎返回记录后还需进行额外WHERE条件过滤。常见于无索引条件、复合条件或范围查询后的过滤场景。性能影响较大:全表扫描+过滤耗时约2000ms,而纯索引查询仅约5ms。优化策略包括:1)创建合适复合索引;2)调整查询条件顺序匹配索引;3)使用覆盖索引避免回表。实际案例中,电商订单查询通过创建(user_id,status,create_time)复合索引,将执行计划从"Using where"优化为&qu原创 2025-07-15 19:39:32 · 1142 阅读 · 0 评论
分享