自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

duanxiaobin的博客

记录学习的感想,工作中的成就

  • 博客(23)
  • 收藏
  • 关注

原创 MySQL系列(19)--MySQL备份

背景在数据库运行过程中,经常出现数据库down机,磁盘损坏的情况。所以需要对数据库做备份,保证数据的完整性,根据备份方法,分为: 热备份:数据库运行中备份,也是生产环境常用的备份方式,常用的工具有mysqldump,xtrabackup 冷备份:关闭数据库的情况下,复制文件 根据备份文件分为: 物理备份:复制物理文件来备份,这种方式速度快,但是看不到备份后的内容,只能等恢复后查看是否备...

2018-09-04 18:50:51 188 1

原创 MySQL系列(18)--MySQL多线程复制

传统的复制模式传统的复制使用binlog同步实现,使用方法简单,易于维护,但是主从之间延迟很大,数据量庞大的时候需要等待很久。 一般主从复制,有三个线程参与,都是单线程:Binlog Dump(主) —–>IO Thread (从) —–> SQL Thread(从)。复制出现延迟一般出在两个地方:1)SQL线程忙不过来(可能需要应用数据量较大,可能和从库本身的一些操作有锁和...

2018-09-04 11:18:58 634

原创 MySQL系列(17)--半同步复制

异步复制MySQL 提供了异步复制,主库并不关心备库是否收到日志,从而可能导致较多的数据丢失。从MySQL5.5开始引入了一种半同步复制功能,该功能可以确保主服务器和至少一台从服务器之间的数据一致性和冗余,从而可以减少数据的丢失master将binlog event发送给slave后,不去确认slave是否已经收到就返回成功给客户端。半同步介绍介于异步复制和全同步复制之间,主库...

2018-08-27 10:01:06 256

转载 MySQL系列(16)--GTID介绍

1.1. Log & Checkpoint Innodb的事务日志是指Redo log,简称Log,保存在日志文件ib_logfile*里面。Innodb还有另外一个日志Undo log,但Undo log是存放在共享表空间里面的(ibdata*文件)。由于Log和Checkpoint紧密相关,因此将这两部分合在一起分析。名词解释:LSN,日志序列号,Innodb的日志序列号是一...

2018-08-16 16:10:36 224

转载 MySQL系列(15)--InnoDB两次写

独特两次写在innodb存储引擎中,有一个叫doublewrite技术模块,是可选的。它通过参数InnoDB_doublewrite的值来控制,如果为0表示不启用,可以通过show status like “%InnoDB_dblwr%”来查看:doublewrite技术带给innodb存储引擎的是数据页的可靠性,下面对doublewrite技术进行解析,让大家充分理解doublewri...

2018-07-11 15:01:27 376

转载 MySQL系列(14)--Redundant行记录格式

Redundant是MySQL 5.0版本之前InnoDB的行记录存储方式,MySQL 5.0支持Redundant是为了向前兼容性。Redundant行记录以如下方式存储:从上图可以看到,不同于Compact行记录格式,Redundant行格式的首部是一个字段长度偏移列表,同样是按照列的顺序逆序放置的。当列的长度小于255字节,用1字节表示;若大于255个字节,用2个字节表示。第二个部分...

2018-07-09 16:02:06 1519 2

转载 MySQL系列(13)--InnoDB行记录格式-compact

InnoDB行记录格式MySQL中存储有3种: 1)server层格式:与存储引擎无关,Binlog存储常用的一种 2) 索引元组格式:InnoDB存取过程记录的中间状态,是InnoDB在内存中存储的格式 3 物理存储格式:记录在物理页面中的存储格式,即compact格式,与索引元组格式一一对应。物理存储格式InnoDB存储引擎和大多数数据库一样(如Oracle和Micro...

2018-07-09 15:09:56 3551

转载 MySQL系列(12)--数据库索引page实现

理解InnoDB的实现不得不提Page结构,Page是整个InnoDB存储的最基本构件,也是InnoDB磁盘管理的最小单位,与数据库相关的所有内容都存储在这种Page结构里。Page分为几种类型,常见的页类型有数据页(B-tree Node)Undo页(Undo Log Page)系统页(System Page) 事务数据页(Transaction System Page)等。单个Page的大小是...

2018-07-03 11:55:43 1934

原创 MySQL系列(11)--数据库索引

索引简介   B+树适合作为数据库的基础结构,完全是因为计算机的内存-机械硬盘两层存储结构。内存可以完成快速的随机访问(随机访问即给出任意一个地址,要求返回这个地址存储的数据)但是容量较小。而硬盘的随机访问要经过机械动作(1磁头移动 2盘片转动),访问效率比内存低几个数量级,但是硬盘容量较大。典型的数据库容量大大超过可用内存大小,这就决定了在B+树中检索一条数据很可能要借助几次磁盘IO操作来...

2018-06-27 12:04:13 166

原创 MySQL系列(10)--数据库树形结构基础

树形结构在了解索引之前先了解各种树形结构的区别,因为数据库所以系统都是基于树形结构设计的。 由上图看得出树是一些节点的集合,总结一下树的一些基本概念:1、结点:树中的数据元素都称之为结点2、根:最上面的结点称之为根,一颗树只有一个根且由根发展而来,从另外一个角度来说,每个结点都可以认为是其子树的根3、父亲:结点的上层结点,如图中,结点K的父亲是E、结点L的父亲是G4、兄弟:具有...

2018-06-22 18:45:04 1308

原创 MySQL系列(9)--InnoDB数据存储结构

什么是数据字典?用来存储元数据信息的表。比如表的描述、字段、对象、对象之间的关系。InnoDB中大多以系统表的形式保存。主要包括sys_tables,sys_columns,sys_indexs,sys_fields sys_table存储表的信息,包括表面,ID,表空间号 sys_columns存储表中列的信息,包括列名,列ID,列的序号,列的类型,长度等信息 sys_index存储表...

2018-06-21 17:44:48 1344 1

原创 MySQL系列(8)--InnoDB数据字典

什么是数据字典?用来存储元数据信息的表。比如表的描述、字段、对象、对象之间的关系。InnoDB中大多以系统表的形式保存。主要包括sys_tables,sys_columns,sys_indexs,sys_fields sys_table存储表的信息,包括表面,ID,表空间号 sys_columns存储表中列的信息,包括列名,列ID,列的序号,列的类型,长度等信息 sys_index存储表...

2018-06-20 15:58:52 1887

原创 MySQL系列(7)--InnoDB体系结构

InnoDB大的架构图如下: 1、最上层部分是提供给MySQL server及InnoDB NOSQL的接口 2、server端与存储通过不同的存储引擎接口连接起来,公共接口定义在handler API中 3、下几层是InnoDB的逻辑层,包括表,锁,事物,索引,文件系统管理等 4、在下层就是物理层,逻辑层和物理层之间通过一些事物做过度,比如缓存 5、再往下就是操作系统的IO层,包括...

2018-06-13 18:54:37 481

原创 MySQL系列(6)--初识存储引擎InnoDB

了解了MySQL的基础,包括启动,监听,语句分析,表对象之后。需要了解很重要的一块–存储引擎。首先从最流行,应用最广的InnoDB说起MySQL配置文件中datadir目录下文件类型有如下几类: 分别介绍这几个分类 1、日志文件1)error日志:记录启动、运行或停止MySQL服务器过程,以及MySQL运行过程中一些较为严重的错误信息2)slow-log:开启后慢查询日志后,会生...

