MySQL-存储引擎

简述

在MySQL数据库中,数据使用各种不同的技术转储在文件或内存中,这种技术或功能就称为存储引擎。

查看存储引擎信息

查看MySQL中支持的存储引擎

show engines;

查看当前默认正在使用的存储引擎

show variables like 'storage_engine';

常用存储引擎类型

MyISAM

不支持事务,也不支持外键。访问速度快。

磁盘文件

每个MyISAM存储引擎的表,在磁盘上存储为3个文件,文件名和表名相同,扩展名如下:

  • .frm (存储表定义)
  • .MYD (MYData,存储数据)
  • .MYI (MYIndex,存储索引)

MyISAM 的表数据和索引数据是分开存储的。

适合的场景
  • 读多的应用,如:博客,头条新闻
  • 数据一致性要求不高的业务

InnoDB

支持事务,支持外键约束,

磁盘文件
  • .frm (存储表定义)

InnoDB 的表数据与索引数据是存储在一起的,都位于 B+ 数的叶子节点上

适合的场景
  • 需要事务支持,如:银行支付业务
  • 数据一致性要求高的业务

Memory

Memory存储引擎将表的数据存放在内存中。每个MEMORY表实际对应一个磁盘文件,格式是.frm ,该文件中只存储表的结构,而其数据文件,都是存储在内存中,这样有利于数据的快速处理,提高整个表的效率。MEMORY 类型的表访问非常地快,因为他的数据是存放在内存中的,并且默认使用HASH索引 , 但是服务一旦关闭,表中的数据就会丢失。

磁盘文件

每个 MEMORY 表实际只对应一个磁盘文件,格式是 .frm。它只保存表结构

MERGE

MERGE 存储引擎是一组 MyISAM 表的组合,MERGE 表本身没有数据,对 MERGE 类型的表进行查询、更新、删除的操作,实际上是对内部的 MyISAM 表进行的。

磁盘文件

MERGE 表在磁盘上保留两个文件,一个是 .frm 文件存储表定义、一个是 .MRG 文件存储 MERGE 表的组成。

Archive

ARCHIVE存储引擎只支持INSERT和SELECT操作。

磁盘文件
  • .frm 文件结构文件
  • .arz 数据文件
适合场景
  • 日志,流水等数据的归档业务场景

CSV

csv表允许以csv格式导入或转储数据

磁盘文件
  • .csv结尾的文件是保存数据的文件
  • .csv结尾的文件是元信息文件,保存表的状态及存储的数据量
原文地址:https://www.cnblogs.com/binliubiao/p/15233275.html