Mysql - 引擎介绍
2023-12-13 23:50:49
引擎介绍
InnoDB 引擎:具备外键支持功能的事务存储引擎
- InnoDB是MySql默认的事务型引擎,他被设计用来处理大量短期的事务,可以确保事务的完整提交(Commit)和回滚(Rollback)。
- 除了增加和查询外,还需要更新、删除操作,那么优先选择InnoDB存储引擎
- 对比MyISAM的储存引擎,InnoDB写的效率差一些,并且会占用更多的磁盘空间以保存数据和索引。
- MyISAM:只缓存索引,不缓存真实数据;InnoDB不仅缓存索引还要缓存真实的数据,对内存要求较高,而且内存对性能有决定性的影响
MyISAM 引擎:主要的非事务处理储存引擎
- MyISAM 提供了大量的特性,包括全文索引、压缩、空间函数等,但是MyISAM 不支持事务,行级锁、外键 那么毫无疑问他在面临崩盘的时候他的数据是无法安全恢复的。
- 优势是 访问时快速的,对事务的完整性没有要求
- 针对统计数据有额外的常数储存,故而count(*)他的查询速度是很快的
- 业务应用场景:只读应用或者以读为主的业务
对比项 | MyISAM | InnoDB |
---|---|---|
外键 | 不支持 | 支持 |
事务 | 不支持 | 支持 |
行表锁 | 表锁,即使操作一条记录也会锁住整个表,那么在这种情况下,很明显他不适合高并发的场景 | 行锁,操作时只锁住某一行,不对其他行有影响,适合高并发的场景 |
缓存 | 只缓存索引,并不缓存数据 | 不仅缓存索引还要缓存真实数据,对内存要求是比较高的,而且对性能的要求是比较高的 |
自带系统表使用 | Y | N |
关注点 | 性能:节约资源、简单业务 | 事务:并发写、事务、资源 |
默认安装 | Y | Y |
默认使用 | N | Y |
Archive 引擎:用于数据存档
- archive 是归档的意思,仅仅支持插入和查询的俩种功能(行插入之后那么久不能修改了)
- 拥有很好的压缩机制,使用zlib压缩库,在记录请求的时候进行压缩,经常被用作仓库使用
- 拥有很高的插入速度,但是查询较差
Blackhole 引擎:丢弃写操作,读操作会返回空内容
- Balckhole引擎没有实现任何储存机制,他会丢弃所有插入的数据,补做任何的保存
CSV引擎:储存数据的时候,逗号分隔各个数据项
- CSV 引擎可以将普通的CSV文件作为MySql 表来处理 但是不支持索引
- CSV 引擎可以作为一种数据交换的机制 非常有用
- 对于数据的快速导入,导出是有明显的优势的
# demo
create table csv_domain (id int not null, name varchar(50) not null ) engine = csv;
# 查看建表信息
show create table csv_domain;
# 插入数据库
insert into csv_domain(id, name) values (1, 'domain');
insert into csv_domain(id, name) values (2, 'mysql');
-- 可以查找到对应的 csv 文件 那么我们就可以打开对应 csv 文件 查看数据
Menory 引擎:置于内存的表
Memory 采用的逻辑介质是内存,响应速度很快,但是当mysql守护进程奔溃的时候对于数据来说 我的数据那么就会丢失,另外我需要要求储存的数据结构是不变的格式。
主要特征:
- Memory同时支持 哈希索引 和 B+ 树索引
- Menpry表至少比MyISAM表要快一个数量级
- 数据文件和索引文件分开存储
- 生命周期短,基于这个缺陷选择Memory存储引擎的时候需要特别的小心
Federted 引擎:访问远程表
- 服务器代理
Merge 引擎:管理多个MyISAM表集合
NDB 引擎:Mysql集群专用储存引擎
文章来源:https://blog.csdn.net/weixin_46128463/article/details/134978842
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!