MySQL

InnoDB Adaptive Hash Index Contention

info
performanceUpdated Mar 2, 2026

Contention on InnoDB adaptive hash index causing performance degradation. Multiple threads compete for AHI mutex access, reducing query throughput. Common in high-concurrency workloads with point lookups on frequently accessed indexes.

Technologies:
How to detect:

mysql.innodb.hash_index_cells_used / mysql.innodb.hash_index_cells_total > 0.95, or mutex contention in SHOW ENGINE INNODB STATUS semaphores section showing high AHI wait times

Recommended action:

Review adaptive hash index usage in SHOW ENGINE INNODB STATUS output. For MySQL 5.7+, consider disabling AHI on specific partitions or globally (innodb_adaptive_hash_index=OFF) if contention is severe and point lookup performance is not critical. Monitor mysql.performance.cpu_time - if CPU is high with low query throughput, AHI contention may be culprit. In MySQL 8.0+, AHI is partitioned by default, reducing contention. Check innodb_adaptive_hash_index_parts setting. Evaluate workload: AHI benefits point lookups but adds overhead for range scans and updates.