mysql 儲存引擎MYSIAM和INNODB特性比較

來源:互聯網
上載者:User

標籤:io   使用   sp   檔案   資料   on   bs   ad   時間   

事物:MYISAM不支援事物,MyISAM類型的表強調的是效能,其執行數度比InnoDB

類型更快。如果不考慮事物,大量的select和insert適合MYISAM表

鎖:MYISAM支援表鎖
    INNODB提供行級鎖,提供與 Oracle 類型一致的不加鎖讀取(non-locking read in),
   INNODB行鎖也不是絕對的,在執行一個SQL語句時MySQL不能確定要掃描的範圍,InnoDB表同樣會鎖全表,例如update table set num=1 where name like “%aaa%”

多版本高並發:多版本高並發即MVCC,INNODB才有MVCC支援高並發,實現四個標
准隔離等級,預設是可重複讀,通過間隙鎖防止幻讀。間隙鎖使得INNODB不僅僅
鎖定涉及查詢的行,還對索引中間隙進行鎖定,防止幻行寫入。

事務修複和崩潰修複:MYISAM可以手工或者自動的檢查和修複操作,但不是崩潰
恢複。INNODB一定程度上支援崩潰時資料的丟失恢複,但不是絕對的恢複,且恢復長

備份:如果需要關閉伺服器執行備份,備份策略可以忽略。但是需要線上熱備份,INNODB是更好的選擇


轉換引擎上,有三種方式
1:alert table語句:  alert table mytable ENGINE=InnoDB;
此方法效率最低,需要把資料複製到一張新表,系統IO能力可能被耗盡,同時在原表加鎖,需要避開表使用高峰期,同時會造成原引擎特性丟失,索引,外鍵等

2:匯入匯出
通過mysqldump工具可以匯出到檔案。但是會預設在在create table加drop table語句,不注意會造成資料丟失

2:建立查詢
先建立一個新儲存引擎的表,通過insert ---select匯入,這種方式在資料量層級低的情況下是不錯的選擇,如果資料量過大,可以通過分批處理。完成後,新表是對舊錶的複製,但舊錶還存在。也可以在負責過程中對原表加鎖,確保與原表資料一致。

mysql 儲存引擎MYSIAM和INNODB特性比較

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.