MySQL兩種存儲引擎(InnoDB和MyISAM)對比

一、InnoDB簡介

InnoDB是事務型數據庫的首選引擎,MySQL5.5.5之後,InnoDB作爲默認存儲引擎。主要特性:

  1. InnoDB給MySQL提供了具有提交、回滾和奔潰恢復能力的事務安全存儲引擎。InnoDB鎖定在行級並且也在select語句中提供一個類似Oracle的非鎖定讀。這些功能增加了多用戶部署和性能。
  2. InnoDB是爲處理巨大數據量的最大性能設計。它的CPU效率可能是任何其他基於磁盤的關係數據庫引擎所不能匹敵的。
  3. InnoDB存儲引擎完全與MySQL服務器整合,InnoDB存儲引擎爲在主內存中緩存數據和索引而維持它自己的緩衝池。InnoDB將它的表和索引存在一個邏輯表空間中,表空間可以包含數個文件。InnoDB表可以是任何尺寸,即使在文件尺寸被限制在2GB的操作系統上。
  4. InnoDB支持外鍵完整性約束。
  5. InnoDB被用在衆多需要高性能的大型數據庫站點上。

二、MyISAM簡介

MyISAM擁有較高的插入、查詢速度,但不支持事務。MySQL5.5.5之前的版本,MyISAM是默認引擎。主要特性:

  1. BLOB和TEXT列可以被索引
  2. NULL值被允許在索引列中,這個值佔每個鍵的0~1個字節。
  3. 所有數字鍵值以高字節優先被存儲以允許一個更高的索引壓縮。
  4. 可以把數據文件和索引文件放在不同目錄。
  5. 每個字符列可以有不同的字符集。

三、綜合對比

功能

InnoDB MyISAM

存儲限制

64TB 256TB

支持事務

×

支持全文索引

×

支持數索引

支持哈希索引

×

×

支持數據緩存

×

支持外鍵

×

 四、總結

如果要提供提交、回滾和奔潰恢復能力的事務安全能力,並要求實現併發控制,InnoDB是個很好的選擇;如果數據表主要用來插入和查詢記錄,則MyISAM引擎能提供較高的處理效率。

 

參考文獻:[1]李波.MySQL從入門到精通[M].北京:清華大學出版社,2015:37-39

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章