MYSQL支持的存储引擎有哪些, 有什么区别 ?

xiaojiuaigc@163.com 发布于 2024-11-09 287 次阅读


存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式 。存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。

特性

MyISAM

InnoDB

MEMORY

事务安全

不支持

支持

不支持

锁机制

表锁

表锁/行锁

表锁

外键

不支持

支持

不支持

在mysql中提供了很多的存储引擎,比较常见有InnoDB、MyISAM、Memory

  • InnoDB存储引擎是5.5之后是默认的引擎,它支持事务、外键、表级锁和行级锁
  • MyISAM是早期的引擎,它不支持事务、只有表级锁、也没有外键,用的不多
  • Memory主要把数据存储在内存,支持表级锁,没有外键和事务,用的也不多

 

InnoDB的介绍
  • 介绍

       InnoDB是一种兼顾高可靠性和高性能的通用存储引擎,在 MySQL 5.5 之后,InnoDB是默认的 MySQL 存储引擎

  • 特点
  • DML操作遵循ACID模型,支持事务
  • 行级锁,提高并发访问性能
  • 支持外键  FOREIGN KEY约束,保证数据的完整性和正确性
  • 文件
  • ibd:xxx代表的是表名,innoDB引擎的每张表都会对应这样一个表空间文件,存储该表的表结构(frm、sdi)、数据和索引。
  • frm 存储表结构(MySQL8.0时,合并在表名.ibd中)