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

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

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

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

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

MyISAM引擎特点:

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

Memory引擎特点:

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

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

相关推荐
野犬寒鸦2 小时前
从零起步学习Redis || 第四章:Cache Aside Pattern(旁路缓存模式)以及优化策略
java·数据库·redis·后端·spring·缓存
茉莉玫瑰花茶2 小时前
Redis - Bitfield 类型
数据库·redis·缓存
lang201509282 小时前
MySQL InnoDB备份恢复全指南
数据库·mysql
爱吃香蕉的阿豪3 小时前
.NET Core 中 System.Text.Json 与 Newtonsoft.Json 深度对比:用法、性能与场景选型
数据库·json·.netcore
mpHH3 小时前
postgresql中的默认列
数据库·postgresql
jllws13 小时前
数据库原理及应用_数据库基础_第4章关系模型的基本理论_数据库完整性规则和MySQL提供的约束
数据库
majunssz5 小时前
深入剖析Spring Boot依赖注入顺序:从原理到实战
java·数据库·spring boot
比特森林探险记6 小时前
MySQL 架构全景解析
数据库·mysql·架构
数字冰雹6 小时前
图观 流渲染场景服务器
服务器·前端·数据库·数据可视化
pccai-vip7 小时前
系分论文《论非关系型数据库(NoSQL)在社交媒体内容管理系统中的应用》
数据库·nosql·媒体