MySQL中MyISAM和InnoDB引擎的區別

2022-04-02 18:53:59 字數 781 閱讀 5977

區別:

1. innodb支援事務,myisam不支援,對於innodb每一條sql語言都預設封裝成事務,自動提交,這樣會影響速度,所以最好把多條sql語言放在begin和commit之間,組成乙個事務

2. innodb支援外來鍵,而myisam不支援。對乙個包含外來鍵的innodb表轉為myisam會失敗

3. innodb是聚集索引,資料檔案是和索引綁在一起的,必須要有主鍵,通過主鍵索引效率很高。但是輔助索引需要兩次查詢,先查找到主鍵,然後再通過主鍵查詢到資料。因此,主鍵不應該過大,因為主鍵太大,其他索引也都會很大。而myisam是非聚集索引,資料檔案是分離的,索引儲存的是資料檔案的指標。主鍵索引和輔助索引是獨立的

4. innodb不儲存表的具體行數,執行select count(*) from table時需要全表掃瞄。而myisam用乙個變數儲存了整個表的行數,執行上述語句時只需要讀出該變數即可,速度很快

5. innodb不支援全文索引,而myisam支援全文索引,查詢效率上myisam要高

如何選擇:

1. 是否要支援事務,如果要請選擇innodb,如果不需要可以考慮myisam;

2. 如果表中絕大多數都只是讀查詢,可以考慮myisam,如果既有讀寫也挺頻繁,請使用innodb。

3. 系統奔潰後,myisam恢復起來更困難,能否接受;

4. mysql5.5版本開始innodb已經成為mysql的預設引擎(之前是myisam),說明其優勢是有目共睹的,如果你不知道用什麼,那就用innodb,至少不會差。

mysql中innodb和MyISAM的儲存

一 零鋪墊 在介紹b樹之前,先來看另一棵神奇的樹 二叉排序樹 binary sort tree 首先它是一棵樹,二叉 這個描述已經很明顯了,就是樹上的一根樹枝開兩個叉,於是遞迴下來就是二叉樹了 下圖所示 而這棵樹上的節點是已經排好序的,具體的排序規則如下 從圖中可以看出,二叉排序樹組織資料時,用於查...

mysql中innodb和myisam對比

innodb和myisam是很多人在使用mysql時最常用的兩個表型別,這兩個表型別各有優劣,5.7之後就不一樣了 1 事務和外來鍵 innodb具有事務,支援4個事務隔離級別,回滾,崩潰修復能力和多版本併發的事務安全,包括acid。如果應用中需要執行大量的insert或update操作,則應該使用...

Mysql中,Myisam和Innodb的區別

都說寫部落格就是自我揭醜,但我個人覺得寫這個玩楞就是複習的一種方式,學習怎麼會是自我揭醜呢,我會多少寫多少這樣有毛病麼?當你開啟我這篇部落格的時候,首先恭喜你看到了我人生中第一篇部落格,確實沒啥經驗,也不會寫那麼多吸引眼球的東西,更不是文科出身,不會拽那麼多高大尚的詞彙,碼農出身你懂得 既然是第一篇...