MySQL中常见的存储引擎有什么?

MySQL中常见的存储引擎有什么?

MySQL中有三种常见的引擎:InnoDB(默认)MyISAMMemory

InnoDB存储引擎作为MySQL的默认存储引擎有很多特点:

  • B+树作为索引结构,叶子节点上存放表中的数据,非叶子节点存放索引。
  • 支持事务ACID ----> 原子性,一致性,隔离性,持久性。
  • 事务隔离级别。(读未提交,读已提交,可重复读,串行化)
  • 支持外键。
  • 支持表锁和行锁。
  • 适合处理大量数据,性能好。

MyISAM引擎特点:

  • 同样使用B+树作为索引结构,但与InnoDB不同的是,它的叶子节点data域存放的是数据记录的地址,在拿到叶子节点的地址后,再去磁盘中查找数据。
  • 不支持事务。
  • 支持表锁,不支持行锁。
  • 不支持外键。
  • 对事务完整性没有要求。
  • 存储了行数。(意味着 select count(*) from t速度很快,因为不用全表扫描,直接拿出它保存的数值就行)
  • 强调读取速度。
  • 适合场景:如果一个表只需要查询,而不需要修改,删除的话,就可以使用这个引擎,加快效率。

Memory引擎特点:

  • 使用保存在内存中的内容来创建表,每个MEMORY表只实际对应一个磁盘文件。
  • MEMORY类型的表访问的非常的快,因为它的数据是放在内存中的,并且默认使用Hash索引。
  • 因为在内存中进行操作,所以它的速度非常快(比MyISAM,InnoDB还要快),但是一旦关闭服务,表中的数据就会丢失,数据的安全性没有保证。
  • 存储的数据必须是长度不变的格式。

所以,要是想要对SQL进行优化,也可以选择一个合适的引擎去加快查询速度,但要确保引擎的合理性。

相关推荐
文城5214 分钟前
Mysql存储过程(学习自用)
数据库·学习·mysql
沉默的煎蛋10 分钟前
MyBatis 注解开发详解
java·数据库·mysql·算法·mybatis
呼啦啦啦啦啦啦啦啦11 分钟前
【Redis】事务
数据库·redis·缓存
HaoHao_01012 分钟前
AWS Serverless Application Repository
服务器·数据库·云计算·aws·云服务器
C语言扫地僧27 分钟前
MySQL 事务及MVCC机制详解
数据库·mysql
小镇cxy30 分钟前
MySQL事物,MVCC机制
数据库·mysql
书生-w1 小时前
Redis Windows 解压版安装
数据库·windows·redis
猿小飞1 小时前
redis 5.0版本和Redis 7.0.15的区别在哪里
数据库·redis·缓存
雾里看山1 小时前
【MySQL】 库的操作
android·数据库·笔记·mysql
꧁瀟洒辵1恛꧂2 小时前
从新手到高手的蜕变:MySQL 视图进阶全攻略
数据库·mysql