[学习笔记] MySQL数据库进阶之存储引擎
# 学习 # · 2021-11-11
MySQL体系结构概述
1、MySQL体系结构图:
存储引擎
1、存储引擎是存储数据、建立索引、更新/查询数据等技术的实现方式。
2、存储引擎基于表,所以也可被称为表类型。
3、常见的存储引擎:MyISAM、InnoDB、Memory等。
存储引擎的SQL语法
1、查询当前数据库支持的存储引擎:
SHOW ENGINES;
2、建表时指定存储引擎:
CREATE TABLE 表名(
字段1 字段1类型 [ COMMENT 字段1注释 ],
......
字段n 字段n类型 [COMMENT 字段n注释 ]
) ENGINE = InnoDB [ COMMENT 表注释 ];
InnoDB
1、InnoDB简介:InnoDB是一种兼顾高可靠性和高性能的通用存储引擎。在MySQL5.5之后,InnoDB是默认的 MySQL存储引擎。
2、InnoDB的特点:
- 2.1、DML操作遵循ACID模型,支持事务。
- 2.2、行级锁,提高并发访问性能。
- 2.3、支持外键FOREIGN KEY约束,保证数据的完整性和正确性。
MyISAM
1、MyISAM简介:MyISAM是MySQL早期的默认存储引擎。
2、MyISAM的特点:
- 2.1、不支持事务,不支持外键。
- 2.2、支持表锁,不支持行锁。
- 2.3、访问速度快。
Memory
1、Memory简介:Memory引擎的表数据时存储在内存中的,由于受到硬件问题、或断电问题的影响,只能将这些表作为临时表或缓存使用。
2、Memory的特点:
- 2.1、内存存放。
- 2.2、HASH索引。
InnoDB、MyISAM、Memory对比
1、对比表格:
特点 | InnoDB | MyISAM | Memory |
---|---|---|---|
存储限制 | 64TB | 有 | 有 |
事务安全 | 支持 | - | - |
锁机制 | 行锁 | 表锁 | 表锁 |
B+tree索引 | 支持 | 支持 | 支持 |
HASH索引 | - | - | 支持 |
全文索引 | 支持(MySQL5.6后) | 支持 | - |
空间使用 | 高 | 低 | N/A |
内存使用 | 高 | 低 | 中等 |
批量插入速度 | 慢 | 快 | 快 |
外键 | 支持 | - | - |
2、三者选择:
- 2.1、InnoDB:MySQL的默认存储引擎。如果应用对事务的完整性有比较高的要求,在并发条件下要求数据的一致性,数据操作除了插入和查询之外,还包含较多更新、删除操作,可选InnoDB存储引擎。
- 2.2、MyISAM :如果应用是以读操作和插入操作为主,只有很少的更新和删除操作,并且对事务的完整性、并发性要求不是很高,可选MyISAM存储引擎。
- 2.3、Memory:将所有数据保存在内存中,访问速度快,通常用于临时表及缓存。
如无特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:一木林多 - https://www.l5v.cn/archives/355/
如若转载,请注明出处:一木林多 - https://www.l5v.cn/archives/355/
评论