存储引擎
存储引擎可以简单的理解为:存储引擎就是处理数据底层逻辑,不同的引擎底层处理方式不同。
如何查找存储引擎信息
命令:show engines;
常见的存储引擎
1、MyISAM
是MySQL5.5版本之前默认的存储引擎。
该引擎存取数据的速度都很快
但是安全性较低 不支持很多额外的功能
2、InnoDB
是MySQL5.5版本之后默认的存储引擎
该引擎支持:
事务(时间回退功能)、
行级锁(相当于并发编程的互斥锁 只能有一个用户操作同一条数据)、
外键(建立表与表之间的关系)
存储数据的速度没有MyISAM快但是功能和安全性更高
3、memory
数据全部存储在内存中 速度很快但是断电立刻丢失
4、blackhole
黑洞 任何放入其中的数据都会消失(类似于垃圾处理站)
验证存储引擎之间的差异
补充:
创建表时可以指定存储引擎:
格式: create table t3(id int) engine=存储引擎;
验证:
1、创建4个不同引擎的表
create table t1(id int) engine=MyISAM; # 大小写是无所谓的。
create table t2(id int) engine=InnoDB;
create table t3(id int) engine=memory;
create table t4(id int) engine=blackhole;
查看不同的引擎创建出来的表有什么不同
解释各自文件后缀名
MyISAM 三个文件:
.frm 表结构
.MYD 表数据
.MYI 表索引 # 根据索引更加快速的找到想要的数据
InnoDB 两个文件:
.frm 表结构
.ibd 数据与索引 # 速度相较于MyISAM相对较慢一点
memory :存在内存中所以只需要表的结构
.frm
blackhole :根本不需要存
.frm
插入数据演示
insert into t1 values(1);
insert into t2 values(2);
insert into t3 values(3);
insert into t4 values(4);
# 查看数据存储情况:
select * from t1;
select * from t2;
select * from t3;
select * from t4;
验证:
memory引擎是否将数据存储于内存中
重新以管理员身份启动cmd窗口:
net stop mysql;
net start mysql;
再次查看:
select * from t3;