MySQL数据库体系机构基本介绍!MySQL中四种主要的存储引擎

MySQL的体系结构

MySQL数据库体系机构基本介绍!MySQL中四种主要的存储引擎

文章插图
 
  • MySQL由以下组件组成: Connection Pool : 连接池组件 Management Services & Utilities : 管理服务和工具组件 SQL Interface : SQL接口组件 Parser : 查询分析器组件 Optimizer : 优化器组件 Caches & Buffers : 缓冲池组件 Pluggable Storage Engines : 插件式存储引擎组件 File System : 文件系统 Files & Logs : 文件和日志
  • MySQL的各个层级: 连接层: 连接层是最上层的一些客户端和连接服务,包含本地Socket通信和大多数基于客户端或者服务端工具实现的类似于TCP/IP的通信 用于完成关于连接处理,授权认证和相关的安全方案 连接层中引入了线程池的概念,可以为通过安全认证接入的客户端提供处理线程 连接层中可以实现基于SSL的安全连接 服务器会验证每一个安全接入的客户端的操作权限 服务层: 服务层主要用来完成数据库服务器的大部分核心功能.比如SQL接口,缓存的查询 ,SQL的分析和优化,内置函数的执行功能等. 所有与跨存储引擎的相关功能也在服务层实现,比如存储过程和存储函数等 在服务层中,数据库服务器会解析查询并创建对应的内部解析树,并完成相应的优化.比如确定表的查询顺序,是否利用索引等,最后生成相应的执行操作 如果是SELECT查询语句,服务器会查询内部的缓存来获取数据.因此如果有足够大的缓存空间,可以在提升大量读操作环境中的系统性能 引擎层: 存储引擎 .MySQL中的存储引擎负责MySQL中数据的存储和读取,服务器是通过API和存储引擎进行通信的 不同的存储引擎具有不同的功能,可以根据实际需要,选取合适的存储引擎 存储层: 数据存储层 .MySQL中的数据存储层主要是将数据存储在文件系统上,并且完成与存储引擎的交互
  • MySQL数据库服务器与其余的数据库服务器相比,MySQL数据库服务器的架构可以在不同的场景下应用并发挥良好的作用.主要体现在存储引擎上: 插件式的存储引擎架构. 将查询处理和其余系统任务以及数据的存储提取相分离 这样的业务架构是的可以根据业务的需求和实际需要选择合适的存储引擎
存储引擎基本概念
  • MySQL中存在一个存储引擎的概念,针对不同的存储需求可以选择最优化的存储引擎
  • 存储引擎: 存储引擎就是存储数据,建立索引,更新查询数据等技术的实现方式 存储引擎是表类型的.因为存储引擎是基于表的,而不是基于数据库的
  • MySQL和只有一种存储引擎的Oracle,SqlServer等数据库相比较 ,MySQL是一种插件式的存储引擎架构.在MySQL中存在多种存储引擎,可以根据需要使用相应的存储引擎或者自定义编写存储引擎
  • MySQL中支持的存储引擎: InnoDB MyISAM BDB MEMORY MERGE EXAMPLE NDB Cluster AERCHIVE CSV BLACKHOLE FEDERATED 这里InnoDB和BDB是事务安全表,其余的存储引擎是非事务安全表
  • MySQL数据库中创建新表如果不指定存储引擎,就会使用默认的存储引擎.在MySQL 5.5版本之前默认的存储引擎是MyISAM, 在MySQL 5.5版本之后默认的存储引擎是InnoDB
  • 使用命令查询当前数据库支持的存储引擎:
show engines;
  • 使用命令查询当前数据库中存储引擎相关的参数:
show variables like '%storage_engine%';存储引擎特性
  • 几种常用的存储引擎的特性比较:
 
InnoDB
MyISAM
MEMORY
MERGE
NDB Cluster
存储限制
64 TB
限制
限制
无限制
限制
事务安全
支持
不支持
不支持
不支持
不支持
锁机制
行级锁. 适合高并发
表级锁
表级锁
表级锁
行级锁
外键
支持
不支持
不支持
不支持
不支持
B树索引
支持
支持
支持
支持
支持
哈希索引
不支持
不支持
支持
不支持
不支持
全文索引
支持
支持
不支持
不支持
不支持
集群索引
支持
不支持
不支持
不支持
不支持
数据索引


推荐阅读