Mysql架构理解

mysql架构整体架构分为三层:

在这里插入图片描述

  • 客户端:并发MySQL所独有,诸如:连接处理,授权认证,安全等功能均在这一层处理
  • 核心服务:包括查询解析,分析,优化,缓存,内置函数(比如:时间,数学,加密等函数),所有的跨存储引擎的功能也在这一层实现:存储过程,触发器,试图等
  • 存储引擎:负责MySQL中的数据存储和提取和Linux下文件系统类似,每种存储引擎都有其优势和劣势,中间的服务层通过API与存储引擎通信,这些API屏蔽不同存储引擎之间的差异

mysql查询过程的五个步骤:

在这里插入图片描述

  • 客户端向 MySQL 服务器发送一条查询请求
  • 服务器首先检查查询缓存,如果命中缓存,则立刻返回存储在缓存中的结果,否则进入下一阶段
  • 服务器进行 SQL解析、预处理、再由优化器生成对应的执行计划
  • MySQL 根据执行计划,调用存储引擎的 API来执行查询
  • 将结果返回给客户端,同时缓存查询结果

MyISAM,InnoDB和MEMORY三大存储引擎之间的区别

在这里插入图片描述
MyISAM存储引擎:不支持事务,也不支持外键,优势是访问速度快,对事物完整性没有要求或者以select,insert为主的应用基本上可以用这个引擎来创建表,使用MyISAM引擎创建数据库将产生3个文件。文件的名字以表名字开始 .frm文件存储表定义、数据文件的扩展名为.MYD(MYData),索引文件的扩展名为.MYI(MYIndex)。
InnoDB存储引擎:InnoDB是目前MYSQL的默认事务型引擎,是目前最重要的,使用最广泛的存储引擎。支持事务安全表(ACID),支持行锁定和外键,该存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比MyISAM引擎,写的处理效率会差一些,并且会占用更多的磁盘空间以保留数据和索引。
InnoDB存储引擎的特点:支持自动增长列,支持外键约束

MEMORY存储引擎:Memory存储引擎使用存在于内存中的内容来创建表。每个memory表只实际对应一个磁盘文件,格式是.frm。memory类型的表访问非常的快,因为它的数据是放在内存中的,并且默认使用HASH索引,但是一旦服务关闭,表中的数据就会丢失掉。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值