溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

InnoDB與MyISAM有什么區(qū)別

發(fā)布時間:2020-06-09 13:55:25 來源:億速云 閱讀:206 作者:鴿子 欄目:MySQL數(shù)據(jù)庫

MySQL 中 InnoDB 和 MyISAM 區(qū)別

1、事務(wù)和外鍵

InnoDB具有事務(wù),支持4個事務(wù)隔離級別,回滾,崩潰修復能力和多版本并發(fā)的事務(wù)安全,包括ACID。如果應(yīng)用中需要執(zhí)行大量的INSERT或UPDATE操作,則應(yīng)該使用InnoDB,這樣可以提高多用戶并發(fā)操作的性能

MyISAM管理非事務(wù)表。它提供高速存儲和檢索,以及全文搜索能力。如果應(yīng)用中需要執(zhí)行大量的SELECT查詢,那么MyISAM是更好的選擇

2、全文索引

Innodb不支持全文索引,如果一定要用的話,最好使用sphinx等搜索引擎。myisam對中文支持的不是很好

不過新版本的Innodb已經(jīng)支持了

3、鎖

mysql支持三種鎖定級別,行級、頁級、表級;

MyISAM支持表級鎖定,提供與 Oracle 類型一致的不加鎖讀取(non-locking read in SELECTs)

InnoDB支持行級鎖,InnoDB表的行鎖也不是絕對的,如果在執(zhí)行一個SQL語句時MySQL不能確定要掃描的范圍,InnoDB表同樣會鎖全表,注意間隙鎖的影響

例如update table set num=1 where name like “%aaa%”

4、存儲

MyISAM在磁盤上存儲成三個文件。第一個文件的名字以表的名字開始,擴展名指出文件類型, .frm文件存儲表定義,數(shù)據(jù)文件的擴展名為.MYD,  索引文件的擴展名是.MYI

InnoDB,基于磁盤的資源是InnoDB表空間數(shù)據(jù)文件和它的日志文件,InnoDB 表的大小只受限于操作系統(tǒng)文件的大小

注意:MyISAM表是保存成文件的形式,在跨平臺的數(shù)據(jù)轉(zhuǎn)移中使用MyISAM存儲會省去不少的麻煩

5、索引

InnoDB(索引組織表)使用的聚簇索引、索引就是數(shù)據(jù),順序存儲,因此能緩存索引,也能緩存數(shù)據(jù)

MyISAM(堆組織表)使用的是非聚簇索引、索引和文件分開,隨機存儲,只能緩存索引

6、并發(fā)

MyISAM讀寫互相阻塞:不僅會在寫入的時候阻塞讀取,MyISAM還會在讀取的時候阻塞寫入,但讀本身并不會阻塞另外的讀

InnoDB 讀寫阻塞與事務(wù)隔離級別相關(guān)

以上就是MySQL 中 InnoDB 和 MyISAM 區(qū)別的詳細內(nèi)容,更多請關(guān)注億速云其它相關(guān)文章!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI