MySQL 知识连载(一)

news2025/2/2 9:49:14

点击上方“追梦 Java”关注,一起追梦!

52118e1f131efbdd48e882ce335336fd.png

MySQL 是一款开源软件,凭借其出色的性能,目前已经成为绝大多数互联网公司的首选关系型数据库。因此程序员不能只懂数据库的增删改查和一些简单的使用技巧,更需要熟练掌握 MySQL 的一些原理知识,从而更好地应对实际工作中遇到的问题。

1

了解 MySQL 的整体架构

77d8326cc739080a5fd851d46d967ecb.png

1、MySQL 官网介绍

学习了解一个技术最好的方式是通过官网去了解,官网上有详细的文档资料可供学习。很多人不习惯从官网上查找资料,甚至不清楚如何在官网上下载程序安装包,如何找到官方的学习文档,下面给大家做个简单的介绍。面对复杂的英文文档,大家不必发憷,看多了就习惯了,实在看不了,不是还有各种翻译软件吗。

2、MySQL下载

MySQL 官网地址:https://dev.mysql.com/

打开后界面如下:其中 DOWNLOADS 和 DOCUMENTATION 两个标签就是下载和文档的入口。

8d8869f16797d42592c75c57627b5fdf.png

打开 DOWNLOADS 页面,找到最下方的 MySQL Community (GPL) Downloads ,下载社区版即可,免费使用。

MySQL下载地址:https://dev.mysql.com/downloads/mysql/

打开后点击:MySQL Community Server ,点击 Looking for previous GA versions? 选择 MySQL 的历史通用版本。

1e65e690de3a606e9573ddf7c2722a25.png

下载时需要注册 Oracle 的账户。d2971a690cba8fd59eb82fda95240008.png

3、MySQL 文档

c2fa13a5ac6b5652e9154bcb1c022e8c.png

从左边的菜单选择感兴趣的内容可以进行学习。

b8abd4f90172f652ff1f5bd6d3345b51.png

2

了解 MySQL 的架构

c14737ae1fc213af16856c22de4359df.png

1、MySQL架构图

在 MySQL5.1 的中文文档资料里,有如下的一张 MySQL 插件式存储引擎的体系结构图,通过这张图(https://www.mysqlzh.com/doc/134.html),我们能很好地了解 MySQL 的整体架构。

9c84aa7a2e8fcc52e4279a213ef4dbcd.png

从以上的架构图我们可以看出,最上面的 Connectors 表示客户端,客户端就是一些具体的链接协议;下面的 MySQL Server 表示服务端,其中包括Connection Pool 、SQL Interface、Parser、Optimizer、Storage Engines、文件系统(Files、Logs)以及管理服务。

2、MySQL 架构介绍

从上面的分析可以看出,MySQL 服务器主要包括 sql 层和存储引擎层,主要包括以下6个部分:

1、客户端的链接支持的协议很多,比如我们在 Java 开发中经常用到的 JDBC,客户端请求过来首先会由 Connection Pool 进行管理,包括权限认证、链接管理,缓存管理等,Connection Pool 最主要的功能就是接收客户端的请求。

2、客户端一个 sql 语句请求过来之后, SQL Interface 会统一接收用户的 sql 命令,接下来会交给 Parser 来进行解析。

3、Parser 解析器的目的是把 sql 的文本解析成 select_lex 对象,随后把 select_lex 对象提交给优化器 Optimizer。

4、优化器 Optimizer 会进行 sql 执行的成本计算,找到最优的一个执行计划,然后会调用下方存储引擎 Storage Engines 的API 进行数据的读写。

5、存储引擎 Storage Engines 最终操作的是最下方的文件系统,包括 Files 和 Logs。

6、图中左上角的工具模块包括备份、主从复制等功能。

后面将为大家介绍 MySQL 的存储引擎。

有用的话点个在53174f3cded57d9f85b6c9646b446990.png

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL八股学习历程3MySQL数据页的格式from小林coding

MySQL八股学习历程3MySQL数据页的格式from小林coding InnoDB数据页MySQL单表建议数据承载量探究 InnoDB数据页 InnoDB 的数据是按数据页为单位来读写的,每个数据页大小默认为16KB,数据页的格式如下图 文件头中有两个指针,指向上一个数据页和下一个数据页,使得页面连接成一个…

大佬带你体验华为云代码检查服务CodeArts Check

1 开发者的自述 作为开发者,刚开始都不希望有任何针对他代码的批评,因为一旦知道代码被检测出问题,就会付出额外的努力做好工作,实际上,从一个开发人员的编码中,你能更清楚地了解编程语言可以做什么&#…

单片机裸机程序框架是怎样的?

单片机裸机程序框架指的是在单片机上进行编程时,不依赖任何操作系统或高级库的纯裸机编程框架。这意味着你需要直接操作底层硬件和寄存器,以完成特定的任务。下面是一个典型的单片机裸机程序框架,以C语言为例: // 头文件包含&…

分布式kmeans(scala原码实现)

scala分布式kmeans 1.分布式Kmeans算法设计思路2.分布式Kmeans算法代码实现2.1 Driver(主要负责分配、汇总数据)2.2 Executor(主要负责计算)2.3 Executor2(主要负责计算) 3.分布式Kmeans算法spark集群部署3…

如何解决笔记本电脑键盘失灵的问题:3个简单而有效的解决方法

当你使用笔记本电脑时,可能会遇到键盘失灵的情况,这是一件非常令人恼火的事情。然而,不要担心,下面将为你提供三个简单而有效的解决方法。 首先,检查连接和驱动程序。请确保键盘与笔记本电脑的连接正常,有时…

数据结构与算法之美总结(数组、链表、栈、队列、递归、排序及二分)

title: 数据结构与算法之美总结(数组、链表、栈、队列、递归、排序及二分) date: 2023-04-15 01:41:26 tags: 数据结构算法 categories:数据结构与算法 cover: https://cover.png feature: false 1. 前言 1、什么是数据结构?什么是算法&…

SpringCloud Alibaba组件之Seata安装部署

seata server(TC) 部署 部署指南:https://seata.io/zh-cn/docs/ops/deploy-guide-beginner.html 下载地址:https://github.com/seata/seata/tags 版本对应关系:SpringCloud Alibaba 组件对应关系说明 下载 通过查…

Minio部署总结

官方介绍 MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小&#xf…

一文搞懂数据库索引原理

前言 写数据库,我第一时间就想到了MySQL、Oracle、索引、存储过程、查询优化等等。 不知道大家是不是跟我想得一样,我最想写的是索引,为啥呢? 以下这个面试场景,不知道大家熟悉不熟悉: 面试官:数…

郑州网站域名升级https通配符证书

新创建的网站如果没有安装SSL证书,在客户端与服务器传输信息时会使用明文传输,明文传输的数据容易被其他人截获或者插入违法信息,会对网站所有者和访问网站的客户带来危害。而部署了SSL证书将网站域名由http升级为https,会在客户端…

【PHP面试题51】Swoole是什么?有什么特点,主要解决了什么问题

文章目录 一、前言二、什么是Swoole?三、如何使用Swoole?四、Swoole主要解决了什么问题?4.1 高性能4.2 高并发4.3 异步编程4.4 多协议支持 五、总结 一、前言 本文已收录于PHP全栈系列专栏:PHP面试专区。 计划将全覆盖PHP开发领域…

jdk1.8安装教程及环境变量配置(含jdk8,11,13安装文件)

目录 友情提醒第一章、JVM、JRE、JDK介绍第二章、下载和安装JDK2.1)百度网盘直接下载免安装2.2)官网下载安装JDK(需要收费) 第三章、环境变量配置3.1)windows环境变量配置3.2)验证环境变量是否配置成功 友情…

