mysql 運維常用命令

2022-10-09 20:36:11 字數 1240 閱讀 5203

要測試innodb的鎖互斥,以及死鎖,有幾個配置務必要提前確認:

區間鎖是否關閉

事務自動提交(auto commit)是否關閉

事務的隔離級別(isolation level)

這幾個引數,會影響實驗結果。

《事務的隔離級別,innodb如何實現?》

間隙鎖是否關閉

區間鎖(間隙鎖,臨鍵鎖)是innodb特有施加在索引記錄區間的鎖,mysql5.6可以手動關閉區間鎖,它由innodb_locks_unsafe_for_binlog引數控制:

設定為on,表示關閉區間鎖,此時一致性會被破壞(所以是unsafe)

設定為off,表示開啟區間鎖

可以這麼查詢該引數:

show global variables like "innodb_locks%";

《innodb,索引記錄上的三種鎖》

事務自動提交

mysql預設把每乙個單獨的sql語句作為乙個事務,自動提交。

可以這麼查詢事務自動提交的引數:

show global variables like "autocommit";

事務的隔離級別

不同事務的隔離級別,innodb的鎖實現是不一樣。

可以這麼查詢事務的隔離級別:

show global variables like "tx_isolation";

可以這麼設定事務的隔離級別:

set session transaction isolation level x;

x取:read uncommitted

read committed

repeatable read

serializable

這三個引數,mysql5.6的預設值如上:

off,表示使用區間鎖

on,表示事務自動提交

rr,事務隔離級別為可重複讀

要模擬併發事務,需要修改事務自動提交這個選項,每個session要改為手動提交。

任何連上mysql的session,都要手動執行:

set session autocommit=0;

以手動控制事務的提交。

如上圖,需要把session的autocommit設定為off。

可以看到,修改session變數,並不影響global變數,全域性其他的session仍然是on。

畫外音:session變數預設繼承global變數,也可以單獨修改。

show engine innodb status

linux運維常用命令

1.刪除0位元組檔案 find type f size 0 exec rm rf 2.檢視程序 按記憶體從大到小排列 ps e o c p z a sort k5 nr 3.按cpu利用率從大到小排列 ps e o c p z a sort nr 4.列印說 cache 裡的url 5.檢視http...

linux運維常用命令

chkconfig list awk 41.kudzu檢視網絡卡型號 kudzu probe class network 匹配中文字元的正規表示式 u4e00 u9fa5 評注 匹配中文還真是個頭疼的事,有了這個表示式就好辦了 匹配雙位元組字元 包括漢字在內 x00 xff 評注 可以用來計算字串的...

linux運維常用命令

1 linux啟動過程 開啟電源 bios開機自檢 引導程式lilo或grub 核心的引導 kernel boot 執行init rc.sysinit rc mingetty 建立終端 shell 2 網絡卡繫結多ip ifconfig eth0 1 192.168.1.99 netmask 255...