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

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

MySQL中有三种常见的引擎:InnoDB(默认),MyISAM,Memory。

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

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

MyISAM引擎特点:

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

Memory引擎特点:

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

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

相关推荐
派小心.5 小时前
网站统计多域名数据隔离配置
大数据·数据库·人工智能·小程序·数据分析
木棉软糖5 小时前
JDBC 读 ResultSet 读到一半,报 stream closed
java·mysql·spring
DongQiShanRen5 小时前
六根硬件映射(中):双站校验、生克闭环与驱动接口
数据库·人工智能·算法·rust·哈希算法·集成学习
wespaul6 小时前
VeapAI 自然语言操作实战|第 09 篇:收尾——六条原则与三条演进线
大数据·数据库·人工智能
tryxr6 小时前
事务的特性
数据库·事务
广州灵眸科技有限公司6 小时前
瑞芯微(EASY EAI)RV1126B DeepSeek R1部署教程
linux·数据库·yolo
用户84913717547166 小时前
【技术面试高频】MySQL 存储 IP 地址:你还在用 VARCHAR?
mysql·面试
枫叶丹46 小时前
异构数据库结构如何同步:理解 KFS 的 DDL 转换机制
网络·数据库
这个DBA有点耶6 小时前
MySQL B-tree索引并发控制优化:写密集场景的锁瓶颈与内核级解法
java·数据库·程序人生·算法·database·dba