Mysql存储引擎底层剖析(详解)

InnoDB 引擎

1,MySQL3.23.34a开始就包含InnoDB存储引擎。   大于等于5 .5之后,默认采用InnoDB引擎

2、将每个表的数据和索引都放在一起放在.ibd文件中。

3、InnoDB有两个表,一个是.ibd文件(存储数据和索引),一个是.frm(存储表结构,MySQL8.0时,合并在表名.ibd)

4、采用MVCC支持高并发,实现了四个标准的隔离级别,在REPEATED READ中通过实现间隙锁来防止幻读的出现。间隙锁使的InnoDB不仅仅锁定查询涉及的行,还会对索引中的间隙进行锁定,防止幻影行的插入

5,如果增加和查询选择MyISAM,如果更新和删除操作,那么应优先选择InnoDB存储引擎

二,MyISAM存储引擎

1,MyISAM提供了大量的特性,包括全文索引、压缩、空间函数(GIS)等,但MyISAM 不支持事务、行级锁、外键 ,有一个毫无疑问的缺陷就是 崩溃后无法安全恢复而InnoDB恢复却可以

2,MyISAM有三个文件,InnoDB有两个,因为MyISAM将索引和数据分开存放,.MYD(放数据)、.FRM(放表结构)、.MYI(放索引)

3、MyISAM支持全文索引 

你可能感兴趣的:(数据库,sql)