自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

转载 InnoDB Redo Flush及脏页刷新机制

InnoDB Redo Flush及脏页刷新机制本文转载自:https://blog.youkuaiyun.com/melody_mr/article/details/48930739,感谢大神!概要:我们知道InnoDB采用Write Ahead Log策略来防止宕机数据丢失,即事务提交时,先写重做日志,再修改内存数据页,这样就产生了脏页。既然有重做日志保证数据持久性,查询时也可以直接从缓冲池页中取数据,那为什么还要刷新脏页到磁盘呢?如果重做日志可以无限增大,同时缓冲池足够大,能够缓存所有数据,那么是不需

2021-04-21 10:33:52 280

转载 mysql中的join算法

mysql中的join算法mysql的join涉及的主要函数包括sub_select、evaluate_join_record、do_select、optimize。然后我们直接从mysql_select开始,它主要包括三个操作join:: prepare,join:: optimize,join::exec,其中prepare完成一些判断准备工作如对通配符的处理、having条件、order等的判断初始化等;optimize就是负责优化检索,简单的说就是为了确定一个mysql认为最优的执行计划;而

2021-04-21 10:08:10 1427

原创 一个Page从磁盘读入buffer pool的过程

一个Page从磁盘读入buffer pool的过程以下是边看代码边记录的,从磁盘读取一个压缩Page到buffer pool的的全过程,以函数buf_page_get_gen作为入口(基于MySQL5.7.31)|-buf_page_get_gen(如果请求的数据页已经在Buffer Pool中了,修改相应信息后,就直接返回对应数据页指针,如果Buffer Pool中没有相关数据页,则从磁盘中读取。) |-buf_pool_t* buf_pool = buf_pool_get(pa...

2021-04-21 09:50:23 499 1

转载 缓冲池(Buffer Pool) 如何支撑高并发和动态调整

缓冲池(Buffer Pool) 如何支撑高并发和动态调整本文转载自:https://www.cnblogs.com/Howinfun/p/12348590.html,感谢大神!一、Buffer Pool 如何应对高并发场景1、单个 Buffer Pool 的问题直到现在,估计大家都以为缓冲池只是一个大的内存区域,在 InnoDB 存储引擎中只有一个,这是对的吗?我们可以想象,如果 InnoDB 存储引擎只有一个 Buffer Pool,当高并发时,多个请求进来,那么为了保证数据的一致性

2021-04-21 09:50:04 463

转载 缓冲池(Buffer Pool) 的设计原理和管理机制

MySQL 学习总结 之 缓冲池(Buffer Pool) 的设计原理和管理机制本文转载自:https://www.cnblogs.com/Howinfun/p/12327490.html,感谢大神!一、缓冲池(Buffer Pool)的地位缓冲池是 InnoDB 存储引擎中最重要的组件。因为为了提高 MySQL 的并发性能,使用到的数据都会缓存在缓冲池中,然后所有的增删改查操作都将在缓冲池中执行。通过这种方式,保证每个更新请求,尽量就是只更新内存,然后往磁盘顺序写日志文件。更新内存的性

2021-04-21 09:49:41 1735

转载 为什么MySQL使用B+而不是使用B树、二叉树、AVL树呢?

为什么MySQL使用B+而不是使用B树、二叉树、AVL树呢?本文转载自:https://blog.youkuaiyun.com/qq_36520235/article/details/94317993,感谢大神!一、B+树做索引而不用B-树那么Mysql如何衡量查询效率呢?– 磁盘IO次数。一般来说索引非常大,尤其是关系性数据库这种数据量大的索引能达到亿级别,所以为了减少内存的占用,索引也会被存储在磁盘上。B-树/B+树 的特点就是每层节点数目非常多,层数很少,目的就是为了减少磁盘IO次数,但是B-树的每

2021-04-21 09:49:09 612

转载 MySQL · 引擎特性 · InnoDB Buffer Pool

MySQL · 引擎特性 · InnoDB Buffer Pool本文转载自:https://www.cnblogs.com/coderyuhui/p/6861194.html,感谢大神!基础知识Buffer Pool Instance:大小等于innodb_buffer_pool_size/innodb_buffer_pool_instances,每个instance都有自己的锁,信号量,物理块(Buffer chunks)以及逻辑链表(下面的各种List),即各个instance之间没有

2021-04-20 20:51:59 143

转载 洞悉MySQL底层架构:游走在缓冲与磁盘之间

洞悉MySQL底层架构:游走在缓冲与磁盘之间本文转载自:https://blog.youkuaiyun.com/chai471793/article/details/107079985,感谢大神看完文本文,您将了解到:整体架构:InnoDB存储架构是怎样的 (1、MySQL架构) 工作原理:查询语句的底层执行流程是怎样的 (2、查询SQL执行流程) IO性能:文件IO操作写磁盘有哪几种方式,有什么IO优化方式 (1.2、关于磁盘IO的方式) 缓存:InnoDB缓存(buffer pool, log b

2021-04-20 20:48:51 416

转载 MySQL · 引擎特性 · InnoDB 数据文件简述

MySQL · 引擎特性 · InnoDB 数据文件简述通常,我们在使用Mysql时,Mysql将数据文件都封装为了逻辑语义Database和Table,用户只需要感知并操作Database和Table就能完成对数据库的CRUD操作,但实际这一系列的访问请求最终都会转化为实际的文件操作,那这些过程具体是如何完成的呢,具体的Database和Table与文件的真实映射关系又是怎样的呢,下面笔者将通过对Mysql8.0 InnoDB引擎中的文件来剖析一下这个过程。InnoDB 文件简介“.ibd”文

2021-04-20 20:09:09 264

转载 MySQL · 引擎特性 · InnoDB 文件系统之IO系统和内存管理

MySQL · 引擎特性 · InnoDB 文件系统之IO系统和内存管理本篇我们继续介绍InnoDB文件系统的IO接口和内存管理。为了管理磁盘文件的读写操作,InnoDB设计了一套文件IO操作接口,提供了同步IO和异步IO两种文件读写方式。针对异步IO,支持两种方式:一种是Native AIO,这需要你在编译阶段加上LibAio的Dev包,另外一种是simulated aio模式,InnoDB早期实现了一套系统来模拟异步IO,但现在Native Aio已经很成熟了,并且Simulated Aio本身

2021-04-20 20:04:27 293

转载 MySQL · 引擎特性 · InnoDB 文件系统之文件物理结构

MySQL · 引擎特性 · InnoDB 文件系统之文件物理结构综述从上层的角度来看,InnoDB层的文件,除了redo日志外,基本上具有相当统一的结构,都是固定block大小,普遍使用的btree结构来管理数据。只是针对不同的block的应用场景会分配不同的页类型。通常默认情况下,每个block的大小为 UNIV_PAGE_SIZE,在不做任何配置时值为16kb,你还可以选择在安装实例时指定一个块的block大小。对于压缩表,可以在建表时指定block size,但在内存中表现的解压页依旧为统一

2021-04-20 20:01:35 354

转载 innoDB表空间以及数据页结构

innoDB表空间以及数据页结构(带图详解)MySQL在启动时,如果存储引擎为innodb,则innodb会初始化其所有的子系统,其中就包括了页面缓冲区子系统,通过函数buf_pool_init来实现。Buffer缓冲池可以有多个实例,可以通过配置文件中的参数innodb_buffer_pool_instances来设置,默认值为1,实现多实例的缓冲池主要是为了提高在数据页放问时的并发度。每个实例的空间大小都是相同的,也就是说系统会将整个配置的缓冲区大小按实例个数平分,然后每个实例各自进行初始化操作。

2021-04-20 19:53:58 219

原创 ibd文件结构组成(带图详解)

ibd文件结构组成页数据格式InnodDB采用Btree作为存储结构,当用户创建一个Table的时候,就会根据显示或隐式定义的主键构建了一棵Btree,而构成Btree的叶子节点被称为Page,默认大小为16KB,每个Page都有一个独立的Page_no。在我们对数据库中的Table进行修改时,最终产生的影响都是去修改对应TableSpace所对应的Btree上的一个或多个Page。为了更加方便管理和维护Extent和Page,设置了一些特殊的Page来索引它们,也就是大家常常提起的Page

2021-04-20 19:32:12 3825

原创 在Linux下将mysql中的数据导出到CSV格式,或者导入数据(带图详解)

在Linux下将mysql中的数据导出到CSV格式,或者导入数据打开mysql使用命令mysql>show databases;//查看有哪些数据库mysql>use tpch;//使用tpch数据库mysql>show tables;//查看tpch数据库中有哪些表mysql>select * from nation into outfile '/home/yxx/tpch/nation.csv' fields terminated by ...

2021-04-20 18:18:03 3032 1

原创 在Linux下将TPC-H数据导入到mysql(带图详解)

在Linux下将TPC-H数据导入到mysql一.下载TPC-H下载地址:http://tpc.org/tpc_documents_current_versions/current_specifications5.asp。下载后会得到一个名为*-tpc-h-tool.zip的压缩包,我下载的是2.18.0,将压缩包解压为2.18.0_rc2, 文件夹结构如下图所示:操作主要在文件夹dbgen下进行。二、修改makefile.suite执行以下命令(注意当前的工作目录):.

2021-04-20 17:51:09 363

原创 mysql源码安装(带图详解)

**mysql源码安装**mysql源码安装参考教程:https://www.cnblogs.com/igoodful/p/11365494.htmlhttps://blog.youkuaiyun.com/dmedaa/article/details/89965556需要下载的工具# apt-get install openssh-server# apt-get install net-tools# apt-get install cmake# apt-get install libn...

2021-04-20 16:26:55 1223

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除