数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。
不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。MySQL的核心就是存储引擎。
用户可以根据不同的需求为数据表选择不同的存储引擎。
可以使用show engines命令查看MySQL的所有执行引擎,可以知道默认的执行引擎是innoDB,支持事物,行级锁定和外键。
MyISAM:MySQL5.5之前的默认数据库引擎,最为常用。拥有较高的插入、查询速度,但不支持事务
InnoDB:事务型速记的首选引擎,支持ACID事务,支持行级锁定,MySQL5.5称为默认数据库引擎
Memory:所有数据置于内存的引擎,拥有极高的插入、更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在MySQL重新启动时丢失
Archive:非常适合存储大量的、独立的、作为历史记录的数据。因为它们不经常被读取。Archive拥有高效的插入速度,但其对查询的支持相对较差
Federated:将不同的MySQL服务器联合起来,逻辑上组成一个完整的数据库。非常适合分布式应用
操作
-- 查询当前数据库支持的存储引擎
show engines;
-- 查看当前的默认存储引擎
show variables like '%default_storage_engine%';
-- 查看某个表用了什么引擎(在显示结果里参数engine后面的就表示该表当前用的存储引擎)
show create table stu2;
-- 创建新表时指定存储引擎
create table stu2(id int,name varchar(20)) engine=MyISAM;
-- 修改数据库引擎
alter table stu2 engine innodb;
-- 修改MySQL默认存储引擎方法
关闭MySQL服务
找到MySQL安装目录下的my.ini文件
找到default-storage-engine=innodb改为目标引擎,如:default-storage-engine=MYISAM
启动MySQL服务