innodb和myisam的區別

2021-09-19 16:29:28 字數 807 閱讀 2340

在資料庫中,我們一般常用的儲存引擎有innodb和myisam。

1.innodb具有事務,支援4個事務隔離級別,回滾,崩潰修復能力和多版本併發的事務安全,包括acid(原子性、一致性、永續性、隔離性)。如果應用中需要執行大量的insert或update操作,則應該使用innodb,這樣可以提高多使用者併發操作的效能。

myisam管理非事務表。它提供高速儲存和檢索,以及全文搜尋能力。如果應用中需要執行大量的select查詢,那麼myisam是更好的選擇

隔離級別:

(1)讀未提交(read uncommitted):可以讀取其他 session 未提交的髒資料。

(2)讀已提交(read committed):允許不可重複讀取,但不允許髒讀取。提交後,其他會話可以看到提交的資料。

(3)可重複讀(repeatable read):禁止不可重複讀取和髒讀取、以及幻讀(innodb 獨有)。

(4)序列(serializable):事務只能乙個接著乙個地執行,但不能併發執行。事務隔離級別最高

不同的隔離級別有不同的現象,並有不同的鎖定/併發機制,隔離級別越高,資料庫的併發性就越差

2.innodb支援外來鍵,而myisam不支援。

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

4.innodb更加適合寫入操作,myisam更加適合讀取操作

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

MySQL中MyISAM與InnoDB區別

mysql中myisam與innodb區別 myisam innodb 事物處理 不支援支援 外來鍵不支援 支援行鎖 不支援支援 全文索引 支援不支援 表的具體行數 儲存表的具體行數 掃瞄表來計算行數 delete表時 先drop表,然後重建表 一行一行的刪除 索引和資料 分開的,並且索引是有壓縮的...

MySQL中MyISAM與InnoDB區別及選擇

innodb 支援事務處理等 不加鎖讀取 支援外來鍵 支援行鎖 不支援fulltext型別的索引 不儲存表的具體行數,掃瞄表來計算有多少行 delete 表時,是一行一行的刪除 innodb 把資料和索引存放在表空間裡面 跨平台可直接拷貝使用 innodb中必須包含auto increment型別欄...

MySQL中MyISAM與InnoDB區別及選擇

支援事務處理等 不加鎖讀取 支援外來鍵 支援行鎖 不支援fulltext型別的索引 不儲存表的具體行數,掃瞄表來計算有多少行 delete 表時,是一行一行的刪除 innodb 把資料和索引存放在表空間裡面 跨平台可直接拷貝使用 innodb中必須包含auto increment型別欄位的索引 很難...