造成原因:
innodb是行级锁,innodb的行锁是通过给索引项加锁实现的。如果update执行where后的条件为非索引,会造成更新一条记录对全表进行加锁。
解决办法:
给where后条件进行索引创建,或者先通过条件查询出主键id,在通过主键id来更新对象。
mysql innodb表格式下,update时候未使用使用非主键id做条件进行更新造成数据库死锁
最新推荐文章于 2025-02-18 21:28:26 发布
造成原因:
innodb是行级锁,innodb的行锁是通过给索引项加锁实现的。如果update执行where后的条件为非索引,会造成更新一条记录对全表进行加锁。
解决办法:
给where后条件进行索引创建,或者先通过条件查询出主键id,在通过主键id来更新对象。