一、InnoDB簡介
InnoDB是事務型數據庫的首選引擎,MySQL5.5.5之後,InnoDB作爲默認存儲引擎。主要特性:
- InnoDB給MySQL提供了具有提交、回滾和奔潰恢復能力的事務安全存儲引擎。InnoDB鎖定在行級並且也在select語句中提供一個類似Oracle的非鎖定讀。這些功能增加了多用戶部署和性能。
- InnoDB是爲處理巨大數據量的最大性能設計。它的CPU效率可能是任何其他基於磁盤的關係數據庫引擎所不能匹敵的。
- InnoDB存儲引擎完全與MySQL服務器整合,InnoDB存儲引擎爲在主內存中緩存數據和索引而維持它自己的緩衝池。InnoDB將它的表和索引存在一個邏輯表空間中,表空間可以包含數個文件。InnoDB表可以是任何尺寸,即使在文件尺寸被限制在2GB的操作系統上。
- InnoDB支持外鍵完整性約束。
- InnoDB被用在衆多需要高性能的大型數據庫站點上。
二、MyISAM簡介
MyISAM擁有較高的插入、查詢速度,但不支持事務。MySQL5.5.5之前的版本,MyISAM是默認引擎。主要特性:
- BLOB和TEXT列可以被索引
- NULL值被允許在索引列中,這個值佔每個鍵的0~1個字節。
- 所有數字鍵值以高字節優先被存儲以允許一個更高的索引壓縮。
- 可以把數據文件和索引文件放在不同目錄。
- 每個字符列可以有不同的字符集。
三、綜合對比
功能 |
InnoDB | MyISAM |
---|---|---|
存儲限制 |
64TB | 256TB |
支持事務 |
√ |
× |
支持全文索引 |
× |
√ |
支持數索引 |
√ |
√ |
支持哈希索引 |
× |
× |
支持數據緩存 |
√ |
× |
支持外鍵 |
√ |
× |
四、總結
如果要提供提交、回滾和奔潰恢復能力的事務安全能力,並要求實現併發控制,InnoDB是個很好的選擇;如果數據表主要用來插入和查詢記錄,則MyISAM引擎能提供較高的處理效率。
參考文獻:[1]李波.MySQL從入門到精通[M].北京:清華大學出版社,2015:37-39