A线程开事务
Update XXX表第1行
Insert 一条 记录到log表
B线程开事务
做一些其他工作
Insert一条 记录到log表
Update XXX表第2行
然后这2个update语句就发生死锁了
用sql profile监控得到下面的结果

上图中的sql语句是左边的,是A线程的
下面的sql语句是右边的,是B线程的

A事务仅2条 语句
,B事务语句多一点
处理结果是:事务(进程 ID 93)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。请重新运行该事务
------解决方案--------------------
1、表上加聚集索引和一些适当的非聚集索引,避免update时全表扫描(意味着锁表)
2、insert 和update考虑是否能分到2个事务中完成