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

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

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

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

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

MyISAM引擎特点:

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

Memory引擎特点:

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

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

相关推荐
777VG4 小时前
PostgreSQL +martin将多张表输出成一个 MVT
前端·数据库·postgresql
aax12134534 小时前
VOC 集群治理工程实操|美丽蓝天绿岛项目 RTO 工艺选型、管控方案与申报要
大数据·数据库·人工智能
IvorySQL5 小时前
PG 日报|优化缓冲区批量扫描,降低多套接字并发竞争
数据库·人工智能·postgresql·开源·区块链
这个DBA有点耶5 小时前
交易型数据库是什么?OLTP核心能力与2026选型指南
数据库·数据仓库·sql·database·数据库架构·olap·dba
大熊猫侯佩5 小时前
WWDC26 全新 SwiftData 的 .codable 宏选项:它不是泛型专用胶水
数据库·swift·apple
童谣17 小时前
越华环保集团市级统筹申报数字化中台:政策校验与减排仿真一体化架构
数据库·架构
制造数据与AI践行者老蒋7 小时前
离谱!PromptTemplate 遇上 JSON,花括号直接引发解析战争
数据库·microsoft·json
中微极客7 小时前
用LangChain 0.3构建生产级RAG与Agent:从API集成到Streamlit部署
数据库·人工智能·langchain
吴声子夜歌7 小时前
MongoDB 4.x——并发优化
数据库·mongodb
不如语冰8 小时前
AI大模型入门-Python进阶-上下文管理与with语句
开发语言·数据结构·数据库·人工智能·pytorch·redis·python