一、Mysql体系结构概览

<font color=#999AAA >示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
整个 MYSQL Server由以下组成:

  • Connection Pool: 连接池组件,接收请求后开启一个线程进行相关的认证授权操作后,再进行相关请求的处理;
  • Management Service & Utilities:管理工具和服务组件;主要进行数据的备份与恢复。
  • SQL Interface:SQL组件接口;主要进行相关的DML语句、DDL语句、存储过程、视图、触发器等封装。
  • Parser:查询分析器组件;主要进行SQL语句的解析。
  • Optimizer:优化器组件;主要进行SQL语句的优化处理。
  • Caches & Buffers:缓冲池组件;查询缓存中是否有对应的数据,存在的话直接返回即可。
  • Pluggable Storage Engines:存储引擎。负责MySQL中数据的存储和提取。
  • File System:文件系统 。将数据存储到文件系统之上,并完成与存储引擎的交互。

四层结构:
在这里插入图片描述
MySQL与其它数据库相比,主要差异体现在它的存储引擎上,插件式的存储引擎架构,将查询处理和其它系统任务以及数据的存储提取和分离。这种架构可以根据实际需要切换存储引擎。

二、存储引擎概述

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

查看数据库全部的存储引擎: show engines;
在这里插入图片描述
查看默认的存储引擎:show variables like '%storage_engine';
在这里插入图片描述

三、各种存储引擎特性

在这里插入图片描述
在这里插入图片描述

  • innoDB 支持事务、行锁、外键;
  • innoDB是唯一支持外键的存储引擎;
  • innoDB 的事务控制:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    create table if not exists `goods_innodb`(
    id int not null auto_increment,
    name varchar(20) not null,
    primary key(id)
    ) engine=innodb default charset=utf8;


    # 开启事务
    start transaction;
    insert into goods_innodb(id,name) values(null,'zhangsan');
    commit;

1. Innodb存储引擎的存储方式

在这里插入图片描述

2.MyISAM存储引擎的特性

  1. 简介:
    MyISAM 不支持事务、外键,且为表锁。但是它的优势是访问速度快,对事务的完整性没有要求或者以 SELECT、INSERT为主的应用基本都可以使用这个引擎来创建表。
  2. 两个重要的特点:
  • 不支持事务
  • 文件存储模式
    在这里插入图片描述

3. 存储引擎的选择

在这里插入图片描述
对安全性、事务的完整性要求比较高的时候选择 InnoDB;如果多数情况下只是读取和插入操作,很少用到删除和更新操作,那么选择 MyISAM 存储引擎会更快一些;Memory 将数据保存在内存中,通常用于更新频率不太频繁的小表,用于快速得到访问结果;MERGE就是一组MyISAM表的形式,将多个表分布在不同的磁盘上,适合用于数据仓储等情况。