spark启动HA时workers为0,且为standby状态

今天学习一个spark视频,在启动StandAloneHa模式的时候,发现workers为0,而且spark两个master的状态都为standby,找了很久,才知道我用的spark3.2 最低支撑的zookeeper版本为3.5.x,而且zookeeper的安装包是需要带bin的那个…

自学C++(4)

1、友元 友元的目的就是让一个函数或者类访问另一个类中private成员 1.1全局函数做友元 写法:在类外定义一个全局函数,如果这个函数访问到了类中private成员,则需要在这个类中声明这个函数为private类型。 这里需要注意的是全局函数形参的…

Spark MLlib快速入门(1)逻辑回归、Kmeans、决策树、Pipeline、交叉验证

Spark MLlib快速入门(1)逻辑回归、Kmeans、决策树案例 除了scikit-learn外,在spark中也提供了机器学习库,即Spark MLlib。 在Spark MLlib机器学习库提供两套算法实现的API:基于RDD API和基于DataFrame API。今天,主要介绍下Data…

ModuleNotFoundError: No module named ‘pkg_resources‘

原因可能是因为setuptools升级版本过高,把setuptools降级到44.0.0及以下即可。 pip uninstall setuptoolspip install setuptools44.0.0 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

【洛谷】P3865 【模板】ST 表

先上ACcode: #include<bits/stdc.h> using namespace std; const int N1e510,M1e520; int n,m,f[N][20]; void solve(){cin>>n>>m;for(int i1;i<n;i) cin>>f[i][0];for(int j1;j<20;j)for(int i1;i(1<<j)-1<n;i)f[i][j]max(f[i][j-1],…

C\C++ 使用ping判断ip是否能连通

文章作者&#xff1a;里海 来源网站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan 简介&#xff1a; ping是一种用于测试网络连接的工具&#xff0c;它通过发送数据包到目标设备并等待其响应来工作&#xff0c;以检查网络是否连通。下面是例子. 效果&#xff1a; 代码…

【C语言】初阶结构体

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前正在回炉重造C语言&#xff08;2023暑假&#xff09; ✈️专栏&#xff1a;【C语言航路】 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章对你…

使用Vue-Router实现页面跳转

安装 npm install vue-router4 --save项目中新建router.js文件 import { createRouter,createWebHashHistory } from "vue-router"; import Home from "/pages/Home.vue" import Banner from "/pages/Banner.vue" import Post from "/pag…