存储引擎可以简单的理解为:存储引擎就是处理数据底层逻辑,不同的引擎底层处理方式不同。
命令: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;