记一次 MySQL semaphore crash 的分析(有彩蛋)

AHI 的全局锁 btr_search_latch 经常会是竞争热点影响性能,5.7版本后有所改善与 InnoDB buffer 一样做了多实例拆分。本案例在开启 Innodb_stats_on_metadata 参数,查询元数据信息时触发统计信息更新,上锁数据字典,阻塞了了大量业务操作,又由于 buffer pool 空间不足,导致表驱逐旧页触发 AHI 的 btr_search_latch 锁竞争,最终导致信号量超时 crash。