今天線上業務遇到乙個問題,因為一張模擬自增序列的表被鎖住,涉及該錶的業務受到影響。 線上情況: 1、這個表只有乙個id欄位。
今天線上業務遇到乙個問題,因為一張模擬自增序列的表被鎖住,涉及該錶的業務受到影響。
線上情況:
1、這個表只有乙個id欄位。
2、id欄位為主鍵索引
3、該錶只有一行資料,記錄全域性最大id
4、某業務儲存過程操作會執行id+1操作,並獲取當前id的值,插入到其他相關的表中一行資料
5、儲存過程執行完畢,最後會commit
6、事物隔離級別為read-committed
7、某業務thread 102336鎖住該錶,使用show processlist檢視,程序102336處於sleep狀態
8、偶爾會有其他tread 請求鎖住該錶,均等待超時
9、在kill掉程序102336以後,業務恢復正常
正常這個表是不會長期處於鎖定狀態的,為什麼這個程序一直不釋放鎖資源,難以理解,正常情況下儲存過程執行完畢以後,要麼提交,要麼發生異常退出並rollback。
--------------------------------------分割線 --------------------------------------
ubuntu 14.04下安裝mysql
《mysql權威指南(原書第2版)》清晰中文掃瞄版 pdf
ubuntu 14.04 lts 安裝 lnmp nginx\php5 (php-fpm)\mysql
ubuntu 14.04下搭建mysql主從伺服器
ubuntu 12.04 lts 構建高可用分布式 mysql 集群
ubuntu 12.04下源**安裝mysql5.6以及python-mysqldb
mysql-5.5.38通用二進位制安裝
--------------------------------------分割線 --------------------------------------
mysql事物鎖鎖表 mysql 事務 行鎖 表鎖
一 準備 select from information schema.innodb trx 查詢事務 select from information schema.innodb locks 查詢鎖 select from information schema.innodb lock waits 暫...
mysql鎖表測試 mysql 行鎖,表鎖 測試
環境 mysql5.5,引擎innodb,sqlyog 行鎖,表鎖區別 其實就是看where後面的條件是否有有索引,有索引的時候就是行鎖,沒有索引的時候就是表索。先建立表結構 create table lock test id int 11 not null auto increment,name ...
mysql 檢視鎖表日誌 MYSQL 表鎖情況檢視
檢視鎖表情況 mysql show status like table variable name value table locks immediate 795505 table locks waited 0 table open cache hits 0 table open cache mis...