MySql鎖等待問題的處理辦法

2021-10-07 15:54:38 字數 1312 閱讀 5164

建表

create

table testdemo (

`id`

int(

255)

notnull

,`c1`

varchar

(300

)character

set utf8 collate utf8_general_ci null

default

null

,`c2`

int(50)

null

default

null

,primary

key(

`id`),

index

`idx_c2`

(`c2`

)using

btree

)engine

=innodb

;insert

into testdemo values(1

,'1',1

),(2

,'2',2

);

使用乙個會話開啟並執行乙個寫鎖

begin

select

*from testdemo where id =

1for

update

使用另乙個會話框,上乙個寫鎖

begin

select

*from testdemo where id =

1lock

inshare

mode

這時另乙個會話執行會超時。如果發生在生產環境,可能會覺得納悶,怎麼老是等待超時呢?這時可使用下面語句找到問題的原因

select

*from information_schema.innodb_locks;

這時發現同一張表有兩個鎖,乙個是讀鎖乙個是寫鎖

這時我們可以使用該語句找到程序號,並kill掉它就好

執行下面命令即可解鎖

kill

7

mysql 鎖等待表 MySQL表的鎖等待

今天線上業務遇到乙個問題,因為一張模擬自增序列的表被鎖住,涉及該錶的業務受到影響。線上情況 1 這個表只有乙個id欄位。今天線上業務遇到乙個問題,因為一張模擬自增序列的表被鎖住,涉及該錶的業務受到影響。線上情況 1 這個表只有乙個id欄位。2 id欄位為主鍵索引 3 該錶只有一行資料,記錄全域性最大...

mysql鎖問題嗎 mysql 鎖問題處理

錯誤資訊如下 time 140122 16 34 23 user host x thread id 19904440 schema x last errno 1205 killed 0 query time 200.911931 lock time 0.000041 rows sent 0 rows...

MySQL找出鎖等待

1.伺服器級別的鎖等待 可以通過show processlist看到等待鎖的執行緒id,但是無法知道究竟哪個執行緒持有鎖 可以通過mysqladmin debug 相關等待鎖的執行緒以及誰持有鎖可以在錯誤日誌中找到 2.儲存引擎層的鎖等待則比較麻煩,以下是innodb儲存引擎中鎖等待以及哪個執行緒持...