MySQL >>> 存储引擎
存储引擎:
不同的数据应该有不同的处理机制,对应的就是不同的存储引擎
查看 mysql 中的存储引擎:
show engines;
----> 如下图所示:
着重了解图中标注的四种:
MyISAM ---> mysql 老版本用的存储引擎
InnoDB ---> mysql 现版本默认的存储引擎
查询速度较myisam慢,但是更安全 (因为支持行锁)
MOMERY ---> 内存引擎;数据全部存储在内存中
BLACKHOLE ---> 无论存储什么数据,都会立马消失;黑洞
四种引擎的特点:
先创建库 create ku;
指定库 use ku;
创建表:指定引擎
create table biao1(id int, name char(8))engine=myisam;
create table biao2(id int, name char(8))engine=innodb;
create table biao3(id int, name char(8))engine=memory;
create table biao4(id int, name char(8))engine=blackhole;
插入数据:
insert into biao1 values(1, 'zhao');
insert into biao2 values(2, 'zhao');
insert into biao3 values(3, 'zhao');
insert into biao4 values(4, 'zhao');
查看数据:
select * from biao1;
select * from biao2;
select * from biao3;
select * from biao4;
结果如下:
可以看到:一直到第五步(存数据)都正常进行;
第六步(查数据)发现采用blackhole引擎存无法查询数据
验证了blackhole引擎无论存什么数据进去,都会立马消失
第七步(重启服务端查数据)发现采用memory引擎存储的数据也无法查询到
验证了momery引擎是将数据存储在内存中
此外,使用四种引擎锁创建的表也不同,如下图:
.frm :表结构
.ibd & MYI :真实数据
.MYD:索引
innodb 引擎:具备 表结构 和 真实数据
myisam 引擎:具备 表结构、真实数据 及 索引 ---> 所以查询速度较快
memory 引擎:数据存储在内存中,所以只有 表结构
blackhole 引擎:存进去的数据全部消失,所以也是只有 表结构