概述
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.0 | 1996年 |
… | 中间有很多版本,就不记了,我都没用过 |
5.5 | innoDb开始成为默认引擎 |
5.6 | 也叫mysql6.x |
5.7 | 也叫mysql7.x |
8.0 | 2016年 |
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的:
- 查看这些表的底层存储情况:
优点:
- 插入、查询快
- 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各存储引擎对比所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复