广告
返回顶部
首页 > 资讯 > 数据库 >MySQL之架构简单分析
  • 515
分享到

MySQL之架构简单分析

MySQL之架构简单分析 2014-12-17 17:12:51 515人浏览 猪猪侠
摘要

    上图为Mysql的简易架构图,给您有一个大概的概念,下面我将为您进行进一步的分析。 连接器: 当连接mysql数据库时,等待的将是Mysql服务端的连接器;连接器的职责是和客户端建立连接、获取权限、维持和管理连接。客户端连接命令一

 

 

上图为Mysql的简易架构图,给您有一个大概的概念,下面我将为您进行进一步的分析。

连接器:

当连接mysql数据库时,等待的将是Mysql服务端的连接器;连接器的职责是和客户端建立连接、获取权限、维持和管理连接。客户端连接命令一般是如下所示(建议:不要在命令中显示添加登入密码):

mysql -h$ip -p$port -u$user -p$passWord

查询缓存

建立完连接后,就可执行select语句。执行就会走向查询缓存。

MySQL拿到这个查询请求后,就会先到缓存中看看,之前是不是执行了该语句。在查询缓存中数据是以key-value形式存在的,key为执行的查询请求,value为查询结果。如果执行了就直接从缓存中把结果返回给客户端,请求结束。如果语句不在缓存中,就执行后续复杂操作。

在大多数情况下不建议使用查询缓存,为什么呢?因为查询缓存往往弊大于利。

查询缓存的失效非常频繁,只要对表进行了更新,该表的中查询缓存全部清除。所以往往很多时候,缓存还没使用就被清除了。对于更新压力很大的数据库来说,查询缓存的命中率很低。如果你的业务中存在一张静态表,很长时间才会更新一次。比如,系统配置表,那这张表的查询才适合查询缓存。

该功能是自动配置的。可以将参数 query_cache_type 设置成 DEMAND ,这样对于默认的SQL语句就不会使用查询缓存。而对于确定的查询语句,可以使用 SQL_CACHE 显示指定,比如如下语句:

select SQL_CACHE * from t where id = 1;

注意:在MySQL8.0之后的版本,把查询缓存模块移除了。

分析器

 在没有命中查询缓存后,MySQL开始真正执行语句了。这时MySQL对该语句进行解析。

分析器首先进行词法分析,一条sql由多个字符串和空格组成,MySQL需要分析出这些字符串是什么,代表什么。

做完识别之后,进行语法分析。根据词法分析的结果,语法分析器会根据语法规则对sql语句进行分析,是否符合MySQL的语法规则。

优化器

执行完分析器后,MySQL就知道该sql语句要干什么了。在开始执行之前,要经过优化器的处理。 

优化器在表里存在多个索引时,选择执行哪个索引;或者一个语句有多表关联时(join),选择各表的连接顺序。

执行器

MySQL通过分析器知道了该语句要做什么,通过优化器知道该怎么做,于是进入到了执行器阶段,开始执行语句。

开始执行之前,首先会判断用户是否有对表的执行权限(如果是在查询缓存得到结果,会在返回结果之前进行权限校验),如果没有会报错.。如果有权限,就打开表继续执行语句。打开表的时候,执行器会根据表的引擎定义,去使用引擎提供的接口。

存储引擎

MySQL区别于其他数据的最具有点的是存储引擎接口模块,MySQL可进行插拔存储引擎。

MySQL的存储引擎有很多种,比如:InnoDB、MyISAM、ISAM、Memory等。在MySQL5.6之前,默认存储引擎是MyISAM,而在该版本之后默认的是InnoDB。下表是两者之前的区别:

  InnoDB

MyISAM

存储文件

.frm 表定义文件,.ibd 数据文件和索引文件

.frm 表定义文件,.myd 数据文件, .myi 索引文件
表锁、行锁 表锁
事务 支持 不支持
CRUD 读、写 读多
count 扫表 专门存储的地方
索引结构 B+树 B+树

 

近期在学习MySQL数据库, 后续将会持续更新学习随笔。

 

 

 

您可能感兴趣的文档:

--结束END--

本文标题: MySQL之架构简单分析

