MySQL InnoDB和MyISAM數據引擎的差異剖析。本站提示廣大學習愛好者:(MySQL InnoDB和MyISAM數據引擎的差異剖析)文章只能為提供參考,不一定能成為您想要的結果。以下是MySQL InnoDB和MyISAM數據引擎的差異剖析正文
MyISAM類型的表強調的是機能,其履行數度比InnoDB類型更快,然則不供給事務支撐,而InnoDB供給事務支撐曾經內部鍵等高等數據庫功效。
MyIASM是IASM表的新版本,有以下擴大:
二進制條理的可移植性。
NULL列索引。
對變長行比ISAM表有更少的碎片。
支撐年夜文件。
更好的索引緊縮。
更好的鍵嗎統計散布。
更好和更快的auto_increment處置。
以下是一些細節和詳細完成的差異:
1.InnoDB不支撐FULLTEXT類型的索引。
2.InnoDB 中不保留表的詳細行數,也就是說,履行select count(*) from table時,InnoDB要掃描一遍全部表來盤算有若干行,然則MyISAM只需簡略的讀出保留好的行數便可。留意的是,當count(*)語句包括 where前提時,兩種表的操作是一樣的。
3.關於AUTO_INCREMENT類型的字段,InnoDB中必需包括只要該字段的索引,然則在MyISAM表中,可以和其他字段一路樹立結合索引。
4.DELETE FROM table時,InnoDB不會從新樹立表,而是一行一行的刪除。
5.LOAD TABLE FROM MASTER操尴尬刁難InnoDB是不起感化的,處理辦法是起首把InnoDB表改成MyISAM表,導入數據後再改成InnoDB表,然則關於應用的額定的InnoDB特征(例如外鍵)的表不實用。
別的,InnoDB表的行鎖也不是相對的,假如在履行一個SQL語句時MySQL不克不及肯定要掃描的規模,InnoDB表異樣會鎖全表,例如update table set num=1 where name like “%aaa%”
任何一種表都不是全能的,只用適當的針對營業類型來選擇適合的表類型,能力最年夜的施展MySQL的機能優勢。