常用存储引擎对mysql性能的影响

来源:互联网 发布:python 获取桌面路径 编辑:程序博客网 时间:2024/05/22 02:12

一、存储引擎之MyISAM

1、mysql5.58之前版本默认存储引擎

2、由MYDMYI文件组成。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 文本方式存储的。由CSVCSM两个文件组成。其中CSV文件存储表内容,CSM文件存储表的元数据如表状态和数据量。
这里写图片描述

2、所有列不能为NULL

3、不支持索引。

四、存储引擎之Archive

1、相比其他存储引擎来说会更加节省空间。

2、数据存储在ARZ为后缀的文件中。
这里写图片描述

3、只支持 insertselect 操作。

4、只允许在自增 ID 上增加索引。

五、存储引擎之Memory

1、所有数据全部保存在内存中

2、支持HASH索引BTree索引

3、所有字段都为固定长度 varchar(10) = char(10)

4、不支持 text、blob 等大字段。

0 0
原创粉丝点击