mysql各种存储引擎的总结

1.存储引擎的作用

决定数据的底层存储结构
eg: 这个数据是存储在内存中还是磁盘中、生成几个文件、每个文件里面存放什么东西

-- 查看底层数据在磁盘中存储的路径:
show variables like "datadir";
-- 结果:datadir D:\softwarePackages\mysql-5.6.50-winx64\data\

2.存储引擎的变化

mysql引擎的变化:ISAM -> MyISAM -> InnoDb

在这里插入图片描述

3.相关命令

3.1.查看当前版本mysql支持的存储引擎
show engines

在这里插入图片描述

tip: Transactions表示是否支持事务,从上面的结果来看,只有InnoDb支持

3.2.查看表的存储引擎
-- 查看mysql数据库中,所有表的信息
show table status from mysql

在这里插入图片描述

4.常见存储引擎介绍

mysql里面有很多存储引擎,主要的有innoDb、MyISAM、memory、csv、archive这几个,他们是可以替换的,所以也叫做插件式的存储引擎

4.1.innoDb

tip: 这是mysql5.5版本之后,默认使用的存储引擎

底层存储文件:
2个文件:1个frm文件,存储表结构定义信息;1个ibd文件,存放表索引和数据

  • 查看有哪些表是innoDb的:
    在这里插入图片描述

  • 查看这些表的底层存储情况:
    在这里插入图片描述

优点:

  • 支持事务
  • 支持行锁

适用场景:

  • 写多的场景;
  • 需要事务的场景;
4.2.myISAM

底层存储文件:
3个文件:1个frm文件存表结构定义、1个myi文件存索引、1个myd文件存数据

  • 查看有哪些表是myISAM的:
    在这里插入图片描述

  • 查看这些表的底层存储情况:
    在这里插入图片描述

优点:

  • 插入、查询快
  • count统计快,因为记录了表的总记录数

缺点:

  • 因为只支持表锁,所以,插入、更新会锁表

适用场景:

  • 只读的场景;
  • 需要快速插入大量数据的场景,可以先建个myIsam的表插入数据,再转换成innoDb的表
4.3.memory

底层存储文件:1个frm文件存表结构定义

优点:

  • 读写速度快,因为是访问内存;

缺点:

  • 重启,或者数据库崩溃,数据就会丢失;

适用场景:

  • 充当中间表
4.4.csv

底层存储文件:
3个文件:1个frm文件存表结构定义,1个csv文件,1个csm文件

  • 查看有哪些表是csv的:
    在这里插入图片描述

  • 查看这些表的底层存储情况:
    在这里插入图片描述

优点

  • 底层存储的数据是csv格式,可以直接打开看到数据
  • 不同数据库之间,迁移数据很方便,只要2个库都有那个表结构,把文件挪过去覆盖后,执行1个重新加载的命令就能刷新数据
-- 重新加载表的命令:
flush tables

缺点

  • 不支持索引
  • 不允许空行

适用场景

  • db间迁移数据
4.5.archive

底层存储文件:
2个文件:1个frm文件存表结构定义,1个arz文件

创建1个archive的表,可以看到它的底层存储文件:
在这里插入图片描述

优点

  • 插入快速
  • 存储在压缩文件中,所占的空间小

缺点

  • 不支持索引
  • 不支持更新、删除操作

适用场景

  • 存储归档信息

5.各存储引擎对比汇总

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值