出现死锁和 lock_wait_timeout 没关系, 后者是锁等待时间,锁并不是一定是死锁。
出现死锁问题,一般是程序设计有问题(不够严谨)。
好在数据库能给你检测出死锁错误来,否则只能是无休止地等待,这时软件会卡死。
有错误提示, 总比软件卡死强。
出现死锁问题,一般是程序设计有问题(不够严谨)。
好在数据库能给你检测出死锁错误来,否则只能是无休止地等待,这时软件会卡死。
有错误提示, 总比软件卡死强。
调试欢乐多
最终是改数据库隔离级别来解决死锁问题。
还有锁等待这个问题有点复杂, 也不好说明。。 出现锁等待的语句是在truncate 某张表的时候出现的, 改成delete了就好使了。start transaction;
select * from tbl1 where 1=2 for update
还没结束事物,
这时候执行truncate会锁等待的改成delete from tbl 就好使了。 但也不是最终解决方案。 只是怀疑应用层在使用连接池没把事物给关好。
好了,结贴。。