iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL整体架构与内存结构
  • 899
分享到

MySQL整体架构与内存结构

2024-04-02 19:04:59 899人浏览 独家记忆
摘要

一  Mysql 整体框架: mysql是由sql接口,解析器,优化器,缓存,存储引擎等组成的。   1. Connectors指的是不同语言中与SQL的交

一  Mysql 整体框架

mysql是由sql接口,解析器,优化器,缓存,存储引擎等组成的。

MySQL整体架构与内存结构

 

1. Connectors指的是不同语言中与SQL的交互。

2. Management Serveices & Utilities: 系统管理和控制工具

3. Connection Pool: 连接池。管理缓冲用户连接,线程处理等需要缓存的需求。

4. SQL Interface: SQL接口。接受用户的SQL命令,并且返回用户需要查询的结果。比如select from就是调用SQL Interface。

5. Parser:解析器。SQL命令传递到解析器的时候会被解析器验证和解析。解析器是由Lex和YACC实现的,是一个很长的脚本。主要功能:

  • 将SQL语句分解成数据结构,并将这个结构传递到后续步骤,以后SQL语句的传递和处理就是基于这个结构的。
  • 如果在分解构成中遇到错误,那么就说明这个sql语句是不合理的。

6. Optimizer: 查询优化器。

SQL语句在查询之前会使用查询优化器对查询进行优化。他使用的是“选取-投影-联接”策略进行查询。用一个例子就可以理解: select uid,name from user where gender = 1;

这个select 查询先根据where 语句进行选取,而不是先将表全部查询出来以后再进行gender过滤。这个select查询先根据uid和name进行属性投影,而不是将属性全部取出以后再进行过滤,将这两个查询条件联接起来生成最终查询结果。

7. Cache和Buffer: 查询缓存。

如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据。这个缓存机制是由一系列小缓存组成的。比如表缓存,记录缓存,key缓存,权限缓存等。

8. Engine :存储引擎。

存储引擎是MySql中具体的与文件打交道的子系统。也是Mysql最具有特色的一个地方。

Mysql的存储引擎是插件式的。它根据MySql AB公司提供的文件访问层的一个抽象接口来定制一种文件访问机制(这种访问机制就叫存储引擎)。现在有很多种存储引擎,各个存储引擎的优势各不一样,最常用的InnoDB,BDB,MyISAM,。

默认下MySql是使用 Innodb 引擎( mysql 5.5.5以前的版本默认存储引擎是 Myisam ),它查询速度快,有较好的索引优化和数据压缩技术。但是它支持事务

Mysql也支持自己定制存储引擎,甚至一个库中不同的表使用不同的存储引擎,这些都是允许的。

 

二 mysql 内存结构 :

mysql使用总内存 = global_buffers + all_thread_buffers

 

global_buffers ( 全局内存分配总和 ) =

innodb_buffer_pool_size -- InnoDB高速缓冲,行数据、索引缓冲,以及事务、自适应哈希等

+innodb_additional_mem_pool_size -- InnoDB数据字典额外内存,缓存所有表数据字典

+innodb_log_buffer_size -- InnoDB REDO日志缓冲,提高REDO日志写入效率

+key_buffer_size -- MyISAM表索引高速缓冲,提高MyISAM表索引读写效率

+query_cache_size -- 查询高速缓存,缓存查询结果,提高反复查询返回效率

+table_cahce -- 表空间文件描述符缓存,提高数据表打开效率

+table_definition_cache -- 表定义文件描述符缓存,提高数据表打开效率

 

all_thread_buffers (会话/线程级内存分配总和) =

max_threads(当前活跃连接数) * (

read_buffer_size -- 顺序读缓冲,提高顺序读效率

+read_rnd_buffer_size -- 随机读缓冲,提高随机读效率

+sort_buffer_size -- 排序缓冲,提高排序效率

+join_buffer_size -- 表连接缓冲,提高表连接效率

+binlog_cache_size -- 二进制日志缓冲,提高二进制日志写入效率

+tmp_table_size -- 内存临时表,提高临时表存储效率

+thread_stack -- 线程堆栈,暂时寄存SQL语句/存储过程

+thread_cache_size -- 线程缓存,降低多次反复打开线程开销

+net_buffer_length -- 线程持连接缓冲以及读取结果缓冲

+bulk_insert_buffer_size ) -- MyISAM表批量写入数据缓冲

 

您可能感兴趣的文档:

--结束END--

本文标题: MySQL整体架构与内存结构

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

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

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

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

