MySQL之体系结构

华子目录

  • MySQL简介
  • MySQL的特性
  • MySQL版本
    • MySQL常见版本
  • 数据库排名网站
  • MySQL结构体系
    • 查看最大连接数
    • 查询缓存配置情况
  • 一条SQL语句执行流程

MySQL简介

  • MySQL是一个小型关系数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被sun公司10亿美金收购。2009年,SUN又被Oracle以74亿美金收购。
  • 目前MySQL被广泛地应用在Internet上的中小型网站中。由于体积小、速度快、总体拥有成本低,尤其是开放源代码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

MySQL的特性

  • 1.使用C和C++ 编写,并使用了多种编译器进行测试,保证源代码的可移植性。
  • 2.支持 AIX、BSDi、FreeBSD、HP-UX、LinuxMac OS、Novell Netware、NetBSD、OpenBSD、OS/2 Wrap、Solaris、SunOS、Windows等多种操作系统。
  • 3.为多种编程语言提供了API。这些编程语言包括C、C++、C#、Delphi、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等
  • 4.支持多线程,充分利用CPU资源,支持多用户。
  • 5.优化的SQL查询算法,有效地提高查询速度。
  • 6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。
  • 7.提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。
  • 8.提供TCP/IP、ODBC和JDBC等多种数据库连接途径。
  • 9.提供用于管理、检查、优化数据库操作的管理工具。
  • 10.可以处理拥有上千万条记录的大型数据库。

MySQL版本

  • 1.Alpha版:开发版,公司内部使用
  • 2.Beta版:完成开发后,用户体验版
  • 3.RC版:生产环境发布之前的一个小版本或称候选版
  • 4.GA版:正式发布版本

MySQL常见版本

  • MySQL Community Server 社区版本,开源免费,但不提供官方技术支持。
  • MySQL Enterprise Edition 企业版本,需付费,可以试用 30 天。
  • MySQL Cluster 集群版,开源免费。可将几个 MySQL Server 封装成一个 Server。
  • MySQL Cluster CGE 高级集群版,需付费

数据库排名网站

http://db-engines.com/en/ranking

MySQL结构体系

  • Mysql是由SQL接口,解析器,优化器,缓存,存储引擎组成的。
  • Connectors指的是不同语言中与SQL的交互。
  • Management Serveices & Utilities: 系统管理和控制工具。
  • Connection Pool:连接池。管理缓冲用户连接,线程处理等需要缓存的需求。
  • SQL Interface:SQL接口,接受用户的SQL命令,并且返回用户需要查询的结果。比如select from就是调用SQL Interface。
  • Parser: 解析器。SQL命令传递到解析器的时候会被解析器验证和解析。
  • Optimizer:查询优化器。SQL语句在查询之前会使用查询优化器对查询进行优化。
  • Cache和Buffer: 查询缓存。如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据。
  • Engine:存储引擎。存储引擎是MySql中具体的与文件打交道的子系统。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

查看最大连接数

mysql> show variables like '%max_connections%';

查询缓存配置情况

