← 返回首页

什么是死锁?MySQL 会出现死锁吗?MySQL 有哪些锁?

死锁是指多个事务互相等待对方持有的资源,导致所有事务都无法继续执行。

MySQL 会出现死锁,尤其是在多个事务以不同顺序更新多行数据、范围更新、二级索引更新或者间隙锁冲突时。

MySQL InnoDB 常见锁包括表锁、行锁、记录锁、间隙锁、临键锁、意向锁、共享锁和排他锁。死锁不能完全避免,只能降低概率。常见做法是固定加锁顺序、缩短事务时间、减少范围更新、建立合适索引,并对死锁异常做重试。