数据库中的存储引擎

存储引擎:是基于数据库里的表,存储数据,建立索引,更新/查询数据等技术的实现方式

InnoDB:

InnoDB:是一种兼顾高可靠性和高性能的通用存储引擎

特点:
  • DML操作遵循ACID模型,支持事务;
  • 用的是行级锁,提高了并发访问性能;
  • 支持外键,保证了数据的一致性;
文件:

xxx.ibd:xxx代表的是表名,innodb引擎的每张表都会对应一个表空间文件,存储该表的表结构,数据和索引

参数:innodb_file_per_table 如:show variables like ‘innodb_file_per_table’;

逻辑存储结构:
  • tablespece :表空间
  • segment:段
  • extent:区(1M)
  • page:页
  • row:行

MyIsAM:

MyISAM:是mysql早期的默认存储引擎

特点:
  • 不支持事务,不支持外键
  • 用的是表锁,不支持行锁
  • 访问速度快
文件:
  • xxx.sdi:存储表的结构信息
  • xxx.MYD:存储数据
  • xxx.MYI:存储索引

Memory

介绍:Memory引擎的表数据存储在内存中,由于受硬件问题或断电影响,只能将这些表作为临时表或缓存使用

特点:
  • 内存存放
  • hash索引(默认)
文件:xxx.sdi:内存表结构信息