返回顶部
首页 > 资讯 > 数据库 >详解 MySQL的FreeList机制
  • 315
分享到

详解 MySQL的FreeList机制

MySQLFreeList机制MySQLFreeList 2022-05-13 06:05:19 315人浏览 泡泡鱼
摘要

一、前言 Mysql启动后,BufferPool就会被初始化,在你没有执行任何查询操作之前,BufferPool中的缓存页都是一块块空的内存,未被使用过也没有任何数据保存在里面。 而且你也知道了通过缓冲页的描述信息可

一、前言

Mysql启动后,BufferPool就会被初始化,在你没有执行任何查询操作之前,BufferPool中的缓存页都是一块块空的内存,未被使用过也没有任何数据保存在里面。

而且你也知道了通过缓冲页的描述信息可以直接且唯一的找到它所指向的缓存页。

那你有没有想过,我们从磁盘里面读取出来的 数据页 应该放到那个缓冲页中去呢?

这个问题就引出了Free List。

二、Free List

其实Free List是Buffer Pool中基于缓存页描述信息 组织起来的双向链表。换言之,Free List中的每一个结点都是缓存页对应的描述信息。并且通过描述信息可以找到指定的缓存页(缓存页)

InnoDB设计Free List的初衷就是为了解决上面说的问题。

如果这个缓存页中没有存储任何数据,那么它对应的描述信息就会被维护进Free List中。这时当你想把从磁盘中读取出一个数据页放入缓存页中的话,就得先从Free List中找一个节点(Free List中的所有节点都会指向一个从未被使用过的缓存页),那接着就可以把你读取出来的这个数据页放入到该节点指向的缓存页中。

相应的:当数据页中被放入数据之后。它对应的描述信息块会被从Free List中移出。

三、如何判断数据页有没有在缓存中?

你会不会纳闷mysql怎么知道刚读取出来的这个数据页有没有在缓存页中呢?

这个功能的实现依托于另一个数据结构:hash table

key = 表空间号+数据页号

value = 缓存页地址

如果存在于hash table中,那就说明该数据页已经存在于Buffer Pool中了,优先使用Buffer Pool中的缓存页。相信你肯定能想到为啥优先使用Buffer Pool中的缓存页吧!首先免去了磁盘的随机io,其次缓存页中的数据可能是已经被修改了的脏数据。

以上就是详解 Mysql的FreeList机制的详细内容,更多关于MySQL FreeList机制的资料请关注自学编程网其它相关文章!

您可能感兴趣的文档:

--结束END--

本文标题: 详解 MySQL的FreeList机制