mysql> show variables like '%query_cache%';
MySQL 是一个开源的关系型数据库管理系统(RDBMS),它采用了典型的客户端-服务器体系结构。以下是 MySQL 的基本体系结构:1. 客户端层(Client Layer):- 客户端层是与用户交互的部分,用户通过客户端连接到 MySQL 服务器,并发送查询和命令。- 客户端可以是各种类型的应用程序,例如命令行工具、图形用户界面(GUI)、Web 应用程序等。- 客户端与服务器之间通过网络连接进行通信,通常使用标准的 MySQL 协议进行数据交换。2. 连接池管理器(Connection Pool Manager):- 连接池管理器负责管理客户端与服务器之间的连接。- 它处理连接的创建、维护和回收,以确保高效地使用服务器资源并提高性能。3. 解析器(Parser):- 解析器负责解析客户端发送的 SQL 查询和命令,并将其转换为内部数据结构以供后续处理。- 解析器还执行语法和语义分析,以确保查询和命令的正确性。4. 优化器(Optimizer):- 优化器负责对解析后的查询进行优化,以提高执行效率。- 它使用各种优化技术和算法,例如查询重写、索引选择、连接重排序等,以生成执行效率更高的查询计划。5. 查询缓存(Query Cache)(部分版本中不再使用):- 查询缓存存储已经执行过的查询结果,以提高相同查询的执行速度。- 当客户端发送一个查询时,MySQL 首先检查查询缓存,如果找到了相同的查询,则直接返回缓存的结果,而不需要执行实际的查询操作。6. 存储引擎层(Storage Engine Layer):- 存储引擎层负责管理数据的存储和检索,它实现了 MySQL 的各种存储引擎(例如 InnoDB、MyISAM 等)。- 不同的存储引擎提供了不同的特性、性能和适用场景,用户可以根据需求选择合适的存储引擎。7. 锁管理器(Lock Manager):- 锁管理器负责管理数据库中的锁,以确保事务的并发控制和数据一致性。- 它处理锁的申请、释放和冲突解决,以避免数据的并发访问导致的问题。8. 日志管理器(Log Manager):- 日志管理器负责管理数据库的事务日志,以实现事务的持久性和恢复能力。- 它记录所有的数据修改操作,包括事务的提交和回滚,以便在数据库发生故障时进行恢复。9. 缓冲池(Buffer Pool):- 缓冲池是内存中的一个区域,用于缓存数据库的数据和索引页,以提高数据访问的速度。- 它充当了内存和磁盘之间的缓冲,减少了频繁的磁盘 I/O 操作,从而提高了数据库的性能。10. 磁盘管理器(Disk Manager):- 磁盘管理器负责管理数据库在磁盘上的存储结构,包括数据文件、日志文件、索引文件等。- 它处理数据的读写操作,并管理磁盘空间的分配和释放。这些组件共同构成了 MySQL 的体系结构,实现了数据库管理系统的各种功能,包括数据存储、查询处理、事务管理、并发控制、日志记录、缓存管理等。

一条SQL语句执行流程

连接层(1)提供连接协议:TCP/IP 、SOCKET(2)提供验证:用户、密码,IP,SOCKET(3)提供专用连接线程:接收用户SQL,返回结果通过以下语句可以查看到连接线程基本情况mysql> show processlist;SQL层(1)接收上层传送的SQL语句(2)语法验证模块:验证语句语法,是否满足SQL_MODE(3)语义检查:判断SQL语句的类型DDL :数据定义语言DCL :数据控制语言DML :数据操作语言DQL: 数据查询语言...4)权限检查:用户对库表有没有权限(5)解析器:对语句执行前,进行预处理,生成解析树(执行计划),说白了就是生成多种执行方案.6)优化器:根据解析器得出的多种执行计划,进行判断,选择最优的执行计划代价模型:资源(CPU IO MEM)的耗损评估性能好坏(7)执行器:根据最优执行计划,执行SQL语句,产生执行结果执行结果:在磁盘的xxxx位置上(8)提供查询缓存(默认是没开启的),会使用redis tair替代查询缓存功能(9)提供日志记录(日志管理章节):binlog,默认是没开启的。存储引擎层(类似于Linux中的文件系统)负责根据SQL层执行的结果,从磁盘上拿数据。将16进制的磁盘数据,交由SQL结构化化成表,连接层的专用线程返回给用户。
一条 SQL 语句在 MySQL 中的执行流程通常包括以下步骤:1. **客户端发送 SQL 查询**:客户端通过网络连接发送 SQL 查询到 MySQL 服务器。2. **连接建立**:MySQL 服务器接收到客户端发送的 SQL 查询,并建立与客户端的连接。3. **解析器解析 SQL 查询**:MySQL 服务器中的解析器解析客户端发送的 SQL 查询,分析语法和语义,并将其转换为内部的执行计划。4. **优化器优化执行计划**:优化器对解析后的 SQL 查询进行优化,选择最佳的执行计划以提高执行效率。5. **存储引擎执行查询**:MySQL 服务器根据优化后的执行计划,调用相应的存储引擎执行查询操作。6. **锁管理器处理并发访问**:如果查询涉及到数据的读写操作,锁管理器负责处理并发访问,确保事务的隔离性和一致性。7. **数据读取或修改**:存储引擎根据执行计划从磁盘或缓存中读取数据,或者进行数据的修改操作。8. **日志管理器记录事务日志**:如果查询涉及到事务的修改操作,日志管理器负责记录事务日志,以实现事务的持久性和恢复能力。9. **返回结果给客户端**:存储引擎将查询结果返回给 MySQL 服务器,MySQL 服务器再将结果返回给客户端。10. **连接关闭**:客户端完成对查询结果的处理后,关闭与 MySQL 服务器的连接。这是一条 SQL 查询在 MySQL 中的基本执行流程。在执行过程中,MySQL 会根据查询的具体情况进行优化和调整,以提高执行效率和性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/254207.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IntelliJ IDE 插件开发 | (六)内部模式的使用

