一、隔離級別參考:
二、鎖特性:
常見集中問題
髒讀重複讀
同樣開啟兩個客戶端,並且關閉自動提交
還是上面的t1表
客戶端1
insertinto t1 values (1);
客戶端2:select * from t1,記錄為空,說明解決了髒讀的問題
客戶端1 提交
commit;
客戶端2:
mysql>select
*from
t1;+
----+
| id |+--
--+|1|
+----+
客戶端1,刪除表記錄
客戶端2,再次查詢(未提交情況下),查詢記錄為空
出現在同乙個事務中,同樣的sql語句出現不同的查詢結果(不可重複讀問題);這個例子其實最好用update來體現,就是有點懶
幻讀同樣開啟兩個客戶端,並且關閉自動提交
還是上面的t1表
客戶端1
insertinto t1 values (1);
客戶端2
mysql>select
*from t1 where id >0;
+----+| id |+--
--+|1|
+----+1 row in
set (0.00 sec)
客戶端1
mysql>insert
into t1 values (2
);query ok,
1 row affected (0.00
sec)
mysql
>
commit
;query ok,
0 rows affected (0.00 sec)
客戶端2(注意這裡是沒提交的情況下,查出來的記錄有兩條;這個其實和不可重複讀一樣的,只是幻讀是insert型別的)
mysql>select
*from t1 where id >0;
+----+| id |+--
--+|1|
|2|+
----+
2 rows in
set (0.00 sec)
mysql的隔離性和鎖
innodb的事務支援4種隔離機制,分別是 read uncommitted,read committed,repeatable read,and serializable.其中預設的為repeatable read.下面詳細分析這4種隔離性的聯絡和區別。在不用鎖的查詢語句中,此隔離級別保證了每次事...
Mysql 鎖 隔離級別
1.共享鎖 只要有乙個人 事務或執行緒 在查詢,其他人就都不能改,要照顧少數 下面是將所有性別是男的資料都加上共享鎖 select from table where 男 lock in share mode2.排他鎖 只要有乙個人 事務或執行緒 在用 增刪改差 其他人就不能用 下面是將所有性別是男的...
mysql 鎖,隔離級別
1.鎖是對多執行緒,多程序訪問同一資源進行協調的機制 2.分為行鎖,表鎖,頁鎖。myisam和memory支援表鎖,bdb引擎支援表鎖,頁鎖。innodb支援表鎖,行鎖 預設 3.myisam表鎖 4.myisam併發插入 5.讀寫操作同時爭搶鎖,寫鎖優先,可以設定寫鎖優先順序降低,low prio...