MySQL 中 redo log、undo log、binlog 的区别与协作流程
pren 发布于 2026-09-22
在 MySQL 的面试中,关于日志系统的问题几乎是必考项,尤其是 redo log、undo log 和 binlog 这三者之间的区别与协作流程。很多候选人对单个日志的概念能说出一二,但一旦被问到“一次更新语句执行时,这三个日志是如何配合工作的”,往往就答不完整。本文将从原理出...
阅读(24)评论(0)赞 (0)
pren 发布于 2026-09-22
在 MySQL 的面试中,关于日志系统的问题几乎是必考项,尤其是 redo log、undo log 和 binlog 这三者之间的区别与协作流程。很多候选人对单个日志的概念能说出一二,但一旦被问到“一次更新语句执行时,这三个日志是如何配合工作的”,往往就答不完整。本文将从原理出...
阅读(24)评论(0)赞 (0)
pren 发布于 2026-09-22
引言:一个被低估的性能陷阱 在 Web 应用开发中,分页查询几乎无处不在。无论是电商订单列表、社交动态流,还是后台管理系统,LIMIT offset, size 都是开发者最熟悉的 SQL 写法之一。然而,当 offset 变得很大时——比如翻到第 1000 页、第 10000 ...
阅读(26)评论(0)赞 (0)
pren 发布于 2026-09-22
很多人在第一次接触 Redis 事务时,都会有一个疑问:MySQL 的事务可以通过 ROLLBACK 回滚,为什么 Redis 的事务不支持回滚?这难道不是一个明显的功能缺陷吗?其实,Redis 不支持回滚并不是设计上的疏忽,而是一个经过深思熟虑的架构决策。要理解这个决策,我们需...
阅读(29)评论(0)赞 (0)
pren 发布于 2026-09-22
在 MySQL 运维和开发面试中,“如何在线修改大表结构” 几乎是一道必考题。MySQL 5.6 引入 Online DDL 后,很多原本需要锁表的操作变得“看似”可以在线完成;而 Percona Toolkit 中的 ptonlineschemachange(简称 ptosc)...
阅读(24)评论(0)赞 (0)
pren 发布于 2026-09-22
在 Linux 性能诊断领域,I/O 瓶颈往往是最隐蔽、最难定位的问题之一。CPU 飙高有 top,内存吃紧有 free,网络拥塞有 tcpdump,但当磁盘 I/O 成为系统瓶颈时,很多工程师的第一反应是“看 iostat”,然后对着 %util 接近 100% 的输出陷入沉默...
阅读(30)评论(0)赞 (0)
pren 发布于 2026-09-22
在 MySQL 数据库设计中,主键的选择是一个看似简单却影响深远的决策。很多开发者在建表时会纠结:到底该用自增整数(AUTOINCREMENT)还是 UUID 作为主键?网上众说纷纭,有人说 UUID 全局唯一、方便分布式,有人说自增主键性能好、推荐使用。本文将从存储结构、插入性...
阅读(23)评论(0)赞 (0)
pren 发布于 2026-09-22
在 MySQL 的 InnoDB 存储引擎中,索引结构以 B+ 树为核心,但除此之外,还存在一种鲜为人知却极具巧思的优化机制——自适应哈希索引(Adaptive Hash Index,简称 AHI)。它并非用户手动创建的索引,而是 InnoDB 根据访问模式自动构建的内部哈希表。...
阅读(22)评论(0)赞 (0)
pren 发布于 2026-09-22
在 Linux 网络排障和运维面试中,TCP 连接状态几乎是必考内容。其中 TIMEWAIT 和 CLOSEWAIT 出现频率最高,也最容易暴露候选人是否真正理解 TCP 状态机、内核参数和应用层代码问题。 这篇文章从面试回答的角度出发,先讲清楚两种状态为什么会存在,再讲“过多”...
阅读(28)评论(0)赞 (0)
pren 发布于 2026-09-22
在 Redis 的面试中,关于事务与并发控制的问题层出不穷,其中“WATCH 命令如何实现乐观锁”是一个高频考点。很多开发者对 Redis 事务的理解停留在 MULTI/EXEC 的层面,却对 WATCH 的机制和它在并发场景下的价值一知半解。本文将从乐观锁的基本概念出发,深入剖...
阅读(93)评论(0)赞 (0)
pren 发布于 2026-09-22
在 MySQL 的日常开发和运维中,字符集(Character Set)和排序规则(Collation)往往是被忽视却又极其关键的配置项。很多开发者在建表时随手使用默认值,直到某天发现索引莫名其妙失效、关联查询慢如蜗牛,甚至出现诡异的排序结果,才意识到问题的严重性。本文将从面试常...
阅读(25)评论(0)赞 (0)