一、存储引擎之MyISAM
1、mysql5.58之前版本默认存储引擎
2、由MYD和MYI文件组成。MYD是数据文件,MYI是索引文件。
3、使用的是表级锁,所以并发性支持不太理想。
4、可以对表进行修复,可能会丢失数据。
对表进行检查:check table tablename
对表进行修复:repair table tablename
5、支持全文索引、前缀索引。
6、支持数据压缩:myisampack
。这里需要注意的是,压缩之后就变成可读了。
7、不支持事务。
二、存储引擎之Innodb【强烈推荐】
1、mysql5.58之后版本默认存储引擎
2、使用表空间进行数据存储。
根据innodb_file_per_table
来判断是那种类型的表空间。
ON
为独立表空间。也就是*.ibd
中。【强烈推荐】
OFF
:系统表空间。也就是ibdata1文件中。
3、是一种事务性存储引擎,完全支持事务的ACID特性。
ACID具有四个特性:原子性、一致性、隔离性、持久性。
4、使用的是行级锁,行级锁可以最大程度的支持并发,并且是由存储引擎层实现的。
给Innodb引擎表加表级锁:lock table 表名 write;
给Innodb引擎表解锁:unlock tables;
5、Innode状态检查:show engine innodb status
6、支持普通索引、唯一索引、主键索引、组合索引、全文索引。
三、存储引擎之csv
1、数据以 *.csv
文本方式存储的。由CSV和CSM两个文件组成。其中CSV文件存储表内容,CSM文件存储表的元数据如表状态和数据量。
2、所有列不能为NULL。
3、不支持索引。
四、存储引擎之Archive
1、相比其他存储引擎来说会更加节省空间。
2、数据存储在ARZ为后缀的文件中。
3、只支持 insert 和 select 操作。
4、只允许在自增 ID 上增加索引。
五、存储引擎之Memory
1、所有数据全部保存在内存中
2、支持HASH索引、BTree索引。
3、所有字段都为固定长度 varchar(10) = char(10)
;
4、不支持 text、blob 等大字段。