mysql在文件系统中将每个数据库(也可以叫 schema)保存为数据库目录下的一个子目录。创建表时,mysql会在数据库子目录下创建一个和表同名的.frm文件保存表的定义。而:mysql会在数据库子目录下创建一个和表同名的.frm文件保存表的定义。
如:创建一个名为a的表,mysql会在a.frm文件中保存该表的定义。
InnoDB的数据存储在表空间中,事务型存储引擎,支持崩溃后的安全恢复,采用MVCC来支持高并发,默认级别REPEATABLE READ(可重复读),通过间隙锁(next-key locking)策略来防止幻读的出现,间隙锁可以使InnoDB不仅仅锁定查询涉及的行,还会对索引中的间隙进行锁定,防止幻影行的插入。
InnoDB基于聚族索引建立。
MyISAM将表存储在两个文件中:数据文件和索引文件,分别以.MYD和MYI为扩展名。
MyISAM引擎不支持事务,不支持崩溃后的安全恢复。
版权声明:本文为博主原创文章,未经博主允许不得转载

本文深入探讨MySQL中不同存储引擎的特点及工作原理。InnoDB作为事务型存储引擎支持崩溃后的安全恢复,采用MVCC机制保障高并发操作,并通过间隙锁策略避免幻读。MyISAM则以简单的非事务性存储方式运作,不支持崩溃恢复。本文还详细解释了两种存储引擎如何管理和存储数据。
最低0.47元/天 解锁文章
9235

被折叠的 条评论
为什么被折叠?



