数据库引擎是用于存储、处理和保护数据的核心服务。利用数据库引擎可控制访问权限并快速处理事务,从而满足企业内大多数需要处理大量数据的应用程序的要求。 使用数据库引擎创建用于联机事务处理或联机分析处理数据的关系数据库。这包括创建用于存储数据的表和用于查看、管理和保护数据安全的数据库对象(如索引、视图和存储过程)。
MySQL四种常见数据库引擎
InnoDB存储引擎
InnoDB是事务型数据库的首选引擎,也是目前MYSQL的默认事务型引擎,是目前最重要、使用最广泛的存储引擎。支持事务安全表(ACID),支持行锁定和外键。
使用场景:如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择InnoDB有很大的优势。如果需要频繁的更新、删除操作的数据库,也可以选择InnoDB,因为支持事务的提交(commit)和回滚(rollback)。
MyISAM存储引擎
MyISAM基于ISAM存储引擎,并对其进行扩展。它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。MyISAM拥有较高的插入、查询速度,但不支持事务和外键。
使用场景:如果表主要是用于插入新记录和读出记录,那么选择MyISAM能实现处理高效率。
MEMORY存储引擎
MEMORY存储引擎将表中的数据存储到内存中,为查询和引用其他表数据提供快速访问。
使用场景:需要该数据库中一个用于查询的临时表时,可以考虑使用MEMORY存储引擎。
innodb和myisam的区别
innodb和myisam的区别如下:
- 事务支持
MyISAM:不提供事务支持,强调的是性能。
Innodb:提供事务支持、外部键等高级数据库功能,有事务、回滚、崩溃修复能力。 - 锁
MyISAM:不支持行级锁,支持表级锁。
Innodb:支持行(默认)、表级锁 - 索引
MyISAM:非聚集索引,也是使用B+Tree作为索引结构。
Innodb:聚集索引,使用B+Tree作为索引结构,且必须有唯一索引(如主键)。