2018-06-13 17:23:15 231

原创 mysql系列(5)--表结构缓存

数据库操作最普遍的就是对表的操作,所以需要先了解下表的结构 MySQL是一个插件式存储引擎,导致每种对象(包括表,视图,存储过程,存储函数)的缓存方式都不相同,先来了解下最常用的表对象缓存 定义 表对象缓存是将表对象的字典信息(定义的内容)缓存到内存中,提高访问效率。 实现过程 表被访问的时候,MySQL先从缓存中查找这个表,缓存中没有对应的表缓存时,会去系统表中...

2018-06-11 20:27:28 897

原创 MySQL系列(4)-- 处理请求

数据库监听到新客户进来,进行身份认证,新建线程。建立完成后就开始通信,处理客户端的请求,过程如下: 1、解析请求类型,通过函数enum_server_command实现对不同的请求做不同的操作。比如初始化,用户管理,DDL,DML等。 2、用query做个比喻,会从数据保重读取Query并存入队列中,通过mysql_parse方法解析,mysql_parse解析后在缓存中查询,如果未命中,则通...

2018-06-08 15:51:33 352

原创 MySQL系列(3)--用户连接

MySQL启动后,加载了配置文件,并设置了系统的全局变量参数,同时初始化了网络,后续的步骤就等待用户的接入,实现的函数为:handle_connection_methonds函数的功能主要是等待一个用户的连接请求,并给他分配一个工作线程函数处理连接分为管道命令,套接字,共享内存的方式。套接字是最常见的使用方法。针对套接字连接步骤如下:1、使用poll或者select的方式监听客户端连接请求...

