数据库存储引擎定义
MySQL中的数据用各种不同的技术存储在文件(或者内存)中,这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并最终提供不同的功能和能力,这些不同的技术以及配套的相关功能在MySQL中称为存储引擎(也称为表类型)。
MySQL数据库主要存储引擎
存储引擎 | 功能&特点 |
---|---|
MyISAM | 拥有较高的插入,查询速度,但不支持事务,表级锁 |
InnoDB | 5.5版本后Mysql的默认数据库存储引擎,事务型数据库的首选引擎,支持ACID事务,支持行级锁定 |
Memory | 所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在Mysql重新启动时丢失,处理非事务表 |
Archive | 非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive拥有高效的插入速度,但其对查询的支持相对较差 |
CSV | 逻辑上由逗号分割数据的存储引擎。它会在数据库子目录里为每个数据表创建一个.CSV文件。这是一种普通文本文件,每个数据行占用一个文本行。CSV存储引擎不支持索引 |
BlackHole | 黑洞引擎,写入的任何数据都会消失,一般用于记录binlog做复制的中继 |
MRG_MYISAM | 将一定数量的MyISAM表联合而成一个整体,在超大规模数据存储时很有用,实现大数据的水平分表(如创建一个MRG_MyISAM引擎作为主表,可以实现读操作,更新,删除操作,在多个MyISAM引擎的子表中插入存储数据) |
PERFORMANCE_SCHEMA | 主要用于收集数据库服务器性能参数。MySQL用户是不能创建存储引擎为PERFORMANCE_SCHEMA的表 |