![MySQL 过程导致死锁](https://linux22.com/image/553775/MySQL%20%E8%BF%87%E7%A8%8B%E5%AF%BC%E8%87%B4%E6%AD%BB%E9%94%81.png)
我使用的是 MySQL 服务器 5.1.45。我有一个包含大量业务逻辑的过程。当此过程的调用次数较少时,我的应用程序运行良好,但当调用次数增加时,此过程会抛出 Lock wait timeout 异常。
我的问题是过程是否会动态创建临时表?
正如在我的程序中我使用了 Truncate 语句,这可能会导致释放所有交易。
我不是 DBA,请帮助我解决这个问题。
答案1
除非您指示过程创建临时表,否则过程不会创建临时表。也许最好将该“业务逻辑”拆分为几个不同的迭代。
另请确保您使用了正确的索引。