一、CSV存储引擎
数据存储以CSV文件特点:不能定义没有索引、列定义必须为NOT NULL、不能设置自增列
-->不适用大表或者数据的在线处理
CSV数据的存储用,隔开,可直接编辑CSV文件进行数据的编排
-->数据安全性低
注:编辑之后,要生效使用flush table XXX 命令
应用场景:数据的快速导出导入表格直接转换成CSV
二、Archive存储引擎
压缩协议进行数据的存储
数据存储为ARZ文件格式特点:
只支持insert和select两种操作
只允许自增ID列建立索引
行级锁
不支持事务
数据占用磁盘少
应用场景:日志系统、大量的设备数据
三、Memory存储引擎
数据都是存储在内存中,IO效率要比其他引擎高很多
服务重启数据丢失,内存数据表默认只有16M
特点:
支持hash索引,B tree索引,默认hash(查找复杂度0(1))
字段长度都是固定长度varchar(32)=char(32)
不支持大数据存储类型字段如 blog,text
表级锁
应用场景:
(1)等值查找热度较高数据
(2)查询结果内存中的计算,大多数都是采用这种存储引擎
作为临时表存储需计算的数据
MEMORY存储引擎通常很少用到。由于基于内存,所以响应速度非常快。但若内存出现异常就会影响到数据的完整性。若重启机器或者关机,或当mysqld守护进程崩溃时,所有的MEMORY数据都会丢失。
四、Myisam存储引擎
Mysql5.5版本之前的默认存储引擎
较多的系统表也还是使用这个存储引擎
系统临时表也会用到Myisam存储引擎
特点:
a,select count(*) from table 无需进行数据的扫描
b,数据(MYD)和索引(MYI)分开存储
c,表级锁
d,不支持事务
MyISAM存储引擎的表存储成3个文件,文件名与表名相同,扩展名分别为:frm,MYD,MYI。
- frm文件:存储表的结构。
- myd文件:存储数据。
- myi文件:存储存储索引。
五、Innodb存储引擎
Mysql5.5及以后版本的默认存储引擎
Key Advantages:
Its DML operations follow the ACID model [事务ACID]
Row-level locking[行级锁]
InnoDB tables arrange your data on disk to optimize queries
based on primary keys[聚集索引(主键索引)方式进行数据存储]
To maintain data integrity, InnoDB supports FOREIGN KEY
constraints[支持外键关系保证数据完整性]
对于表的数据存储,InnoDB存储引擎采用了聚集的方式,每张表的存储都是按主键顺序进行存放。若没有显示地在表定义时指定主键,InnoDB会为每一行生成一个6字节的ROWID,并以此作为主键。