Lock wait timeout exceeded; try restarting transaction一些信息
創(chuàng)新互聯(lián)專注于葉縣企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站建設(shè),商城建設(shè)。葉縣網(wǎng)站建設(shè)公司,為葉縣等地區(qū)提供建站服務(wù)。全流程按需網(wǎng)站設(shè)計,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)1、
鎖等待超時。是當前事務(wù)在等待其它事務(wù)釋放鎖資源造成的。可以找出鎖資源競爭的表和語句,優(yōu)化你的SQL,創(chuàng)建索引等,如果還是不行,可以適當減少并發(fā)線程數(shù)。
2、
你的事務(wù)在等待給某個表加鎖時超時了,估計是表正被另的進程鎖住一直沒有釋放。
可以用 SHOW INNODB STATUS/G; 看一下鎖的情況。
3、搜索解決 之道
在管理 節(jié)點的[ndbd default]
區(qū)加:
TransactionDeadLockDetectionTimeOut=10000(設(shè)置 為10秒)默認是1200(1.2秒)
4、
InnoDB會自動的檢測死鎖進行回滾,或者終止死鎖的情況。
引用
InnoDB automatically detects transaction deadlocks and rolls back a transaction or transactions to break the deadlock.
InnoDB tries to pick small transactions to roll back, where the size of a transaction is determined by the number of rows inserted, updated, or deleted.
如果參數(shù)innodb_table_locks=1并且autocommit=0時,InnoDB會留意表的死鎖,和MySQL層面的行級鎖。另外,InnoDB不會檢測MySQL的Lock Tables命令和其他存儲引擎死鎖。
你應(yīng)該設(shè)置innodb_lock_wait_timeout來解決這種情況。
innodb_lock_wait_timeout是Innodb放棄行級鎖的超時時間。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。