本文链接: https://lsjlt.com/news/9982.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 详解 MySQL的FreeList机制
    一、前言 MySQL启动后,BufferPool就会被初始化,在你没有执行任何查询操作之前,BufferPool中的缓存页都是一块块空的内存,未被使用过也没有任何数据保存在里面。 而且你也知道了通过缓冲页的描述信息可...
    99+
    2022-05-13
    MySQL FreeList机制 MySQL FreeList
  • mysql的锁机制详解
    这段时间一直在学习mysql数据库。项目组一直用的是oracle,所以对mysql的了解也不深。本文主要是对mysql锁的总结。 Mysql的锁主要分为3大类:    表级锁:存储引擎为Myisam。锁住整个表,特点是开销小,加锁快,锁定力...
    99+
    2021-08-13
    mysql的锁机制详解
  • MySQL锁机制详解
    SQL(锁机制)   锁是计算机协调多个进程或线程并发访问某一资源的机制。锁保证数据并发访问的一致性、有效性;锁冲突也是影响数据库并发访问性能的一个重要因素。锁是Mysql在服务器层和存储引擎层的的并发控制。 加锁是消耗资源的,锁的各种操作...
    99+
    2015-10-14
    MySQL锁机制详解 数据库入门 数据库基础教程
  • Mysql MVCC机制原理详解
    什么是MVCC MVCC,全称Multi-Version Concurrency Control,即多版本并发控制。MVCC是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编程语言中实现事...
    99+
    2022-05-25
    Mysql MVCC MVCC机制原理
  • mysql 锁机制与原理详解
    前言 不管是数据库,还是很多后端编程语言,都存在锁的机制,锁的存在有效解决了并发情况下对共同资源的抢占,保证了数据的稳定性和一致性,在mysql中,锁是如何工作的呢?其底层的工作原理是怎样的呢?本篇将详细介绍下mysql锁的机制。 mys...
    99+
    2023-09-16
    mysql 锁原理 mysql 锁机制 mysql 锁使用
  • MySQL事务隔离机制详解
    目录前言一、什么是数据库事务二、事务并发带来的4类问题三、事务4种隔离级别四、mysql演示4种隔离级别总结参考文章:前言 如何控制并发是数据库领域中非常重要的问题之一,MySQL为了解决并发带来的问题,设计了事务隔离机...
    99+
    2022-11-21
    MySQL事务隔离机制 mysql事务隔离
  • Mysql InnoDB的锁定机制实例详解
    1.InnoDB的锁定机制 InnoDB存储引擎支持行级锁,支持事务处理,事务是有一组SQL语句组成的逻辑处理单元,他的ACID特性如下: 原子性(Atomicity): 事务具有原子不可分割的特性,要么一起...
    99+
    2022-05-18
    mysql innodb锁定 mysqlinnodb mysql排他锁
  • mysql select缓存机制使用详解
    mysql Query Cache 默认为打开。从某种程度可以提高查询的效果,但是未必是最优的解决方案,如果有的大量的修改和查询时,由于修改造成的cache失效,会给服务器造成很大的开销,可以通过query...
    99+
    2024-04-02
  • Android View 绘制机制的详解
    View 绘制机制一、 View 树的绘图流程当 Activity 接收到焦点的时候,它会被请求绘制布局,该请求由 Android framework 处理.绘制是从根节点开始,对布局树进行 measure 和 draw。整个 View 树...
    99+
    2023-05-31
    android view 绘制
  • 详解MySQL的数据行和行溢出机制
    一、行 有哪些格式? 你可以像下面这样看一下你的MySQL行格式设置。 其实MySQL的数据行有两种格式,一种就是图中的 Compact格式,还有一种是Redundant格式。 Compact是一种紧凑的行格式,设...
    99+
    2022-05-10
    MySQL 数据行 MySQL 行溢出
  • MySQL索引机制的详细解析及原理
    目录一.索引的类型与常见的操作二.常见的索引详解与创建三.索引的原理1.通过实验介绍B+tree2.延伸四.聚簇索引和非聚簇索引1.使用聚簇索引的优势2.什么情况下无法使用索引总结一...
    99+
    2024-04-02
  • 详解MySQL 联合查询优化机制
    MySQL 联合查询执行策略。 以一个 UNION 查询为例,MySQL 执行 UNION 查询时,会把他们当做一系列的单个查询语句,然后把对应的结果放入到临时表中,最终再读出来返回。在 MySQL...
    99+
    2022-05-25
    MySQL 联合查询 MySQL 联合查询优化
  • Mysql事务以及加锁机制详解
    这篇文章主要讲解了“Mysql事务以及加锁机制详解”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Mysql事务以及加锁机制详解”吧!事务的特征ACID,即原...
    99+
    2024-04-02
  • MySQL锁机制详解-表锁与行锁
    文章目录 1. 数据库锁理论2. 锁的分类2.1 按数据操作的类型分类2.2 按数据操作的颗粒度分类 3. 表锁的应用3.1 表锁相关命令3.2 给表加表共享读锁3.3 给表加表独占写锁...
    99+
    2023-09-11
    mysql 数据库
  • MySQL锁机制的详细分析
    这篇文章主要介绍MySQL锁机制的详细分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!文章目录锁锁分类共享锁(读锁,读写互斥,读读互不影响)排他锁(写锁,独占锁)共享锁和排他锁的区...
    99+
    2024-04-02
  • Django的信号机制详解
    Django提供一种信号机制。其实就是观察者模式,又叫发布-订阅(Publish/Subscribe) 。当发生一些动作的时候,发出信号,然后监听了这个信号的函数就会执行。 Django内置了一些信号,比如...
    99+
    2022-06-04
    详解 信号 机制
  • ios的签名机制详解
    目录前言目的非对称加密最简单的签名新的需求加点东西最终流程概念和操作其他发布方式P.S.一些疑问企业证书App Store 加密本地私钥前言 iOS 签名机制挺复杂,各种证书,Pr...
    99+
    2022-05-31
    ios 签名机制
  • Android中的binder机制详解
    目录前言 1、Binder是什么? 2、Android系统框架3、Binder通信 4、Binder框架 5、Binder中使用的设计模式 6、Binder与内存映射mmap 参考文...
    99+
    2024-04-02
  • 详解vue3的沙箱机制
    目录前言浏览器编译版本本地预编译版本总结前言 vue3 沙箱主要分两种 浏览器编译版本,浏览器版本是使用with语法加上proxy代理拦截 本地预编译版本,通过在...
    99+
    2024-04-02
  • 详解ArrayList的扩容机制
    目录一、ArrayList 了解过吗?它是啥?有啥用?二、ArrayList 如何指定底层数组大小的三、数组的大小一旦被规定就无法改变四、ArrayList 具体是怎么添加数...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作