MySQL的内部组件结构:大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。 Server层主要包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。Store层存储引擎层负责数据的存储和提取。其架构模式是插件式的,支
转载 2023-07-31 16:54:26
51阅读
1 前言本章目标:了解构成MySQL数据库和InnoDB存储引擎的各种类型的文件。理解InnoDB存储引擎的内存结构和磁盘结构。2 文件MySQL数据库和InnoDB存储引擎的文件有参数文件、日志文件、socket文件、pid文件、表结构文件、存储引擎文件。下面将会对这些文件逐一介绍。参数文件告诉MySQL实例启动时在哪里可以找到数据库文件,并且指定某些初始化参数,这些参数定义了某种内存结构的大小
转载 2023-08-28 18:18:31
74阅读
1、概念1.1 数据库事务:简单的说事务就是一组原子性的SQL语句。可以将这组语句理解成一个工作单元,要么全部执行要么都不执行。默认MySQL中自动提交时开启的(start transaction)事务的ACID特性如下:原子性:事务中的所有操作要么全部提交成功,要么全部失败回滚。场景:UPDATE cs_user SET age = 18 , gender = '女' WHERE id = 4。
转载 2023-09-13 16:52:49
122阅读
以往已经总结过Mysql底层实现上的一些细节,上一篇的文章也用通俗的语言说了一些自己对Mysql底层存储实现上的认识与理解。这篇文章就在原来的基础上来说一下基于redo、undo日志实现的数据安全存储、以及结合存储机制和版本链等技术对Mysql事务的实现。在文章中主要是分为两部分一个是redo、undo日志的结构、关键属性的相关计算,Mysql事务以及隔离级别实现的原理!1、redo block
MySQL索引背后的数据结构及算法原理一、定义索引定义:索引(Index)是帮助MySQL高效获取数据的数据结构。本质:索引是数据结构。二、B-Treem阶B-Tree满足以下条件:1、每个节点至多可以拥有m棵子树。2、根节点,只有至少有2个节点(要么极端情况,就是一棵树就一个根节点,单细胞生物,即是根,也是叶,也是树)。3、非根非叶的节点至少有的Ceil(m/2)个子树(Ceil表示向上取整,如
转载 2023-06-29 10:30:28
84阅读
有关Mysql底层存储结构前面已经写过一篇文章,当然这文章主要是基于听爪哇课程之后做的笔记,过了一段时间之后有重新看一遍,就用通俗的话说一下自己对这一块的理解。文章导图:Mysql上 | ProcessOn免费在线作图,在线流程图,在线思维导图一、概述现在我们讨论的是Mysql的存储,通常我们是在cpu中处理数据,但是由于成本以及存储特性最终数据的保存又一定是要到磁盘的。CPU的运行速度与IO读取
转载 2023-08-11 15:56:11
85阅读
我们平时都是使用sql语句去查询数据,都是很直接的看到结果。那么对于sql底层执行的过程大家有了解吗?一、MySQL的内部组件结构大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。Server层主要包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数 (如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如
转载 2023-07-13 12:02:13
105阅读
  让我再深撸一次mysql吧,这次主要以应对面试来说说mysql,大概几个方向,索引结构,查询引擎,索引优化,explain的详解和trace工具的使用。索引:我们先来看一下mysql的B+tree,本文几乎都在围绕这个图来说的。mysql底层是使用B+tree来存储数据的,和B+tree有一点点不同的是叶子节点是双向链表的结构,并不是图内的单向指针的。且null值放置在叶子节点的最前面。这个
转载 2024-02-03 00:10:22
98阅读
Mysql的结构ClientServer 连接器->解析器->优化器->执行器存储引擎:不同的存放位置,有不同的文件格式 1)innoDB: 聚簇索引,索引和数据放在一起 .frm 存放的是表结构 .lbd存放的数据文件和索引 mysql的innodb存储引擎默认情况下会把所有的数据文件放到表空间,不会为每个表保存单独的数据文件 2)MyISAM: 非聚簇索引,数据和索引单独存放
转载 2023-06-25 15:24:03
93阅读
文章目录一、基础1. MySQL的核心是存储引擎2. InnoDB3. 一条sql语句在数据库框架中执行的流程:4. 查询语句前加explain来查看执行计划,相应优化;4.1执行计划:4.2查询性能的优化方法:4. 索引的分类:5. 索引失效情况分类:一、进阶1.主从复制中涉及到的三个线程 一、基础1. MySQL的核心是存储引擎主要存储引擎有:MyISAM,InnoDB,Memory,Arc
转载 2023-10-08 08:39:11
53阅读
老生常谈的数据库引擎到底是Who?MySQL中的数据采用各种不同的技术存储在文件(或者内存)中。每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,我们能够获得额外的速度或者功能,从而改善喝提高应用的整体功能。当我们理解了引擎这个概念,就会知道提供各种不同引擎给你选择,然后用你选出来的引擎去处理sql语句MYSQL常用的四个数据库引擎:(1)
MySQL底层大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。Server层主要包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。Store层存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持 InnoDB、MyI
转载 2023-09-13 17:22:08
59阅读
存储引擎很多文章都是直接开始介绍有哪些存储引擎,并没有去介绍存储引擎本身。那么究竟什么是存储引擎?不知道大家有没有想过,MySQL是如何存储我们丢进去的数据的?其实存储引擎也很简单,我认为就是一种存储解决方案,实现了新增数据、更新数据和建立索引等等功能。有哪些已有的存储引擎可以让我们选择呢?InnoDB、MyISAM、Memory、CSV、Archive、Blackhole、Merge、Feder
网络连接层, 对客户端的连接处理、安全认证、授权等,每个客户端连接都会在服务端拥有一个线程,每个连接发起的查询都会在对应的单独线程中执行。服务器上维护一个线程池,避免为每个连接创建和销毁线程。当客户端连接到MySQL服务器时,服务器对其进行认证。可以通过用户名与密码认证,也可以通过SSL证书进行认证。登录认证后,服务器还会验证客户端是否有执行某个查询的操作权限。这一层并不是MySQL所特有的技术。
转载 2023-07-13 06:39:34
9阅读
Mysql 底层数据引擎以插件形式设计,最常见的是 Innodb 引擎和 Myisam 引擎,用户可以根据个人需求选择不同的引擎作为Mysql 数据表的底层引擎。我们刚分析了,B+树作为 Mysql的索引的数据结构非常合适,但是数据和索引到底怎么组织起来也是需要一番设计,设计理念的不同也导致了 Innodb 和 Myisam的出现,各自呈现独特的性能。MyISAM 虽然数据查找性能极佳,但是不支持
一: MySQL为什么要选B+数作为底层的数据结构MySQL底层算法有B数、红黑树、hash、B+树,为什么就选择了B+树作为数据库的底层物理结构二叉树的特点是左节点小于根节点、根节点小于右节点B树由于存在特殊情况,如左节点为空,节点全在右节点上,这样导致的结果会造成和没有索引一样,依次查找,效率很低,同时也会造成树的深度很深,IO次数太多导致查询效率很低。红黑树由于存在树的深度问题导致查数据I
转载 2023-09-04 12:42:04
79阅读
mysql索引的底层结构MySQL中的索引索引的底层数据结构索引的类型普通索引主键索引唯一索引全文索引如何选择索引从表面的基本特性考虑性能和底层来分析覆盖索引的定义回表操作最左匹配原则 MySQL中的索引本质是一种‘排好序的数据结构’,可以帮助快速查找数据。可以类比目录理解。不能全加上索引的原因: 虽然它查询使用优化隐藏器提高性能,但是也会相应占物理空间,从而导致降低增删改的速度,因为操作数据的
转载 2023-08-20 22:47:33
67阅读
大家好,今天继续我们Inndob文件系统的学习,首先我们要知道Innodb属于整个MYSQL体系中处于最底层的存储层(client->server->storage),然后嘞,要对innodb整体的体系结构有一个全局的概念,如下图:  下面我们对上图的模块简单介绍一波,让大家对innodb有一个更清晰的认识。1、 Handler API:这个模块主要是用来
转载 2023-11-20 22:05:31
80阅读
前言:大部分人都知道,MySQL底层使用的是B+树这个数据结构,但是你们知道为什么是B+树呢?为什么不是哈希索引,为什么不是平衡二叉树(AVL,甚至红黑树)呢?或者说为什么不是B树呢?这里我就带大家一步一步来解释为什么是B+树,废话不多说,现在开始~为什么不是Hash索引?首先这里说的是面试中常问到的,为什么不是Hash索引?因为对应hash值,它是一个无序的这么一个值(底层计算就不解释了,位运算
转载 2023-08-29 13:29:14
41阅读
mysql索引是帮助mysql高效获取的排好序的数据结构 数据结构  二叉树(左小右大)     缺点:如果是递增或者递减的数据,就会成一个链状,失去了索引的功能  红黑树    二叉树的升级版,如果是递增或递减的数据就会做一下优化     缺点:治标不治本,树高还是很高 i/o 还是多  Hash表    在mysql中每一个索引都对应着hash表中的一个hash值
  • 1
  • 2
  • 3
  • 4
  • 5