下载Word文档
猜你喜欢
  • MySQL整体架构与内存结构
    一  mysql 整体框架: MySQL是由SQL接口,解析器,优化器,缓存,存储引擎等组成的。   1. Connectors指的是不同语言中与SQL的交...
    99+
    2024-04-02
  • MySql整体结构的示例分析
    这篇文章主要介绍MySql整体结构的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! MySql 整体结构MySQL 由连接池、SQL 接口、解析器...
    99+
    2024-04-02
  • TiDB整体架构介绍
    TiDB架构图如下 TiDB 集群主要分为三个组件: TiDB Server TiDB Server 负责接收 SQL 请求,处...
    99+
    2024-04-02
  • C语言中结构体怎么与内存对齐
    本篇内容介绍了“C语言中结构体怎么与内存对齐”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.结构体类型C语言中的2种类型:原生类型和自定义...
    99+
    2023-06-20
  • mysql体系结构
    一.MySQL分层架构 1.链接层 处理网络的链接,链接的网络认证。 - 查看链接权限 点击(此处)折叠或打开 ...
    99+
    2024-04-02
  • C语言中结构体与内存对齐的方法
    这篇文章主要介绍了C语言中结构体与内存对齐的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言中结构体与内存对齐的方法文章都会有所收获,下面我们一起来看看吧。1.结构体类...
    99+
    2024-04-02
  • Mysql InnoDB 的内存结构详情
    目录1 前言2 InnoDB 存储引擎结构2.1 InnoDB表存储引擎文件2.2 InnoDB 预读机制2.3 InnoDB 特性2.3.1 插入缓存2.3.2 二次写 ...
    99+
    2024-04-02
  • HBase整体架构是什么
    小编给大家分享一下HBase整体架构是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!HBase 系统架构图组成部件说明   Client: ...
    99+
    2023-06-03
  • MySQL的体系架构
    文章目录 前言MySQL的Server层MySQL的存储引擎1)InnoDB 存储引擎2)MyISAM 存储引擎3)Memory 存储引擎 前言 在学习一种事务之前,我们需要先了解事物的基本组成结构,清楚了事物的基本组成结...
    99+
    2023-08-16
    mysql 架构 adb
  • oracle内存架构(二)
    System Global Area (SGA)概述SGA是一个可读写的内存区域,它和oracle数据库后台进程一起组成oracle数据库实例。所有用户进程对应的服务器进程都可以在SGA中读取信息。一些进程...
    99+
    2024-04-02
  • C语言中结构体与内存对齐实例解析
    1.结构体类型 C语言中的2种类型:原生类型和自定义类型,结构体类型是一种自定义类型。 2.结构体使用时先定义结构体类型再用类型定义变量 -> 结构体定义时需要先定义结构体类型...
    99+
    2024-04-02
  • C语言结构体内存对齐详解
    目录实例一:分析:存储结构图如下实例二: 分析:存储结构如下实例三:  分析:存储结构如下 实例四:分析:存储结构图如下总结1、结构体内存对齐...
    99+
    2024-04-02
  • MySQL中Buffer Pool内存结构详情
    目录1、回顾一下Buffer Pool是个什么东西?1.1 增删改直接操作的是内存还是磁盘?1.2 数据库崩溃了,内存中数据丢了怎么办?1.3 Buffer Pool的一句话总结2、...
    99+
    2024-04-02
  • Dubbo架构整体设计详解
    目录一、Dubbo调用关系说明1.1 组成部分1.2 启动和执行流程说明二、整体调用链路三、Dubbo整体设计一、Dubbo调用关系说明 1.1 组成部分 在这里主要由四部分组成:...
    99+
    2023-05-15
    Java Dubbo架构整体设计 Dubbo架构整体设计 Java Dubbo
  • Docker整体架构是怎样的
    这篇文章主要讲解了“Docker整体架构是怎样的”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Docker整体架构是怎样的”吧!用户是使用DockerClient与Docker Daemon...
    99+
    2023-06-04
  • mysql学习6:第三章MYSQL 体系结构与存储引擎
    1.   第三章MYSQL 体系结构与存储引擎 1.1.   mysql体系结构 体系结构分为两大层: l   mysql server层:...
    99+
    2024-04-02
  • 怎样解析mysql与oracle 体系结构
    这篇文章给大家介绍怎样解析mysql与oracle 体系结构,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 做为一个学习oracle的工程师,现在开始学...
    99+
    2024-04-02
  • C语言热门考点结构体与内存对齐详解
    目录一、引例二、小试牛刀三、嵌套结构体的特殊情况四、关于为什么存在内存对齐1.平台原因(移植原因): 2.性能原因: 总结一、引例 到底什么是结构体内存对齐,我们用一段代码来介绍一下...
    99+
    2024-04-02
  • mysql 体系结构和存储引擎介绍
    目录1 前言2 mysql 配置文件加载顺序3 mysql 引擎介绍3.1 InnoDB 引擎3.2 MyISAM 引擎3.3 NDB 引擎3.4 Archive 引擎3.5 Fed...
    99+
    2024-04-02
  • LevelDB的整体架构是怎样的
    本文小编为大家详细介绍“LevelDB的整体架构是怎样的”,内容详细,步骤清晰,细节处理妥当,希望这篇“LevelDB的整体架构是怎样的”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作