进阶篇(1)

发布于:2025-02-10 ⋅ 阅读:(36) ⋅ 点赞:(0)

一.存储引擎:

<1>MySQL体系结构:

1.连接层:

  • 主要接收客户端的连接,完成一些连接的处理、认证授权、及相关操作安全方案、检测是否超过最大连接数等等;也会为安全接入的每个客户端验证它所具有的操作权限。
    • 例如:在连接MySQL服务器时,我们需要输入用户名和密码,输入后在连接层就要校验用户名和密码。这个过程就是授权认证的过程,以及认证之后还需要校验每一个客户端所具有的权限(也就是可以操作哪些数据库/表)。

2:服务层:

  • 绝大部分的“核心”功能都是在服务层完成。如SQL接口、并完成缓存的查询,SQL的分析和优化,部分内置函数的执行。所有跨存储引擎要在这一层实现,如 过程、函数等。

3:引擎层:

  • 上图一个个圆筒就是存储引擎。提供了很多存储引擎供我们选择,如果这些存储引擎不能满足我们需求,我们还可以其基础上可以改变;所以叫可插拔存储引擎。
  • 控制的就是MySQL数据的存储和提取,服务器通过API和存储引擎进行通信交互。索引在存储引擎层实现的,也就意味着,不同存储引擎,索引结构不一样。

【注意】控制数据库的数据如何存、取,如何来进行组织。具体数据库中数据是存在磁盘中的。

4:存储层:

  • 主要将数据存储在文件系统上,并完成与存储引擎的交互。(存储数据库相关的数据,包含:一系列日志(Redo、Undo)、数据、索引、二进制志、错误日志、查询日志、慢查询日志;都会存储在磁盘当中)

<2>存储引擎简介:

1.概念:

        存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎基于表的,而不是基于库的,所以存储引擎也可被称为表类型。

2.指定存储引擎语法:

CREATE TABLE 表名 (
    字段1 字段1类型[comment 字段1注释],
    ……
    字段n 字段n类型[comment 字段n注释]
) ENGINE=InnoDB [comment 表注释]

3.查看当前数据库支持的存储引擎:

show engines;

4.例:

# 创建表my_myisam,并指定MYISAM存储引擎
create table my_myisam(
	id int,
	name varchar(10)
)engine=myisam;
# 创建表my_memory,指定memory存储引擎
create table my_memory(
	id int,
	name varchar(10)
)engine=memory;

<3>特点:

1.InnoDB:

  • 是一种兼备高可靠和高性能的通用存储引擎,在MySQL 5.5之后,是默认的
  • 特点:
    • DML操作遵循ACID模型,支持事务
    • 行级锁,提高并发访问性能;
    • 支持

网站公告

今日签到

点亮在社区的每一天
去签到