MySQL进阶之存储引擎MyISAM与InnoDB的区别

时间:2021-01-07 07:35:48

一、存储引擎(表类型)

通常意义上,数据库就是数据的集合,具体到计算机数据库可以是存储器上一些文件的集合或一些内存数据的集合。我们通常说的MySQL数据库、sql Server数据库等其实是数据库管理系统(Database Management System,即DBMS),它们可以存储数据,并提供查询和更新等功能。

存储引擎就是如何为存储的数据建立索引、如何更新、查询数据等技术的实现方法。因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也称为表类型。

二、InnoDB和MyISAM

InnoDB和MyISAM是最经常使用的两个表类型,其基本差别主要为:

MyISAM存储引擎的特点是:表级锁、不支持事务和全文索引,适合一些CMS内容管理系统作为后台数据库使用,但是使用大并发、重负荷生产系统上,表锁结构的特性就显得力不从心;

InnoDB存储引擎的特点是:行级锁、事务安全(ACID兼容)、支持外键、不支持FULLTEXT类型的索引(5.6.4以后版本开始支持FULLTEXT类型的索引)。InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全存储引擎。InnoDB是为处理巨大量时拥有最大性能而设计的。它的CPU效率可能是任何其他基于磁盘的关系数据库引擎所不能匹敌的。