我是靠谱客的博主 羞涩抽屉,最近开发中收集的这篇文章主要介绍mysql各存储引擎对比,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

mysql各存储引擎对比

    • 1. 存储引擎介绍
      • 1.1 存储引擎的变化
      • 1.2 作用
      • 1.3 查看当前版本mysql支持的存储引擎
      • 1.4 查看表的存储引擎
    • 2. 常见存储引擎介绍
      • 2.1 innoDb
      • 2.2 myISAM
      • 2.3 memory
      • 2.4 csv
      • 2.5 archive
    • 3. 各存储引擎对比汇总

1. 存储引擎介绍

1.1 存储引擎的变化

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

mysql版本备注
1.01996年
中间有很多版本,就不记了,我都没用过
5.5innoDb开始成为默认引擎
5.6也叫mysql6.x
5.7也叫mysql7.x
8.02016年

1.2 作用

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

-- 查看底层数据在磁盘中存储的路径:
show variables like "datadir";
-- 结果:datadir D:softwarePackagesmysql-5.6.50-winx64data

1.3 查看当前版本mysql支持的存储引擎

show engines

结果:

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

1.4 查看表的存储引擎

-- 查看mysql数据库中,所有表的信息
show table status from mysql

结果:

2. 常见存储引擎介绍

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

2.1 innoDb

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

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

  • 查看有哪些表是innoDb的:

  • 查看这些表的底层存储情况:

优点

  • 支持事务
  • 支持行锁

适用场景

  • 写多的场景;
  • 需要事务的场景;

2.2 myISAM

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

  • 查看有哪些表是myISAM的:

  • 查看这些表的底层存储情况:

myisam图片2

优点

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

缺点

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

适用场景

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

2.3 memory

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

优点

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

缺点

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

适用场景

  • 充当中间表

2.4 csv

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

  • 查看有哪些表是csv的:

  • 查看这些表的底层存储情况:


优点

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

缺点

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

适用场景

  • db间迁移数据

2.5 archive

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

  • 创建1个archive的表,可以看到它的底层存储文件:

优点

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

缺点

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

适用场景

  • 存储归档信息

3. 各存储引擎对比汇总

存储引擎优点缺点适用场景
innodb支持事务; 支持行锁;写多;需要事务的场景;
myIsam插入、查询快;统计快;支持表锁,插入更新会锁表;读多;快速插入大量数据;
memory数据在内存中,读写快;重启或数据库崩溃数据会丢失;充当中间表
csv数据文件可以支持打开;导入导出方便;不支持索引;不允许空行;db间迁移数据
archive插入特别快;占用空间小;不支持索引;不支持更新、删除;存储归档信息

最后

以上就是羞涩抽屉为你收集整理的mysql各存储引擎对比的全部内容,希望文章能够帮你解决mysql各存储引擎对比所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部