2018-06-06 18:34:37 470

原创 MySQL系列(2)--MySQL启动过程解析

本文简单介绍MySQL的启动过程,如下,列出了部分启动中的重要步骤: 启动过程没必要深究,能了解大概,说得出来关键点就OK了读取配置文件 load_defaults1、自动搜索文件路劲,包括系统路劲(/etc 、etc/mysql,)MySQL所在目录及MySQL安装目录 。2、解析mysqld执行命令,命令中带了--defaul-file,就会从这个配置文件启动,没有这个参数,系...

2018-06-06 16:02:35 1701

转载 MySQL系列(1)--二进制源码安装MySQL

使用yum安装的MySQL一般版本比较旧,但是运行稳定。如果想要尝试最新的功能或者需要指定特殊的功能的话,就需要手工进行编译安装了。一、下载安装包 (一)、先下载MySQL源码,网址为:https://dev.mysql.com/downloads/mysql/ : 在Select Operationg System中选择Source Code; 在下面的Select OS Versio...

2018-06-03 23:16:08 249

原创 Mysql 数据库迁移以及主从库配置详解

==========================================================================================一、背景简介==========================================================================================1、问题描述...

2018-01-06 00:30:20 1039

原创 Linux学习笔记(3)--用户权限管理

用户与用户组Linux 是一个可以实现多用户登陆的操作系统,比如“李雷”和“韩梅梅”都可以同时登陆同一台主机,他们共享一些主机的资源,但他们也分别有自己的用户空间,用于存放各自的文件。但实际上他们的文件都是放在同一个物理磁盘上的甚至同一个逻辑分区或者目录里,但是由于 Linux 的 用户管理 和 权限机制,不同用户不可以轻易地查看、修改彼此的文件。文件拥有者 初次接触Linux的朋友大概会觉得

2017-11-03 17:08:46 417

原创 Linux学习笔记(2)--Linux安装

Linux 安装此处不详细讲解安装方法,可以参考如下资料 如果在公有云厂家使用,直接申请即可,方法如下:公有云上安装配置Linux如果是在裸机安装,可以安装如下方法安装linux详细图解(CentOS6.7) 手把手教你安装 Ubuntu 和 Fedora Red Hat Enterprise Linux 6.6安装方法

2017-11-03 11:47:48 225

原创 Linux学习笔记(1) -- 初识Linux

LINUX是什么?我们知道LINUX是在机器上运行,那么LINUX这坨东西到底是操作系统还是应用程序?且LINUX可以在什么样的硬件上运行?它是怎么来的?计算机主机是由一堆硬件所组成的,为了有效率的控制这些硬件资源,于是乎就有操作系统的产生了。 操作系统除了有效率的控制这些硬件资源的分配,并提供计算机运作所需要的功能(如网络功能)之外,

2017-11-01 16:07:34 326

空空如也

空空如也

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

TA关注的人

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