Skip to content

Rate this page
Thanks for your feedback
Thank you! The feedback has been submitted.

For help, click the link below to get free database assistance or contact our experts for personalized support.

Defaults and tuning guidance for 8.4

MySQL 8.4 updates several server defaults to align with modern CPUs, memory sizes, and SSD/NVMe storage. An in-place upgrade that blindly reuses an 8.0-era my.cnf may miss out on these improvements or cause unexpected performance behaviors. Review and re-evaluate your configuration on 8.4, or generate a new config, rather than carrying old settings forward.

Notable InnoDB default changes

InnoDB System Variable Name New Default (8.4) Previous Default (8.0)
innodb_adaptive_hash_index OFF ON
innodb_change_buffering none all
innodb_doublewrite_files 2 innodb_buffer_pool_instances * 2
innodb_doublewrite_pages 128 4
innodb_flush_method on Linux O_DIRECT if supported, otherwise fsync fsync
innodb_io_capacity 10000 200
innodb_log_buffer_size 67108864 (64 MiB) 16777216 (16 MiB)
innodb_numa_interleave ON OFF
temptable_max_ram 3% of total memory (1–4 GiB range) 1073741824 (1 GiB)
innodb_parallel_read_threads available logical processors / 8 (min 4) 4

Why these changes matter:

  • Higher innodb_io_capacity leverages SSD/NVMe for IO-bound workloads; legacy spinning disks may need a lower value.
  • Larger innodb_log_buffer_size reduces redo flush frequency—helpful for write-heavy workloads.
  • innodb_adaptive_hash_index default OFF favors predictability; the adaptive hash index can become a contention source under concurrency.
  • innodb_numa_interleave defaults ON to reduce memory imbalance on multi-socket systems.
  • innodb_change_buffering set to none reduces overhead for modern storage that handles random writes efficiently.
  • innodb_doublewrite_pages increased to 128 improves doublewrite performance on fast storage.

Configuration review checklist

Use this to adapt an 8.0 configuration to 8.4:

  • Remove overrides that merely reassert old 8.0 defaults unless they are proven necessary.
  • Re-evaluate IO settings (innodb_io_capacity, flush method) based on storage type and observed latency.
  • Confirm redo/undo settings and log buffer meet current write patterns.
  • Validate parallel read threads relative to CPU topology and workload.
  • Generate a fresh config for 8.4 when possible; only reapply carefully justified overrides.

Practical evaluation steps

  • Benchmark with your workload: establish a baseline on 8.0, then restore to 8.4 and run the same tests.
  • Compare Performance Schema metrics and wait events for regressions or new hotspots.
  • Adjust a single variable at a time; document changes and their impacts.

Further reading