慢查询优化的核心是读懂执行计划,理解优化器为何选择特定索引与连接顺序。 一、EXPLAIN 关键字段 type:访问类型,const eqref ref range index ALL key:实际使用的索引 rows:预估扫描行数 Extra:Using index 表示覆盖索引,Using filesort 表示额
分类:数据库与存储
共 20 篇文章PostgreSQL、MySQL InnoDB、Redis 内部机制与存储引擎调优
缓存是高并发系统的性能基石,但设计不当会引发三类典型故障,需针对性治理。 一、三类问题对比 | 问题 | 成因 | 后果 | 治理手段 | ||||| | 缓存穿透 | 查询不存在的数据 | 请求直达数据库 | 布隆过滤器、空值缓存 | | 缓存击穿 | 热点 Key 过期瞬间 | 大量请求打到数据库 | 互斥锁重建、
InnoDB 的行锁基于索引实现,理解记录锁、间隙锁与 NextKey Lock 是分析死锁的前提。 一、三类行级锁 Record Lock:锁定单条索引记录 Gap Lock:锁定索引记录之间的间隙,阻止插入 NextKey Lock:Record Lock + Gap Lock,锁定左开右闭区间 二、死锁排查 死锁
PostgreSQL 的 BTree 索引采用 MVCC 机制下的“追加写”策略:更新索引键会插入新条目而非原地修改,旧条目成为死元组(Dead Tuple)。长期高频更新会导致索引页面分裂与表膨胀,必须依赖 VACUUM 回收空间。 一、膨胀检测与自动清理调优
深入分析 PostgreSQL 堆表元组头部隐藏字段 xmin、xmax、cmin、cmax 与事务快照 Snapshot 的可见性判断规则,解释更新操作为何产生死元组以及生产环境 Autovacuum 调优策略。