这是我参与8月更文挑战的第14天,活动详情查看:8月更文挑战
前言: 本篇文章 是我关于MySQL的第14篇文章,水平一般、能力有限。文章写的比较浅,适合新手来看。本篇文章采用MySQL8.0来举例。上篇文章简单介绍了InnoDB存储引擎。本篇文章来介绍一下MyISAM存储引擎。
1. 存储
MyISAM存储引擎的数据会存在索引文件和数据文件中。存储数据时可以用固定值也可以用动态来指定范围。MyISAM存储的最大空间,受操作系统的单文件最大尺寸影响。
2. 特性
MyISAM存储引擎是MySQL5.1之前的默认引擎。其有很多特性,包括但不限于空间函数、全文索引、压缩等。但MyISAM不支持行级锁和事务,并且无法在崩溃后安全修复,这也是后来被替换掉默认引擎的原因。
但是在一些表比较小,只需要查询时还是可以使用MyISAM存储引擎的。
锁:
MyISAM存储引擎只能给全表加锁,并且在有查询语句时仍然可以进行插入数据,称之为并发插入。
修复:
MyISAM存储引擎是不支持崩溃修复的。但是可以进行简单的修复,比如说通过check语句来检查表的错误。在发现错误时可以通过REPAIR TABLE mytable进行修复。还可以在mysql服务器关闭的情况下,用myisamchk命令行工具进行检查,并修复。
索引:
MyISAM支持全文索引,是根据分词创建的索引。可以在复杂的查询中生效。
压缩表:
在表被创建后,不会再进行修改操作,这样适合采用MySIAM来压缩表。适合一些不会改变的配置表。