MySQL
文章平均质量分 64
duanxiaobin_SA
一起学习云计算,大数据以及AI
展开
-
Mysql 数据库迁移以及主从库配置详解
==========================================================================================一、背景简介==========================================================================================1、问题描述...原创 2018-01-06 00:30:20 · 1062 阅读 · 0 评论 -
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 · 1917 阅读 · 0 评论 -
MySQL系列(13)--InnoDB行记录格式-compact
InnoDB行记录格式MySQL中存储有3种: 1)server层格式:与存储引擎无关,Binlog存储常用的一种 2) 索引元组格式:InnoDB存取过程记录的中间状态,是InnoDB在内存中存储的格式 3 物理存储格式:记录在物理页面中的存储格式,即compact格式,与索引元组格式一一对应。物理存储格式InnoDB存储引擎和大多数数据库一样(如Oracle和Micro...转载 2018-07-09 15:09:56 · 3560 阅读 · 0 评论 -
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 · 1542 阅读 · 2 评论 -
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 · 1957 阅读 · 0 评论 -
MySQL系列(15)--InnoDB两次写
独特两次写在innodb存储引擎中,有一个叫doublewrite技术模块,是可选的。它通过参数InnoDB_doublewrite的值来控制,如果为0表示不启用,可以通过show status like “%InnoDB_dblwr%”来查看:doublewrite技术带给innodb存储引擎的是数据页的可靠性,下面对doublewrite技术进行解析,让大家充分理解doublewri...转载 2018-07-11 15:01:27 · 388 阅读 · 0 评论 -
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 · 229 阅读 · 0 评论 -
MySQL系列(17)--半同步复制
异步复制MySQL 提供了异步复制,主库并不关心备库是否收到日志,从而可能导致较多的数据丢失。从MySQL5.5开始引入了一种半同步复制功能,该功能可以确保主服务器和至少一台从服务器之间的数据一致性和冗余,从而可以减少数据的丢失master将binlog event发送给slave后,不去确认slave是否已经收到就返回成功给客户端。半同步介绍介于异步复制和全同步复制之间,主库...原创 2018-08-27 10:01:06 · 272 阅读 · 0 评论 -
MySQL系列(18)--MySQL多线程复制
传统的复制模式传统的复制使用binlog同步实现,使用方法简单,易于维护,但是主从之间延迟很大,数据量庞大的时候需要等待很久。 一般主从复制,有三个线程参与,都是单线程:Binlog Dump(主) —–>IO Thread (从) —–> SQL Thread(从)。复制出现延迟一般出在两个地方:1)SQL线程忙不过来(可能需要应用数据量较大,可能和从库本身的一些操作有锁和...原创 2018-09-04 11:18:58 · 653 阅读 · 0 评论 -
MySQL系列(11)--数据库索引
索引简介 B+树适合作为数据库的基础结构,完全是因为计算机的内存-机械硬盘两层存储结构。内存可以完成快速的随机访问(随机访问即给出任意一个地址,要求返回这个地址存储的数据)但是容量较小。而硬盘的随机访问要经过机械动作(1磁头移动 2盘片转动),访问效率比内存低几个数量级,但是硬盘容量较大。典型的数据库容量大大超过可用内存大小,这就决定了在B+树中检索一条数据很可能要借助几次磁盘IO操作来...原创 2018-06-27 12:04:13 · 177 阅读 · 0 评论 -
MySQL系列(4)-- 处理请求
数据库监听到新客户进来,进行身份认证,新建线程。建立完成后就开始通信,处理客户端的请求,过程如下: 1、解析请求类型,通过函数enum_server_command实现对不同的请求做不同的操作。比如初始化,用户管理,DDL,DML等。 2、用query做个比喻,会从数据保重读取Query并存入队列中,通过mysql_parse方法解析,mysql_parse解析后在缓存中查询,如果未命中,则通...原创 2018-06-08 15:51:33 · 364 阅读 · 0 评论 -
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 · 258 阅读 · 0 评论 -
mysql系列(5)--表结构缓存
数据库操作最普遍的就是对表的操作,所以需要先了解下表的结构 MySQL是一个插件式存储引擎,导致每种对象(包括表,视图,存储过程,存储函数)的缓存方式都不相同,先来了解下最常用的表对象缓存 定义 表对象缓存是将表对象的字典信息(定义的内容)缓存到内存中,提高访问效率。 实现过程 表被访问的时候,MySQL先从缓存中查找这个表,缓存中没有对应的表缓存时,会去系统表中...原创 2018-06-11 20:27:28 · 915 阅读 · 0 评论 -
MySQL系列(2)--MySQL启动过程解析
本文简单介绍MySQL的启动过程,如下,列出了部分启动中的重要步骤: 启动过程没必要深究,能了解大概,说得出来关键点就OK了读取配置文件 load_defaults1、自动搜索文件路劲,包括系统路劲(/etc 、etc/mysql,)MySQL所在目录及MySQL安装目录 。2、解析mysqld执行命令,命令中带了--defaul-file,就会从这个配置文件启动,没有这个参数,系...原创 2018-06-06 16:02:35 · 1716 阅读 · 0 评论 -
MySQL系列(3)--用户连接
MySQL启动后,加载了配置文件,并设置了系统的全局变量参数,同时初始化了网络,后续的步骤就等待用户的接入,实现的函数为:handle_connection_methonds函数的功能主要是等待一个用户的连接请求,并给他分配一个工作线程函数处理连接分为管道命令,套接字,共享内存的方式。套接字是最常见的使用方法。针对套接字连接步骤如下:1、使用poll或者select的方式监听客户端连接请求...原创 2018-06-06 18:34:37 · 486 阅读 · 0 评论 -
MySQL系列(6)--初识存储引擎InnoDB
了解了MySQL的基础,包括启动,监听,语句分析,表对象之后。需要了解很重要的一块–存储引擎。首先从最流行,应用最广的InnoDB说起MySQL配置文件中datadir目录下文件类型有如下几类: 分别介绍这几个分类 1、日志文件1)error日志:记录启动、运行或停止MySQL服务器过程,以及MySQL运行过程中一些较为严重的错误信息2)slow-log:开启后慢查询日志后,会生...原创 2018-06-13 17:23:15 · 241 阅读 · 0 评论 -
MySQL系列(7)--InnoDB体系结构
InnoDB大的架构图如下: 1、最上层部分是提供给MySQL server及InnoDB NOSQL的接口 2、server端与存储通过不同的存储引擎接口连接起来,公共接口定义在handler API中 3、下几层是InnoDB的逻辑层,包括表,锁,事物,索引,文件系统管理等 4、在下层就是物理层,逻辑层和物理层之间通过一些事物做过度,比如缓存 5、再往下就是操作系统的IO层,包括...原创 2018-06-13 18:54:37 · 495 阅读 · 0 评论 -
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 · 1354 阅读 · 1 评论 -
MySQL系列(10)--数据库树形结构基础
树形结构在了解索引之前先了解各种树形结构的区别,因为数据库所以系统都是基于树形结构设计的。 由上图看得出树是一些节点的集合,总结一下树的一些基本概念:1、结点:树中的数据元素都称之为结点2、根:最上面的结点称之为根,一颗树只有一个根且由根发展而来,从另外一个角度来说,每个结点都可以认为是其子树的根3、父亲:结点的上层结点,如图中,结点K的父亲是E、结点L的父亲是G4、兄弟:具有...原创 2018-06-22 18:45:04 · 1333 阅读 · 0 评论 -
MySQL系列(19)--MySQL备份
背景在数据库运行过程中,经常出现数据库down机,磁盘损坏的情况。所以需要对数据库做备份,保证数据的完整性,根据备份方法,分为: 热备份:数据库运行中备份,也是生产环境常用的备份方式,常用的工具有mysqldump,xtrabackup 冷备份:关闭数据库的情况下,复制文件 根据备份文件分为: 物理备份:复制物理文件来备份,这种方式速度快,但是看不到备份后的内容,只能等恢复后查看是否备...原创 2018-09-04 18:50:51 · 197 阅读 · 1 评论