隔離級別,myisam和innodb的區別

隔離級別有四種:
read uncommitted 讀取未提交內容
read committed 讀取提交內容
repeatable read 可重讀
serializable 可串行化

大多數數據庫默認的隔離級別是read committed,但是mysql的隔離級別是repeatable read;
髒讀:某個事務已更新一份數據,另一個事務在此時讀取了更新後的數據,但是由於某種原因,前面的那個事務回滾了,則會導致後面的那個事務所讀取的數據會是不正確的;此時就會導致髒讀;
幻讀:當用戶讀取某一範圍的數據行時,另一個事務又在該範圍內插入了新行,當用戶再讀取該範圍的數據行時,會發現有新的“幻影”行;
read uncommitted會導致髒讀;
repeatable read會導致幻讀;
serializable 是最高的隔離級別,通過強制事務排序,使之不可能相互衝突,從而解決幻讀問題,簡言之,在每個讀的數據行上加上共享鎖;
存儲引擎:
myisam與innodb的區別:

1、保存文件的不同:
myisam:一個表會產生三個文件:xx.frm 、 xx.myd 、 xx.myi三個文件
xx.frm 保存表的結構;xx.myd 保存表的數據; xx.myi保存表的索引
innodb:一個表只會產生一個文件:xx.frm文件,用來保存表的結構
2、innodb支持外鍵、支持事務,
myisam不支持外鍵,不支持事務;
3、myisam是表級鎖,比較擅長插入和檢索操作;
innodb是行級鎖,併發性比myisam好,比較擅長更新和刪除操作;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章