空无以求全
宁静以致远
当前位置:首页 > .html

深入学习MySQL

作者:大熊空间发布时间:2022-02-19 17:09分类: 浏览:242评论:0


导读:一、MySQL架构图 mysql架构图 图片来源查看官方文档:https://dev.mysql.com/doc/refman/8.0/en/pluggable-storage-o...

一、MySQL架构图

mysql架构图

图片来源查看官方文档:https://dev.mysql.com/doc/refman/8.0/en/pluggable-storage-overview.html
MySQL中有如下组件:

  • 连接池组件:Connetion Pool
  • NoSQL接口:CRUD操作
  • SQL接口:处理DML、DDL、存储过程、视图、触发器等
  • 查询分析器组件:Parser
  • 优化器组件:Optimizer
  • 缓存组件:Caches & Buffers
  • 插件式存储引擎:Storage Engines
  • 物理文件:Files & Logs

二、MySQL常用存储引擎

MySQL区别于其他数据库的一个重要特点是支持插件式存储引擎,它是基于表的而不是数据库。
使用命令show engines;查看MySQL支持的存储引擎

mysql 版本信息 :Server version: 8.0.23 MySQL Community Server - GPL
mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| FEDERATED          | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
| InnoDB             | DEFAULT | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO   | NO         |
| MyISAM             | YES     | MyISAM storage engine                                          | NO           | NO   | NO         |
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |
| ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+

InnoDB (5.5版本后的默认存储引擎)

  • 支持事务
  • 行锁设计
  • 支持外键
  • 支持MVCC(多版本并发控制),实现4种隔离级别
  • 表的行按照主键顺序存放
  • 最常用的数据库存储引擎

MyISAM (5.5版本前的默认存储引擎)

  • 不支持事务
  • 表锁设计
  • 只缓存索引文件,不缓存数据文件
  • 查询速度快
  • 可以使用MyISAM pack 工具压缩,但是压缩后表为只读

NDB

  • 集群数据库
  • 数据放在内存
  • 高可用和高并发

Memory

  • 数据放在内存
  • MySQL临时表会使用这个引擎
  • 不支持 text 和 blob 字段,如果临时表有用到这两个类型,会使用MyISAM,而该引擎不缓存数据在内存,所以性能会受影响

Archive

  • 只支持INSERT 和 SELECT操作
  • 数据压缩后存放
  • 适用于数据高速插入和压缩,例如日志的存储

Federated

  • 不存放数据,指向远程MySQL的表

Maria

  • 用于替换MyISAM
  • 支持缓存和索引
  • 行锁设计
  • 支持MVCC

InnoDB架构

InnoDB架构图

图片来源地址:https://dev.mysql.com/doc/refman/8.0/en/innodb-architecture.html


发表评论: