未分類 3 9 月 2021 关于 MySQL 死锁的疑问 关于 MySQL 死锁的疑问 資深大佬 : ddllzz 9 不使用事务就不会出现死锁吗? 大佬有話說 (8) 資深大佬 : liprais 你是如何做到不使用事务的? 資深大佬 : Euthpic @liprais 不用 innodb 咯 主 資深大佬 : ddllzz @liprais 啊,没开启事务不就是不使用吗?有些定时统计的任务,如果确保了幂等性,那即使某次统计出现偶发的异常,且没有回滚,在下一次定时任务正常执行之后,也能得到正确的数据。现在的问题是,多线程下,没有开启事务,却偶尔会出现死锁。是不是一条更新语句,会执行很多个加锁动作,导致了死锁? 主 資深大佬 : ddllzz @Euthpic 用了 InnoDB 没开启事务,也是有事务的吗 資深大佬 : mikulch @ddllzz 不是的,事务必须要靠你自己开启。至于死锁的问题,理论上来说不用事务的话,确实不太可能造成死锁,除非你数据库扛不住了出现问题。 主 資深大佬 : ddllzz @mikulch 嗯嗯,感谢解答 資深大佬 : Euthpic @ddllzz innodb 每个提交都是以事务为单位,你写一条简单的 select 也会开隐式事务的 主 資深大佬 : ddllzz @Euthpic #7 涨知识了