InnoDB引擎与MyISAM引擎

​📒个人主页:热爱生活の李📒
​❤️感谢大家阅读本文,同时欢迎访问本人主页查看更多文章​❤️
🙏本人也在学习阶段,如若发现问题,请告知,非常感谢🙏

查看存储引擎

show engines

在这里插入图片描述

设置默认的存储引擎

查看默认存储引擎
show variables like ‘%storage_engine%’

select @@default_storage_engine

修改默认存储引擎
启动服务器的命令行
set default_storage_engine = MyISAM;
或修改my.cnf文件
default-storage-engine=MyISAM

设置表的存储引擎

创建表时指定存储引擎

create table 表名 (
建表语句
)engine = 存储引擎

修改表的存储引擎

alter table 表名 engine = 存储引擎名

InnoDB引擎与MyISAM引擎

InnoDB:具备外键支持功能的事务存储引擎

InnoDB是MySQL的默认事务型引擎,它被设计用来处理大量短期(short-lived)事务。可以确保事务的完整提交和回滚。
对比MyISAM的存储引擎,InnoDB写的处理效率差一些,并且回占用更多的磁盘空间以保存数据和索引。
MyISAM只缓存索引,不缓存真实数据;InnoDB不仅缓存索引还要缓存真实数据,对内存要求较高,而且内存大小对性能有决定性的影响。

MyISAM:非事务处理引擎

MyISAM提供了大量的特性,包括全文索引、压缩、空间函数(GIS)等,但MyISAM不支持事务、行级锁、外键,有一个毫无疑问的缺点就是崩溃后无法安全恢复
优势是访问的速度快,对事务完整性没有要求或者以select为主的应用

MyISAM与InnoDB对比

首先对于InnoDB存储引擎,提供了良好的事务管理、崩溃修复能力和并发控制。因为InnoDB存储引擎支持事务,所以对于要求事务完整性的场合需要选择InnoDB,比如数据操作除了插入和查询以外还包含有很多更新、删除操作,像财务系统等对数据准确性要求较高的系统。缺点是其读写效率稍差,占用的数据空间相对比较大。
其次对于MyISAM存储引擎,如果是小型应用,系统以读操作和插入操作为主,只有很少的更新、删除操作,并且对事务的要求没有那么高,则可以选择这个存储引擎。MyISAM存储引擎的优势在于占用空间小,处理速度快﹔缺点是不支持事务的完整性和并发性。

对比项MyISAMInnoDB
外键不支持支持
事务不支持支持
行级锁不支持支持
缓存只缓存索引缓存索引和真实数据,对内存要求高,内存大小也影响性能
关注点性能:节省资源、消耗少、简单业务事务:并发写、事务、更大资源

拓展 Memory引擎:置于内存中的表

Memory采用的逻辑介质是内存,响应速度很快,但是当mysqld守护进程崩溃的时候数据会丢失。另外,要求存储的数据是数据长度不变的格式。

Memory同时支持哈希索引和B+树索引
哈希索引相等的比较快但是对于范围查询比较慢
默认使用哈希索引
如果希望使用b树索引,可以在创建索引时选择使用
Memory表至少比MyISAM表快一个数量级
Memory表的大小是受到限制的
表的大小主要取决于两个参数,分别是max_rows和max_heap_table_size
数据文件与索引文件分开存储
缺点:其数据易丢失,生命周期短。

使用Memory存储引擎的场景
1、目标数据比较小,而且频繁访问
2、如果数据是临时的并且必须立即可用得到
3、存在在Memory表中数据丢失也没有关系

有了Memory为啥还要redis
redis支持持久化,更加安全且还支持多种数据结构的存储

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值