本文链接: https://www.lsjlt.com/news/2051.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL之架构简单分析
        上图为MySQL的简易架构图,给您有一个大概的概念,下面我将为您进行进一步的分析。 连接器: 当连接MySQL数据库时,等待的将是MySQL服务端的连接器;连接器的职责是和客户端建立连接、获取权限、维持和管理连接。客户端连接命令一...
    99+
    2014-12-17
    MySQL之架构简单分析
  • 简单LNMP架构拆分
    ❤️只要有信心,人永远不会挫败❤️ 这篇文章我们还是接着上篇来做,省时又省力。 上篇文章地址:搭建WordPress 使用的架构: nginx: 192.168.8.10 mysql: 192.168...
    99+
    2023-09-06
    架构 服务器 数据库 php
  • Mysql 架构分析
    1. mysql架构图 1.1 各模块说明 2 .Binlog 日志的使用 3. Redo Log 和 Binlog的区别 ...
    99+
    2018-01-11
    Mysql 架构分析
  • MySQL之高可用架构的示例分析
    小编给大家分享一下MySQL之高可用架构的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!MySQL高可用MySQL的高可用也是同样的思路,首先要有多个MySQL实例提供服务,其次就是当某个实例挂掉时,可以自动切换流...
    99+
    2023-06-22
  • [Apache Atlas] Atlas 架构设计及源代码简单分析
    Apache Atlas 架构设计及源代码分析, 以Hive建库为例,分析元数据采集的主体流程 Apache Atlas 架构图 Atlas 支持多数据源接入:Hive、HBase、Stor...
    99+
    2020-01-26
    [Apache Atlas] Atlas 架构设计及源代码简单分析
  • MySQL高可用架构之MHA的原理分析
    这篇文章主要介绍了MySQL高可用架构之MHA的原理分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。MHA角色部署MHA 服务有两种角色,...
    99+
    2022-10-18
  • 怎么简单分析Flask框架
    本篇文章给大家分享的是有关怎么简单分析Flask框架,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。我们知道,Web框架通过将不同Web应用程序...
    99+
    2022-10-19
  • mysql之MHA架构
    角色Ip地址主机名Server id类型master192.168.1.131master11主(写)Master(candicate)192.168.1.132Master22从(读)Slave192.1...
    99+
    2022-10-18
  • Hadoop源码分析一架构关系简介
    1、 简介 Hadoop是一个由Apache基金会所开发的分布式系统基础架构 Hadoop起源于谷歌发布的三篇论文:GFS、MapReduce、BigTable。其中GFS是谷歌的分...
    99+
    2022-11-12
  • 简单了解MySQL高可用MHA架构知识
    下面一起来了解下MySQL高可用MHA架构知识,相信大家看完肯定会受益匪浅,文字在精不在多,希望MySQL高可用MHA架构知识这篇短内容是你想要的。MHA软件介绍1.MHA软件是由MHA Manager(管...
    99+
    2022-10-18
  • mysql架构类问题之MHA架构
    MHA 架构 适用的主从复制架构 主 / | 从1 从2 从3 故障转移步骤 选举具有最新更新的slave 尝试从宕机的master保存二进制日志 应用差异的中继日志到其他slave 应用从master保存的二进制日志 提升选举的...
    99+
    2015-04-12
    mysql架构类问题之MHA架构
  • mysql 架构类问题之 MMM 架构
    MMM 和 MHA 架构 MMM 和 MHA 架构的作用 对主从复制集群的 master 进行监控 当 master 宕机后把写 VIP 迁移到新 master 重新配置集群中其他 slave 对新的 master 同步 MMM 架构 ...
    99+
    2014-12-31
    mysql 架构类问题之 MMM 架构
  • MySQL架构组件的示例分析
    这篇文章将为大家详细讲解有关MySQL架构组件的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。总体架构一. 连接器  连接器主要负责跟客户端建立连接、权限验证和管...
    99+
    2022-10-18
  • Mysql逻辑架构的示例分析
    小编给大家分享一下Mysql逻辑架构的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1. 整体架构图和其它数据库相比,M...
    99+
    2022-10-18
  • MySQL体系架构的示例分析
    这篇文章给大家分享的是有关MySQL体系架构的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。MySQL 体系架构MySQL 体系架构主要分为两部分:客户端和服务端客户端客...
    99+
    2022-10-18
  • Orchard架构的简单介绍
    这篇文章主要讲解了“Orchard架构的简单介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Orchard架构的简单介绍”吧!  对于我们来说,更重要的是...
    99+
    2022-10-19
  • java之JVM架构模型的示例分析
    小编给大家分享一下java之JVM架构模型的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Java可以用来干什么Java主要应用于:1. web开发;2....
    99+
    2023-06-14
  • Android视图控件架构分析之View、ViewGroup
    在Android中,视图控件大致被分为两类,即ViewGroup和View,ViewGroup控件作为父控件,包含并管理着子View,通过ViewGroup和View便形成了控...
    99+
    2022-06-06
    view Android 架构
  • MySQL高可用架构之MHA架构全解
    目录一、介绍二、组成三、工作过程四、架构五、实例展示MHA(Master HA)是一款开源的 MySQL 的高可用程序,它为 MySQL 主从复制架构提供了 automating m...
    99+
    2022-11-12
  • python深拷贝和浅拷贝之简单分析
    title: python 深拷贝和浅拷贝 tags: python,copy,deepcopy grammar_cjkRuby: true --- python 深拷贝和浅拷贝 python的变量的赋值都是引用 把一个变量赋值给一个...
    99+
    2023-01-30
    简单 python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作