mysql鎖3 常見問題

2021-07-09 15:06:10 字數 636 閱讀 9564

1. 請問聚簇索引上所有的記錄,都被加上了x鎖。無論記錄是否滿足條件,全部被加上x鎖。這個鎖的效果和表鎖有什麼區別?

分析:這個跟據資料庫隔離級別決定的。rc隔離級別下,有區別,記錄仍舊可以插入。rr下,功能上無區別。但是innodb不會主動公升級表鎖。

2. 我想問的是,兩個測試,mysql都檢測到了死鎖,為什麼實驗1中由事務2觸發死鎖,重啟的是事務1;

但是實驗2 中,事務2觸發死鎖,重啟的卻是事務2。 mysql在檢測到死鎖以後,重啟的事務的依據是什麼呢?

有什麼好的死鎖檢測工具能推薦一下麼?

分析:簡單來說,mysql的死鎖檢測到之後,會選擇乙個事務進行回滾。而選擇的依據:看哪個事務的權重最小,事務權重的計算方法:事務加的鎖最少;事務寫的日誌最少;事務開啟的時間最晚。實驗1,事務2寫了日誌,事務1沒有,回滾事務1。實驗2,都沒寫日誌,但是事務1開始的早,回滾事務2。

3.gap鎖不是乙個排他鎖,像是乙個共享鎖?

分析:gap鎖本身的作用是防止後續的插入操作,因此gap鎖只跟插入相衝突,gap鎖之間不衝突。

Mysql常見問題

1.安裝,推薦使用非安裝版.把解壓後的檔案拷貝到c盤根目錄下,並把總目錄改為mysql.然後進入windows命令 控制台,在c mysql bin下面執行mysqld nt install把它安裝為乙個服務,然後呼叫net start mysql啟動它,停止的命令是net stop mysql 想...

mysql常見問題

按照表中某一欄位排序,若該字段可能存在空值,公升序排列時空值排在最前面,降序排列是空值排在最後面。公升序排列時如果想讓空值排在最後面,可以 order by field1 is null,field1 asc 這麼寫。例如有個user表,按照 seq欄位排序。select from user ord...

MySQL常見問題

事務是指作為單個邏輯工作單元的一系列操作 一系列sql語句 當多個事務併發地訪問資料庫時就會產生同時讀取和 或修改同一資料的情況。若對併發操作不加控制就可能會訪問和儲存不正確的資料 髒讀 非重複讀 幻像讀 丟失修改的異常情況 破壞資料庫的一致性。a向b支付50 讀出a支付寶餘額 100 a支付寶扣錢...