MySQL体系架构

MySQL体系架构

架构图

在这里插入图片描述

组件组成

  1. Connection Pool : 连接池组件,缓存连接使连接可复用
  2. Management Services & Utilities : 管理服务和工具组件,一般用于管理集群
  3. SQL Interface : SQL接口组件,接收SQL语句返回查询结果
  4. Parser : 查询分析器组件,验证语法并解析成解析树
  5. Optimizer : 优化器组件,用于优化SQL
  6. Caches & Buffers : 缓冲池组件
  7. Pluggable Storage Engines : 插件式存储引擎
  8. File System : 文件系统

分层结构

  1. 连接层:缓存连接线程且每个连接一个线程,并进行身份和权限认证
  2. 服务层:解析SQL语句,缓存,优化SQL,执行SQL
  3. 引擎层:存储引擎真正的负责了MySQL中数据的存储和提取,服务器通过API和存储引擎进行通信。不同的存储引擎具有不同的功能,这样我们可以根据自己的需要,来选取合适的存储引擎。
  4. 存储层:实际存储文件

MySQL5.1后废除缓存且不能通过命令修改,只能通过配置文件修改

show variables like '%max_connection%';--查看MySQL最大线程连接数量
show variables like '%query_cache%';--查看关于缓存的信息

存储引擎

MySQL最大的特点是使用可插拔的存储引擎,存储引擎是对于表来说的,每个表可以使用不同的存储引擎,大概有以下几种:

  1. InnoDB:满足事务,提供行锁,MySQL因InnoDB而被广泛运用
  2. MyISAM:不支持事务,不支持行锁,无法安全恢复表,用于只读表,常用于地图搜索。
  3. Archive:只支持insert和select,全表扫描
  4. Memory:缓存,用于只读表,不支持text存储
  5. Blackhole:不存储数据,只记录表日志
  6. CSV:可用于在外部文件取数据和导出数据
  7. Ferderated:访问其他MySQL代理
  8. NDB集群:类似于MySQL集群
  9. 其他第三方引擎:Percona的XtraDB引擎、TokuDB引擎(使用分形树使用缓存将随机写转换为顺序写,写效率极高);
alert table 表名 set ENGTEN = InnoDB; --转换表引擎
show engines;--查看安装的存储引擎
show variables like '%storage_engine%';--查看默认存储引擎

InnoDB和MyISAM对比

对比InnoDBMyISAM
主外键×
事务支持×
缓存只缓存索引缓存其他数据
行表锁支持行锁不支持行锁
表空间
关注点性能事务
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值