mysql数据库 | 数据库引擎简述

Mysql常见引擎

参考自 @SileeLiu 的文章, 该文内容比较精悍短小, 详细可参考

1. 引擎种类

查看MySQL数据库使用的引擎

SHOW ENGINES;

查看数据库默认使用哪个引擎

SHOW VARIABLES LIKE 'storage_engine';

在这里插入图片描述

1.1 InnoDB

InnoDB是MySQL默认的存储引擎, InnoDB也是事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键,上图也看到了,InnoDB是默认的MySQL引擎。
InnoDB主要特性有:

  1. 支持事务
  2. 支持外键
  3. 支持聚簇索引
  4. 最小锁粒度是行锁
  5. 本地存储数据文件为.frm 和 .data

1.2 MyISAM

MyISAM基于ISAM存储引擎,并对其进行扩展。它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。MyISAM拥有较高的插入、查询速度,但不支持事物,不支持外键;

1.3 MEMORY

MEMORY存储引擎将表中的数据存储到内存中,为查询和引用其他表数据提供快速访问。

Mysql中的中间表就是用Memory引擎的, 所以数据库优化中有一条是尽量和用联合索引代替中间表

1.4 Archive

暂时略

1.5 存储引擎的选择

不同的存储引擎都有各自的特点,以适应不同的需求,如下表所示:
在这里插入图片描述

  1. 如果要提供提交、回滚、崩溃恢复能力的事物安全(ACID兼容)能力,并要求实现并发控制,InnoDB是一个好的选择
  2. 如果数据表主要用来插入和查询记录,则MyISAM引擎能提供较高的处理效率
  3. 如果只是临时存放数据,数据量不大,并且不需要较高的数据安全性,可以选择将数据保存在内存中的Memory引擎,MySQL中使用该引擎作为临时表,存放查询的中间结果
  4. 如果只有INSERT和SELECT操作,可以选择Archive,Archive支持高并发的插入操作,但是本身不是事务安全的。Archive非常适合存储归档数据,如记录日志信息可以使用Archive

猜你喜欢

转载自blog.csdn.net/weixin_40597409/article/details/115269776