Programmer XiaoFu
Author

Programmer XiaoFu

xiaofucode.com – a programmer learning guide driven by the pursuit of profit

114
Articles
0
Likes
692
Views
0
Comments
Recent Articles

Latest from Programmer XiaoFu

100 recent articles max
Programmer XiaoFu
Programmer XiaoFu
Oct 19, 2026 · Databases

Why GROUP BY + ORDER BY Crawls on 100M-Row MySQL Tables Despite Index Usage

This article explains why MySQL GROUP BY + ORDER BY queries become extremely slow on hundred-million-row tables even when EXPLAIN shows index usage, covering temporary tables, filesort, loose index scan limitations, scanning overhead, and solutions like pre-aggregated summary tables, partitioning, columnar engines, and query scope reduction.

ClickHouseGROUP BYIndex Optimization
0 likes · 12 min read
Why GROUP BY + ORDER BY Crawls on 100M-Row MySQL Tables Despite Index Usage
Programmer XiaoFu
Programmer XiaoFu
Sep 29, 2026 · Databases

Why SQL Writing Order Differs from Execution Order: Explained

This article explains the difference between SQL's written clause order and its logical execution order, detailing why WHERE cannot use column aliases, how HAVING filters groups, the impact of JOIN/ON placement in LEFT JOINs, and how to verify execution plans with EXPLAIN.

EXPLAINHAVING clauseJOIN
0 likes · 9 min read
Why SQL Writing Order Differs from Execution Order: Explained
Programmer XiaoFu
Programmer XiaoFu
Sep 8, 2026 · Databases

Why MySQL Still Needs Four Isolation Levels Despite MVCC's Lock-Free Reads

This article explains how MySQL's MVCC mechanism uses version chains and ReadViews to enable lock-free snapshot reads, and why four isolation levels (READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE) are still necessary: they define when ReadViews are created, controlling which version a transaction sees, while MVCC only handles reads—writes still require row locks.

Concurrency ControlInnoDBMVCC
0 likes · 9 min read
Why MySQL Still Needs Four Isolation Levels Despite MVCC's Lock-Free Reads
Programmer XiaoFu
Programmer XiaoFu
Aug 28, 2026 · Backend Development

Why Spring Cloud Gateway Rate Limiting Fails to Protect Downstream Services

The article analyzes five reasons why Spring Cloud Gateway's Redis-based token bucket rate limiting fails to protect downstream services during traffic bursts, including QPS vs. concurrency confusion, burstCapacity spikes, multi-route quota multiplication, KeyResolver fallback flaws, and Redis bottleneck fail-open behavior, then recommends tightening burst limits, adding downstream concurrency isolation with Sentinel/Resilience4j, and hardening KeyResolver configuration.

Burst TrafficConcurrency ControlRedis
0 likes · 13 min read
Why Spring Cloud Gateway Rate Limiting Fails to Protect Downstream Services
Programmer XiaoFu
Programmer XiaoFu
Aug 26, 2026 · Fundamentals

Why Teams Require Git Rebase Over Merge: Clean History & Better Debugging

This article explains why teams prefer Git rebase over merge, showing how rebase creates linear history that improves git log readability, bisect debugging, blame accuracy, and code review efficiency, while warning against rebasing shared branches and explaining conflict handling trade-offs.

GitGit workflowcode review
0 likes · 10 min read
Why Teams Require Git Rebase Over Merge: Clean History & Better Debugging
Programmer XiaoFu
Programmer XiaoFu
Aug 7, 2026 · Backend Development

Why Does Nginx Reverse Proxy Boost Website Performance?

The article explains how Nginx reverse proxy improves website performance by preventing backend threads from being blocked by slow clients, using an event‑driven epoll model, buffering, connection pooling, SSL termination, and proper configuration settings.

EpollNginxkeepalive
0 likes · 10 min read
Why Does Nginx Reverse Proxy Boost Website Performance?
Programmer XiaoFu
Programmer XiaoFu
Jul 16, 2026 · Backend Development

Can Java 21 Virtual Threads Replace CompletableFuture for Async Programming?

With Java 21’s virtual threads making threads cheap, the article examines whether the traditional CompletableFuture async style can be dropped, showing that simple IO can now be written synchronously, while complex task orchestration, fallback, and timeout still benefit from CompletableFuture’s richer API.

Async ProgrammingCompletableFutureJava
0 likes · 10 min read
Can Java 21 Virtual Threads Replace CompletableFuture for Async Programming?
Programmer XiaoFu
Programmer XiaoFu
Jun 25, 2026 · Backend Development

Why Delayed Double Delete Fails to Ensure Cache Consistency Under High Concurrency

The article dissects the delayed double‑delete pattern for Redis‑MySQL consistency, exposing its hidden pitfalls—unreliable delay timing, thread‑blocking sleeps, fragile second‑delete retries, and concurrent‑write anomalies—then recommends cache‑aside and stronger alternatives for production systems.

Cache AsideDelayed Double DeleteMySQL
0 likes · 7 min read
Why Delayed Double Delete Fails to Ensure Cache Consistency Under High Concurrency