系列文章 IntelliJ IDE 插件开发 |(一)快速入门IntelliJ IDE 插件开发 |(二)UI 界面与数据持久化IntelliJ IDE 插件开发 |(三)消息通知与事件监听IntelliJ IDE 插件开发 |(四)来查收…

Oracle systemstate、gdb、dbx介绍

当数据库出现严重的性能问题或者hang了的时候, 可能最常用的办法就是重启数据库,简单有效解决问题;但是重启后如何追踪问题的根本原因成了难题,很多信息随着重启也消失不见了,让追查问题变的十分棘手,这时就…

Spring第二天

一、第三方资源配置管理 说明:以管理DataSource连接池对象为例讲解第三方资源配置管理 1 管理DataSource连接池对象 问题导入 配置数据库连接参数时,注入驱动类名是用driverClassName还是driver? 1.1 管理Druid连接池【重点】 数据库准备…

Android 识别车牌信息

打开我们心爱的Android Studio 导入需要的资源 gradle //开源车牌识别安卓SDK库implementation("com.github.HyperInspire:hyperlpr3-android-sdk:1.0.3")button.setOnClickListener(v -> {Log.d("Test", "");try (InputStream file getAs…

#Z0458. 树的中心2

题目 代码 #include <bits/stdc.h> using namespace std; struct ff {int z,len; }; vector<ff> vec[300001]; int n,u,v,w,dp[300001][2],ans 1e9; void dfs(int x,int fa) {for(int i 0;i < vec[x].size();i){ff son vec[x][i];if(son.z ! fa){dfs(son.z,…

搭建macOS开发环境-1:准备工作

请记住&#xff1a; 最重要的准备工作永远是&#xff1a;备份数据 !!! 通过图形界面检查 Mac 的 CPU 类型&#xff1a; 在搭载 Apple 芯片的 Mac 电脑上&#xff0c;“关于本机”会显示一个标有“芯片”的项目并跟有相应芯片的名称&#xff1a; 通过命令行检查Mac的CPU类型 …

ASP.NET Core 预防开放式重定向攻击

写在前面 为预防钓鱼网站的常用套路&#xff0c;在进行 Web 应用程序的开发时&#xff0c;原则上应该将所有由用户提交的数据视为不可信。如果应用程序中包含了基于 URL 内容重定向的功能&#xff0c;需要确保这种类型的重定向操作只能在应用本地完成&#xff0c;或者明确判断…

构造回文数组

目录 原题描述&#xff1a; 题目描述 时间&#xff1a;1s 空间&#xff1a;256M 题目描述&#xff1a; 输入格式&#xff1a; 输出格式&#xff1a; 样例1输入&#xff1a; 样例1输出&#xff1a; 样例2输入&#xff1a; 样例2输出&#xff1a; 约定&#xff1a; 作…

《幻兽帕鲁》攻略:0基础入门及游戏基础操作 幻兽帕鲁基础设施 幻兽帕鲁基础攻击力 Mac苹果电脑玩幻兽帕鲁 幻兽帕鲁加班加点

今天就跟大家聊聊《幻兽帕鲁》攻略&#xff1a;0基础入门及游戏基础操作。 如果想在苹果电脑玩《幻兽帕鲁》记得安装CrossOver哦。 以下纯干货&#xff1a; CrossOver正版安装包&#xff08;免费试用&#xff09;&#xff1a;https://souurl.cn/Y1gDao 一、基础操作 二、界面…

(45)执行操作后的变量值

