【6.0】MySQL之存储引擎

【一】什么是存储引擎

  • 日常生活中文件格式有很多,并且针对不同的文件格式会有对应不同的存储方式和处理机制
  • 针对不同的数据应该有对应的不同的处理机制

存储引擎就是不同的处理机制

【二】MySQL主要的存储引擎

【1】Innodb

  • 是MySQL5.5版本之后的默认存储引擎
  • 支持事务/行锁/外键

【2】myisam

  • 是MySQL5.5版本之前的默认存储引擎
  • 速度比innodb快,但是数据安全较弱

【3】memory

  • 内存引擎
  • 数据全部存放在内存中
  • 存储速度快,但是断电数据丢失

【4】blackhole

  • 黑洞引擎
  • 无论存什么都会立刻消失

【5】查看所有的数据库存储引擎

show engines;

【三】不同的存储引擎存储数据的异同点

【1】建表

create table t1(id int) engine=innodb;
create table t2(id int) engine=myisam;
create table t3(id int) engine=blackhole;
create table t4(id int) engine=memory;

img

【2】文件说明

(1)Innodb

  • t1.frm
    • 表结构
  • t1.ibd
    • 表结构

Innodb:默认的引擎

(2)myisam

  • t2.frm
    • 表结构
  • t2.MYD
    • 表数据
  • t2.MYI
    • 索引(index),类似于书的目录,基于目录查找数据的速度会很快

myisam:数据具有索引,读取数据快

(3)blackhole

  • t3.frm
    • 表结构

blackhole:黑洞引擎,存什么数据都会消失

(4)memory

  • t4.frm
    • 表结构

memory:数据缓存到内存

【3】存储数据

insert into t1 values(1);
insert into t2 values(1);
insert into t3 values(1);
insert into t4 values(1);

【4】查看数据

select * from t1;
select * from t2;
select * from t3;
select * from t4;

(1)blackhole 不存储数据

img

  • 可以发现除了黑洞引擎,其他引擎所在的表内都存在数据

(2)memory 数据是存在内存中

  • memory 数据是存在内存中的,如何印证?
    • 重启mysql服务

img

  • 可以发现memory 表中的数据已经不存在了
posted @ 2024-01-29 21:41  Chimengmeng  阅读(18)  评论(0编辑  收藏  举报
/* */