本文基于MySQL主要介绍四种MySQL存储引擎
概述:
按照不同的存储机制、不同的索引方式等技术来存储数据的方法
查看引擎:
SHOW ENGINES:查看MySQL支持的存储引擎
MYSQL中共9种
在这里只简单介绍4个
InnoDB:
是MySQL默认的存储引擎(MySQL5.5以后),支持事务和行锁和外键
使用场景:
- 使用外键时
- 需要事务时
- 处理多重并发时
MyISAM:
MySQL5.5以前默认的存储引擎
特点:
- 不支持事务和外键
- 只支持表锁(在更新数据时会锁定这个表,降低了并发的性能)
- 读取速度快,占用资源少,
说明:
使用其建表时,会生成三个文件,分别是
- t_base_test.frm:存储表的定义
- t_base_test.MYD:存储表的数据
- t_base_test.MYI:存储表的索引
支持三种存储格式
- 静态表(默认)
- 动态表
- 压缩表
使用场景:
- 不需要事务时
- 以读取多的业务场景
- 数据修改和写入较少的业务场景
- 对数据的一致性要求不高
Memory
- 特殊的存储引擎,是将数据存放在内存中,依赖内存,所以不能创建太大的表
- 处理速度快
- 因为表创建在内存中,所以当数据库重启等情况下数据会消失,安全性差
- 适合存储临时表
- 默认采用哈希索引
CSV
说明:
我在对数据库表数据进行导出备份的时候发现的这个引擎
特点:
- 可以对其进行直接编辑
- 不支持索引
- 将csv文件当作表进行操作
使用场景:
进行导出备份,能够使用数据库直接使用