文章目录 每日一言题目解题思路代码结语 每日一言 与其临渊羡鱼&#xff0c;不如退而结网。——《史记汉书董仲舒传》 题目 题目链接&#xff1a;执行操作后的变量值 存在一种仅支持 4 种操作和 1 个变量 X 的编程语言&#xff1a; X 和 X 使变量 X 的值 加 1 –X 和 X-- 使…

Allegro如何把Symbols,shapes,vias,Clines,Cline segs等多种元素一起移动

Allegro如何把Symbols,shapes,vias,Clines,Cline segs等多种元素一起移动 在用Allegro进行PCB设计时,有时候需要同时移动某个区域的所有元素,如:Symbols,shapes,vias,Clines,Cline segs等元素。那么如何操作呢? 首先就是把Symbols,shapes,vias,Clines,Cline …

【机器学习笔记】机器学习基本概念

机器学习基本概念 文章目录 机器学习基本概念1 概述2 机器学习实验方法与原则2.1 平均指标 2.2 训练集、验证集与测试集2.3 随机重复实验2.4 K折交叉验证2.4 统计有效性检验 1 概述 什么是机器学习 —— 在某种任务上基于经验不断进步 T (Task)&#xff1a;需要解决什么任务 P(…

LLaMA 模型中的Transformer架构变化

目录 1. 前置层归一化&#xff08;Pre-normalization&#xff09; 2. RMSNorm 归一化函数 3. SwiGLU 激活函数 4. 旋转位置嵌入&#xff08;RoPE&#xff09; 5. 注意力机制优化 6. Group Query Attention 7. 模型规模和训练超参数 8. 分布式模型训练 前置归一化与后置…

改进神经网络

Improve NN 文章目录 Improve NNtrain/dev/test setBias/Variancebasic recipeRegularizationLogistic RegressionNeural networkother ways optimization problemNormalizing inputsvanishing/exploding gradientsweight initializegradient checkNumerical approximationgrad…

设计模式-行为型模式(下)

1.访问者模式 访问者模式在实际开发中使用的非常少,因为它比较难以实现并且应用该模式肯能会导致代码的可读性变差,可维护性变差,在没有特别必要的情况下,不建议使用访问者模式. 访问者模式(Visitor Pattern) 的原始定义是&#xff1a; 允许在运行时将一个或多个操作应用于一…

【华为云】云上两地三中心实践实操

写在前面 应用上云之后&#xff0c;如何进行数据可靠性以及业务连续性的保障是非常关键的&#xff0c;通过华为云云上两地三中心方案了解相关方案认证地址&#xff1a;https://connect.huaweicloud.com/courses/learn/course-v1:HuaweiXCBUCNXI057Self-paced/about当前内容为华…

react将选中文本自动滑动到容器可视区域内

// 自动滚动到可视区域内useEffect(() > {const target ref;const wrapper wrapperRef?.current;if (target && wrapperRef) {const rect target.getBoundingClientRect();const wrapperRect wrapper.getBoundingClientRect();const isVisible rect.bottom &l…

2. Maven 继承与聚合

目录 2. 2.1 继承 2.2继承关系 2.2.1 思路分析 2.2.2 实现 2.1.2 版本锁定 2.1.2.1 场景 2.1.2.2 介绍 2.1.2.3 实现 2.1.2.4 属性配置 2.2 聚合 2.2.1 介绍 2.2.2 实现 2.3 继承与聚合对比 maven1&#xff1a;分模块设计开发 2. 在项目分模块开发之后啊&#x…

查大数据检测到风险等级太高是怎么回事?

随着金融风控越来越多元化&#xff0c;大数据作为新兴的技术被运用到贷前风控中去了&#xff0c;不少人也了解过自己的大数据&#xff0c;但是由于相关知识不足&#xff0c;看不懂报告&#xff0c;在常见的问题中&#xff0c;大数据检测到风险等级太高是怎么回事呢?小易大数据…

吉他学习:C大调第一把位音阶,四四拍曲目练习 小星星

第十三课 C大调第一把位音阶https://m.lizhiweike.com/lecture2/29364198 第十四课 四四拍曲目练习 小星星https://m.lizhiweike.com/lecture2/29364131 C大调第一把位音阶非常重要,可以多练习&#