MysqL——深入MySQL原理(一)

文章目录

    • MySQL架构图
    • MySQL执行流程
      • 简要执行流程:
      • 详细执行流程
    • 存储引擎
    • SQL执行顺序
    • 存储结构
    • 实战演示

MySQL架构图

图例如下:
在这里插入图片描述
server层:
Connection Pool :连接池,负责管理持有所有的连接,采用BIO的技术,承载能力有限。此外还进行用户的鉴权,线程重用,内存检查,cache管理等等;
SQL Interface:
Parser:解析器,
Optimizer:优化器,
cache&buffer:缓存,
插件层:各种存在的地方
文件层:数据存储的地方

MySQL执行流程

简要执行流程:

在这里插入图片描述

详细执行流程

在这里插入图片描述

存储引擎

在这里插入图片描述
只有innodb支持事务。
对于myisam来说,它存储了全表的总数记录,所以 select count(*)比较innodb要快;

SQL执行顺序

在这里插入图片描述
实际上,查询优化器不一定严格按照这种顺序因此执行顺序不太重要。

存储结构

innodb引擎默认按照主键索引的结构来存储,索引的结构采用B+树这种数据结构。
在这里插入图片描述

为什么采用B+树的存储结构?

  • 基于B+树的特性及优势,数据按照数据块来存储,每一块上可能有多条数据,当某条数据被使用了,那么有可能他前后的数据也有极大的可能被使用,直接将这一块放入内存中,从而减少I/O的次数,极大提高了查询效率。
  • 另一方面,B+的叶子结点采用双向链表的方式串联起来,在范围查询时,借助链表指针可以轻松找到下一块的位置,不需要回溯非叶结点的索引记录;
  • 另外,基于B+树非叶结点存索引指针,叶子结点存储数据的特性,保证单表数据达到2100万极限值仍能保证查询效率;

MySQL一个页大约是16K,假设常规的表一个记录是1K,一个页大约能存储16个记录;通常情况,主键类型是big int,bing int本身占8个字节一个针指针的大小大约6个字节,一般索引页都是一个主键值跟一个指针,这样就是14个字节,161024/14=1170个数据。B+一般树三层,三层下来是11701170*16 = 2100000;

实战演示

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

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

相关文章

nvm安装pnpm,pnpm不是内部或者外部指令问题解决

node版本18支持安装pnpm 如需要安装pnpm,要先安装nvm切换node版本,因为pnpm要node版本18 https://github.com/nvm-sh/nvm nvm install 18 nvm use 18如遇版本切换失败问题: source ~/bashrc然后安装pnpm curl -fsSL https://get.pnpm.io/…

程序员必知!2024最新版设计模式大合集

程序员必知!开放封闭原则的实战应用与案例分析 核心思想:在设计中,应尽量通过添加新的类或模块来增加新的功能,而不是修改现有的代码。 程序员必知!依赖倒置原则的实战应用与案例分析 核心思想:高层模块不…

DCP文件传输的重要性与应用

在数字时代,文件传输已成为商业运作中不可或缺的一环。随着企业越来越多地采用云基础设施和服务,有效地在云和团队之间传输大文件和数据集变得至关重要。在这一背景下,数据复制协议(DCP)文件传输应运而生,引…

【Java】【OpenCV】【awt】两种方式实现很「高大上」图片双重曝光

自双重曝光产生以来,它就一直是摄影爱好者热衷于尝试的摄影手法。通过双重曝光,可以为普通的照片带来神秘的意境和让人难以言喻的感觉,使得每一个场景的纹理和颜色都有了一种如梦如幻的效果,让人沉醉于其中。 在以前,摄…

血泪教训!Java项目的路径中一定不要包含中文~

今天通过应用类加载器获取某个目录下的文件时,控制台一直没有输出,但是没有任何的报错,代码如下所示 ClassLoader classLoaderwjrApplicationContext.class.getClassLoader();//appURL url classLoader.getResource("com/wjr/service&qu…

达梦数据实时同步软件DMHS介绍和原理

1、产品介绍 达梦数据实时同步软件(以下简称 DMHS)是支持异构环境的高性能、高可靠、高可扩展数据库实时同步复制系统。该产品采用基于日志的结构化数据复制技术,不依赖主机上源数据库的触发器或者规则,对主机源数据库系统几乎无影…

Redis相关报错信息:Could not connect to Redis at 127.0.0.1:6379: 由于目标计算机积极拒绝,无法连接。

报错信息: Could not connect to Redis at 127.0.0.1:6379: 由于目标计算机积极拒绝,无法连接。 报错原因: 访问不到Redis服务 解决方案: 将Redis服务打开! 使用cmd命令行打开本机服务管理: services…

