MySQL索引背后的数据结构及算法原理一、定义索引定义:索引(Index)是帮助MySQL高效获取数据的数据结构。本质:索引是数据结构。二、B-Treem阶B-Tree满足以下条件:1、每个节点至多可以拥有m棵子树。2、根节点,只有至少有2个节点(要么极端情况,就是一棵树就一个根节点,单细胞生物,即是根,也是叶,也是树)。3、非根非叶的节点至少有的Ceil(m/2)个子树(Ceil表示向上取整,如
转载 2023-06-29 10:30:28
84阅读
mysql底层结构用户:进行数据库连接的人。支持接口:是第三方语言提供和数据库连接的接口,常见的有jdbc,odbc,c的标准api函数等等。连接层:提供与用户的连接服务,用于验证登录服务。服务层:完成大多数的核心服务功能。有sql接口,解析器parser,优化器optimizer,查询缓存 cache/buffer 。通俗的说--------->服务层告诉引擎层要做什么。引擎层:&nbsp
转载 2023-09-30 17:47:21
68阅读
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阅读
欢迎关注公众号(通过文章导读关注:【11来了】),及时收到 AI 前沿项目工具及新技术的推送!在我后台回复 「资料」 可领取编程高频电子书!在我后台回复「面试」可领取硬核面试笔记!什么时间将缓存页刷入磁盘呢?在 MySQL 中会有一个后台线程运行定时任务,定时将 LRU 链表的 冷数据区域尾部 的一些缓存页刷入磁盘里去,清空这几个缓存页,将他们加入到 free 链表中(free 链表存放的就是 B
原创 精选 2024-02-14 14:43:16
152阅读
欢迎关注公众号(通过文章导读关注:【11来了】),及时收到 AI 前沿项目工具及新技术的推送!在我后台回复 「资料」 可领取编程高频电子书!在我后台回复「面试」可领取硬核面试笔记!BufferPool 底层设计Buffer Pool 是 MySQL 中的一个很重要的内存结构,MySQL 的增删改查都是直接操作 BufferPool 的,一般设置 BufferPool 的大小为机器内存的 60% ,
原创 精选 2024-02-14 14:41:50
167阅读
欢迎关注公众号(通过文章导读关注:【11来了】),及时收到 AI 前沿项目工具及新技术的推送!在我后台回复 「资料」 可领取编程高频电子书!在我后台回复「面试」可领取硬核面试笔记!bin log、redo log、undo log 作用:bin log:bin log 叫做归档日志,主要记录了做了什么操作,比如更新一行数据,bin log 就记录了对哪一行数据做更改,更新前的值是什么,更新为了什么
原创 精选 2024-02-14 14:42:24
146阅读
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阅读
MongoDB底层设计 MongoDB是一个开源的文档型NoSQL数据库。它以JSON格式存储数据,并使用BSON(Binary JSON)作为数据交互的格式。作为一种分布式数据库,MongoDB的底层设计非常复杂,涉及到数据的存储、查询、索引和分片等多个方面。本文将介绍MongoDB的底层设计原理以及相关的代码示例。 ## 数据存储 在MongoDB中,数据以文档(document)的形式
原创 2024-02-06 04:04:29
51阅读
以往已经总结过Mysql底层实现上的一些细节,上一篇的文章也用通俗的语言说了一些自己对Mysql底层存储实现上的认识与理解。这篇文章就在原来的基础上来说一下基于redo、undo日志实现的数据安全存储、以及结合存储机制和版本链等技术对Mysql事务的实现。在文章中主要是分为两部分一个是redo、undo日志的结构、关键属性的相关计算,Mysql事务以及隔离级别实现的原理!1、redo block
有关Mysql底层存储结构前面已经写过一篇文章,当然这文章主要是基于听爪哇课程之后做的笔记,过了一段时间之后有重新看一遍,就用通俗的话说一下自己对这一块的理解。文章导图:Mysql上 | ProcessOn免费在线作图,在线流程图,在线思维导图一、概述现在我们讨论的是Mysql的存储,通常我们是在cpu中处理数据,但是由于成本以及存储特性最终数据的保存又一定是要到磁盘的。CPU的运行速度与IO读取
转载 2023-08-11 15:56:11
85阅读
Mysql的结构ClientServer 连接器->解析器->优化器->执行器存储引擎:不同的存放位置,有不同的文件格式 1)innoDB: 聚簇索引,索引和数据放在一起 .frm 存放的是表结构 .lbd存放的数据文件和索引 mysql的innodb存储引擎默认情况下会把所有的数据文件放到表空间,不会为每个表保存单独的数据文件 2)MyISAM: 非聚簇索引,数据和索引单独存放
转载 2023-06-25 15:24:03
93阅读
老生常谈的数据库引擎到底是Who?MySQL中的数据采用各种不同的技术存储在文件(或者内存)中。每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,我们能够获得额外的速度或者功能,从而改善喝提高应用的整体功能。当我们理解了引擎这个概念,就会知道提供各种不同引擎给你选择,然后用你选出来的引擎去处理sql语句MYSQL常用的四个数据库引擎:(1)
MySQL底层大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。Server层主要包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。Store层存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持 InnoDB、MyI
转载 2023-09-13 17:22:08
59阅读
文章目录一、基础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阅读
  让我再深撸一次mysql吧,这次主要以应对面试来说说mysql,大概几个方向,索引结构,查询引擎,索引优化,explain的详解和trace工具的使用。索引:我们先来看一下mysql的B+tree,本文几乎都在围绕这个图来说的。mysql底层是使用B+tree来存储数据的,和B+tree有一点点不同的是叶子节点是双向链表的结构,并不是图内的单向指针的。且null值放置在叶子节点的最前面。这个
转载 2024-02-03 00:10:22
98阅读
我们平时都是使用sql语句去查询数据,都是很直接的看到结果。那么对于sql底层执行的过程大家有了解吗?一、MySQL的内部组件结构大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。Server层主要包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数 (如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如
转载 2023-07-13 12:02:13
105阅读
前言最近看了相关的Redis设计核心相关的书籍,对Redis有了一些小的认识,然后自己也做一些产出加深映象,我会从几个方面去总结Redis设计的核心内容:Redis底层数据结构总结、Redis高性能由哪些基础支撑、Redis应用场景、那些有趣的功能。概述 本篇主要内容是Redis底层数据结构总结。Redis供用户直接使用的数据结构有String、List、Set、Zset、Hash等结构
存储引擎很多文章都是直接开始介绍有哪些存储引擎,并没有去介绍存储引擎本身。那么究竟什么是存储引擎?不知道大家有没有想过,MySQL是如何存储我们丢进去的数据的?其实存储引擎也很简单,我认为就是一种存储解决方案,实现了新增数据、更新数据和建立索引等等功能。有哪些已有的存储引擎可以让我们选择呢?InnoDB、MyISAM、Memory、CSV、Archive、Blackhole、Merge、Feder
Mysql 底层数据引擎以插件形式设计,最常见的是 Innodb 引擎和 Myisam 引擎,用户可以根据个人需求选择不同的引擎作为Mysql 数据表的底层引擎。我们刚分析了,B+树作为 Mysql的索引的数据结构非常合适,但是数据和索引到底怎么组织起来也是需要一番设计设计理念的不同也导致了 Innodb 和 Myisam的出现,各自呈现独特的性能。MyISAM 虽然数据查找性能极佳,但是不支持
  • 1
  • 2
  • 3
  • 4
  • 5