Mysql是支持插拔式引擎
- 1.插拔式的插件方式
- 2.存储引擎是指定在表之上的,即一个库中的每一个表都可 以指定专用的存储引擎。
- 3.不管表采用什么样的存储引擎,都会在数据区,产生对应的一个 的一个frm文件(表结构定义描述文件)
1. CVS存储引擎
数据存储以用CSV文件
特点:
- 不能定义没有索引、列定义必须为NOT NULL、不能设置自增列–> 不适用大表或者数据的在线处理
- CSV数据的存储用,隔开,可直接编辑CSV文件进行数据的编排–> 数据安全性低
注:编辑之后,要生效使用flush table XXX 命令
应用场景:
- 数据的快速导出导入
- 表格直接转换成 表格直接转换成CSV
2.Archive存储引擎
压缩协议进行数据的存储,数据存储为 数据存储为ARZ文件格式 文件格式
特点:
- 只支持insert和select两种操作
- 只允许自增ID列建立索引
- 行级锁
- 不支持事务
- 数据占用磁盘少
应用场景:
- 日志系统
- 大量的设备数据采集
3.Memory存储引擎
数据都是存储在内存中, 数据都是存储在内存中,IO效率要比其他引擎高很多 效率要比其他引擎高很多;服务重启数据丢失,内存数据表默认只有 服务重启数据丢失,内存数据表默认只有16M
特点:
- 支持hash索引,B tree索引,默认hash(查找复杂度0(1))
- 字段长度都是固定长度varchar(32)=char(32)
- 不支持大数据存储类型字段如 blog,text
- 表级锁
应用场景:
- 等值查找热度较高数据
- 查询结果内存中的计算,大多数都是采用这种存储引擎
- 作为临时表存储需计算的数据
4.Myisam存储引擎
Mysql5.5版本之前的默认存储引擎 版本之前的默认存储引擎,较多的系统表也还是使用这个存储引擎
系统临时表也会用到 系统临时表也会用到Myisam存储引擎 存储引擎
特点:
- select count(*) from table 无需进行数据的扫描
- 数据(MYD)和索引(MYI)分开存储
- 表级锁
- 不支持事务
5. Innodb 存储引擎
Mysql5.5及以后版本的默认存储引擎
特点:
- 支持事务ACID
- 行级锁
- 聚集索引(主键索引)方式进行数据存储
- 支持外键关系保证数据完整性
6. 比对
可以查看官网 https://dev.mysql.com/doc/refman/5.7/en/storage-engines.html