数组深入详解

1、背景 上传图片,需要对图片格式进行校验,这是就可以使用数组 2.1、什么是数组? Java 语言中提供的数组是用来存储固定大小的同类型元素。 如:可以声明一个数组变量,如 numbers[100] 来代替直接声明 100 个独立变量…

【前端转安卓】-Java基础知识笔记

常量定义:final public class HelloWorld {// 静态常量public static final double PI 3.14;// 声明成员常量final int y 10;public static void main(String[] args) {// 声明局部常量final double x 3.3;} }变量声明、赋值 String username,address,phone,te…

关于《电能质量管理办法(暂行)》实施的意义及解决方案——安科瑞赵嘉敏

中华人民共和国国家发展和改革委员会令 第8号 《电能质量管理办法(暂行)》已经2023年12月26日第7次委务会议审议通过,现予公布,自2024 年4月1日起施行。 主任 郑栅洁 2023年12月27日 1 办法解读 新型电力系统中新能源所占比例越来越高,光伏、风力等分布式电源、…

高德打车引入“红绿灯倒计时”能力,算力技术升级打车体验

打到的车还有多久能到?接驾车辆原地不动是什么原因?乘客在打车时,常常因为无法了解实时接驾路况,容易出现“等车焦虑”。 如今,高德打车已全面应用“红绿灯倒计时”能力,让乘客在等车时就能掌握接驾路况&am…

2024 年1月12日最热NLP大模型论文:Transformers are Multi-State RNNs

揭秘Transformer的无限可能,Meta研究发现Transformer其实是多状态RNN 引言:重新定义Transformer的视角 在自然语言处理(NLP)的领域,Transformer架构自2017年提出以来,已经成为了一种主流的模型&#xff0…

第十四章JSON

第十四章JSON 1.什么是JSON2.JSON的定义和访问3.JSON在JavaScript中两种常用的转换方式4.JavaBean和JSON的相互转换5.List集合和JSON的相互转换6.map集合和JSON的相互转换 1.什么是JSON 2.JSON的定义和访问 JSON的定义 JSON的类型是一个Object类型 JSON的访问 我们要…

芋道框架----(业务表单工作流)短信通知流程分析

芋道中给的请假流程示例,在发起流程的时候,可以看到它是由短信通知的,找了好久,想看看是什么时候触发的,之前一直以为是监听器,结果导致思维先入为主,陷入了怪圈,现做如下总结。 首先…

轻松批量重命名,一键随机并控制长度:让你的文件夹名充满无限可能

在数字时代,我们拥有海量的数据和文件,其中很多都存储在各种文件夹中。然而,随着时间的推移,文件夹名称可能变得不再相关或难以记忆。如何给这些文件夹一个全新的、充满创意的名字?今天,我们为你带来了这款…

20/100 删除链表的倒数第 N 个结点 21/100 有效的括号 22/100 合并两个有序列表

20/100 删除链表的倒数第 N 个结点 题目: 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 题解: 方法1:第一次完整遍历一遍得到长度,第二次遍历到倒数第n个数据前一个,进…

vue3中组合式api的常用方法

vue3中组合式api的常用方法 记录一下vue3中常用的组合式api&#xff0c;包括计算属性computed、监听器watch及watchEffective 一、computed 作用&#xff1a;根据已有数据计算出新数据&#xff08;和Vue2中的computed作用一致&#xff09;。 <template><div class&…

Bom 和 Dom 区别 ----- 真是DOM 和 虚拟Dom区别

DOM和BOM的区别 我们都指代&#xff0c;javascript由三个部分组成&#xff1a; ECMAScript&#xff1a;描述了JS的语法和基本对象 BOM(浏览器对象)&#xff1a;与浏览器交互的方法和对象 DOM(文档对象模型)&#xff1a;处理网页内容的方法和接 ps&#xff1a;根据宿主&#x…

Nerf相关研究

1.Nerf相关研究 随着Luma AI的到来&#xff0c;再次将Nerf推向浪尖&#xff0c;实用性进一步得到强化。Nerf仍以极速的发展速度前行&#xff0c;越来越多的研究方向不断涌现。 4K-Nerf 4K-NeRF: High Fidelity Neural Radiance Fields at Ultra High Resolutions 论文&#…

JVM内存模型深度剖析与优化

欢迎大家关注我的微信公众号&#xff1a; 目录 JVM整体结构及内存模型 JVM内存参数设置 JVM整体结构及内存模型 首先附一段简单代码&#xff0c;我们从代码层面来讲解内存模型 public class Math {public static final int initData 666;public static User user new …