美文网首页
深入学习MySQL

深入学习MySQL

作者: 惜鸟 | 来源:发表于2021-02-23 10:59 被阅读0次

一、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

相关文章

网友评论

      本文标题:深入学习MySQL

      本文链接:https://www.haomeiwen.com/subject/qgvptltx.html