mysql之存储引擎


目录
  • 存储引擎
    • 如何查找存储引擎信息
    • 常见的存储引擎
    • 验证存储引擎之间的差异

存储引擎

存储引擎可以简单的理解为:存储引擎就是处理数据底层逻辑,不同的引擎底层处理方式不同。

如何查找存储引擎信息

命令: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;