1、存储引擎简介
明确:MySQL数据存在磁盘文件中
存储引擎:名词,主要用于声明MySQL表中数据的存储方式;不管选择何种存储引擎数据内容不会变化,不同的是存储空间大小、存储的速度、支持的功能不同。
2、存储引擎种类
MySQL常用存储引擎
查看当前MySQL支持的存储引擎列表(
show engines
)3、存储引擎(MyISAM)
-> 存储方式
创建数据库会在MySQL的data目录下创建同名目录
create database db1 charset utf8;
创建t1表选择myisam引擎,会在MySQL的data目录下创建三个文件存储
use db1;
create table t1(id int primary key auto_increment)engine=myisam charset=utf8;
-> 压缩MyISAM存储引擎
myisampack工具可以压缩MyISAM表,通常myisampack可以将数据文件压缩到40%-70%左右。
压缩解压语法:
①压缩表中的数据:
myisampack.exe 数据路径/表名
②解压数据文件的命令:
myisamchk.exe --unpack 数据路径/表名
注意:解压缩的同时,索引会自动重建
3、innodb存储引擎
创建t2表选择innodb引擎,会创建2个文件存储
create table t2 (id int primary key auto_increment) engine=innodb;
4、存储引擎速度对比
myisam查询比innodb快,因为myisam查询数据的排序就是数据默认插入的顺序,而innodb会将主键按照从小到大的顺序排序。
5、Archive存储引擎(存档型)
说明:只能够插入和查询数据,不能删和改
应用场景:网站管理员操作日志
6、Memory存储引擎(内存型)
将数据保存到内存中,一般不使用,直接使用内存数据库(memcache、redis)
7、MyISAM和InnoDB存储引擎区别
两种常用引擎区别总结:
①存储结构:MyISAM - 3个文件、InnoDB- 2个文件
②CURD操作:MyISAM查询插入快,InnoDB - 大量的插入和修改
③事物和外键支持:MyiSAM不支持,InnoDB支持
④锁:MyISAM仅支持表锁,InnoDB支持行锁&表锁
⑤全文检索(英文):仅MySQL5.6以下InnoDB不支持(注意:都不支持中文)