概念
- 数据库引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据库引擎进行创建、查询、更新和删除数据
数据库引擎 解释 SQL语句,提取出需要的数据并返回给访问者。 对于访问者来说,数据库引擎就是SQL语句的解释器
- MySQL的核心是存储引擎
数据库引擎是用于存储、处理和保护数据的核心服务,利用数据库引擎可以控制访问权限并快速处理事务,利于处理大量数据的应用程序的要求,包括创建用于存储数据的表和用于查看、管理和保护数据安全的数据库对象(索引 视图 存储过程 等)
常见存储引擎
- 使用不同的数据库引擎可以获得特定的功能,现在许多不同的数据库管理系统都支持多种不同的数据引擎
- 不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能
InnoDB
事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键,是默认的MySQL引擎
MyISAM
MyISAM基于ISAM存储引擎,并对其进行扩展,它是在Web、数据存储和其他应用环境下最常用的存储引擎之一,具有较高的插入和查询速度,支持索引 但不支持事务
ISAM引擎
- 在设计的时候考虑到 数据库被查询的次数要远大于更新的次数,ISAM读取操作速度快,且不占用大量的内存和存储资源
- 结构:
- 不足:
- 不支持事务处理
- 不支持外来建
- 不能容错
- 不支持索引(MyISAM支持索引)
MEMEORY
将表中的数据存储到内存中,为查询和引用其他表数据提供快速访问
Archive
- 基本上用于数据归档,它的压缩比很高,存储空间大约是InnoDB的十几分之一,适合用来存储历史数据,
- 由于它不支持索引也不能缓存索引和数据,所以它不适合作为高并发访问表的存储引擎
- Archive存储引擎使用行锁来实现高并发插入操作,但不支持事务,其设计目标只是提供高速的插入和压缩功能