[学习笔记] 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、对比表格:

特点InnoDBMyISAMMemory
存储限制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/

评论