某些列删除时MySQL死锁

时间:2017-03-17 22:22:25

标签: mysql deadlock

我有一个包含以下列的表

    |name         weight     product  |
    |custA        .25        trash    |
    |custA        .75        recycling|
    |custB        .10        trash    |
    |custB        .90        recycling|

document_uuid, driver_uuid, vehicle_uuid, etc 是主键,并且始终是唯一的 document_uuid是必填字段,并不总是唯一的 driver_uuid是一个可选字段。

我们不断删除并向此表添加行。删除是通过driver_uuid或document_uuid。

今天我添加了一些代码,偶尔也会被vehicle_uuid删除,并且部署开始导致mysql死锁。

死锁异常没有显示太多信息:

vehicle_uuid

1 个答案:

答案 0 :(得分:0)

问题是vehicle_uuid字段缺少索引。

如果没有索引,db引擎必须抓取更多行来识别要删除的行,从而导致更高的死锁机会。

添加索引解决了这个问题。

相关问题