MySQL ships two unrelated features both called InnoDB compression, and picking the wrong one costs memory, CPU, or both. Here is how each actually works and when either still pays.
Database Topic Archive
MySQL Articles
InnoDB internals, replication, locking, query performance, and MySQL operations notes.
innodb_io_capacity is a background I/O budget, not a speed dial. Crank it past your redo-driven need and the page cleaner spends the surplus evicting warm pages you were about to read.
An InnoDB FULLTEXT index is a family of hidden auxiliary tables with its own parser, stopwords, and deferred deletes. Where the edges are, which knobs demand a rebuild, and when to move search out of MySQL.
Every MySQL durability argument comes down to two knobs. What innodb_flush_method and innodb_flush_log_at_trx_commit actually change, what a setting of 2 really risks, and why O_DIRECT is usually but not always right.
innodb_dedicated_server sizes your buffer pool and redo from detected hardware. On a truly dedicated box it is right; inside a memory-limited container it can size you straight into an OOM kill.
Checksum failures in the error log, a server that crashes 40 seconds after every start, and the six levels of innodb_force_recovery. What each level really skips, the dump-and-rebuild runbook, and why replicas beat recovery.
Mode 0 holds a table lock to the end of every insert, mode 1 only for bulk loads, mode 2 never. Why 8.0 defaults to 2, what that does to statement-based replication, and how to stop fearing ID gaps.
MySQL 8.0 replaced block nested loop with a real hash join, and half the join-tuning advice from the 5.7 era is now wrong. When the optimizer hashes, when an index beats it, and when it loses.
An errant transaction is a write that exists on a replica but not on the source, and it sits harmlessly in gtid_executed until the exact moment you fail over. Here is how they happen, how to find them, and how…
Group Replication promises consensus-backed failover; classic async promises simplicity. Field notes on what GR actually guarantees, how flow control stalls write bursts, and when async plus an orchestrator is still the better architecture.