存储引擎介绍和基本使用
基本介绍:
存储引擎是数据库的核心,存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式 。存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。我们可以在创建表的时候,来指定选择的存储引擎,如果没有指定将自动选择默认的存储引擎。
操作引擎:
查询数据库可用引擎:show engines;
查询某张表的引擎:show create table 表名;
创建表时指定引擎:
create table表名(
字段 字段类型 [ comment 字段注释 ] ,
......
) engine= innoDB [ comment表注释 ] ;
修改表引擎: alter table 表名 engine = 引擎名字;
不建议修改已存在表的引擎,修改表引擎可能出现很多问题,比如数据丢失、兼容性问题等等
三个常见引擎
InnoDB:
InnoDB是MySQL5.6及以后的默认存储引擎。它专注于提供符合ACID标准的事务支持、可靠性和高并发性。
InnoDB的主要特点包括:
- 支持行级锁,实现对不同行的并发访问。
- 支持外键约束,确保数据完整性。
- 内置事务支持,能够实现原子性、一致性、隔离性和持久性(ACID)。
- 提供崩溃恢复和自动崩溃恢复功能,确保数据的一致性。
文件格式:xxx.ibd(存储该表的表结构(frm-早期的 、sdi-新版的)、数据和索引)
MyISAM:
MyISAM曾经是MySQL5.6之前的默认存储引擎。MyISAM以其简单和速度而闻名,适用于读密集型工作负载。
MyISAM的主要特点包括:
- 表级锁定,对于大量写操作可能影响并发性。
- 支持全文搜索功能,能够进行高效的基于文本的搜索,访问速度快。
- 结构简单,易于理解和管理。
- 不支持事务和外键约束。
文件格式:
xxx.sdi:存储表结构信息
xxx.MYD: 存储数据
xxx.MYI: 存储索引
Memory(Heap):
Memory存储引擎,也称为Heap,将数据存储在内存中而不是磁盘上。它具有极快的读写操作,非常适合临时或缓存表。
Memory存储引擎的主要特点包括:
- 数据存储在内存中,相比于基于磁盘的存储引擎,具有更快的访问速度。
- 不支持持久性存储,当服务器重新启动时数据会丢失。
- 类似于MyISAM,采用表级锁定,在大量写操作下可能影响并发性。
- 索引为hash索引(默认)
文件格式:xxx.sdi(存储表结构信息,因为它的数据是在内存中)
特征区别:
常见问题:InnoDB引擎与MyISAM引擎的区别 ?
1. InnoDB引擎, 支持事务, 而MyISAM不支持。
2. InnoDB引擎, 支持行锁和表锁, 而MyISAM仅支持表锁, 不支持行锁。
3. InnoDB引擎, 支持外键, 而MyISAM是不支持的。
上一篇:MySQL体系结构和四层架构介绍