MYSQL INNODB数据存储结构

一 序:     在整理InnoDB存储引擎的索引的时候,发现B+树是离不开页面page的。所以先整理InnoDB的数据存储结构。 关键词:Pages, Extents, Segments, and Tablespaces 如何存储表 MySQL 使用 InnoDB 存储表时,会将表的定义和数据索引等信息分开存储,其中前者存储在 .frm 文件中,后者存储在 .ibd 文件中,这一节就会对...
分类: 其他 发布时间: 09-05 23:41 阅读次数: 0

INNODB索引实现原理

一 序   上一篇介绍了《innodb的数据存储结构》。本篇继续整理Innodb索引实现原理。本文基于《MySQL运维内参》第8章整理。 二 B+树   B+树属于索引的基础,不在详细介绍插入删除过程。只介绍特点。 1 搜索二叉树:每个节点有两个子节点,数据量的增大必然导致高度的快速增加,显然这个不适合作为大量数据存储的基础结构。 2 B树(m阶):一棵m阶B树是一棵平衡的m路搜索树。 ...
分类: 其他 发布时间: 09-05 23:41 阅读次数: 0

INNODB 数据页

一 序   上一篇我们整理了INNODB的索引的原理,再加上之前介绍的段、簇(extent),页管理,应该是能串起来了。还有单个的页面管理没有介绍。本文基于《MYSQL运维内参》第八章部分整理。   背景知识:       数据库采用数据页的形式组织数据。MySQL默认的非压缩数据页为16KB。在ibd中间中,0-16KB偏移量即为0号数据页,16KB-32KB的为1号数据页,依次类推。数据...
分类: 其他 发布时间: 09-05 23:41 阅读次数: 0

INNODB记录格式

一 序   本文是基于《MYSQL运维内参》第9章整理而成。源码太复杂,看一遍没有懂,先整理下来。   之前的文章已经整理过索引及页面格式,查找物理记录的过程。本篇介绍物理记录的存储格式。   用命令 show  table status like 'XX' 可以看到,row_format就是当前表使用的行存储格式。       InnoDB存储引擎提供了compact(5.1后的默认...
分类: 其他 发布时间: 09-05 23:40 阅读次数: 0

MYSQL INNODB 三大特性之双写

一 序       本文属于《MYSQL运维内参》第九章读书笔记,因为INNODB的三大特性:插入缓存,两次写,自适应hash,还是觉得作者先介绍插入缓存会更有助于理解。       为啥会有两次写?必要了解partial page write 问题 :         InnoDB 的Page Size一般是16KB,其数据校验也是针对这16KB来计算的,将数据写入到磁盘是以Page为单位进...
分类: 其他 发布时间: 09-05 23:40 阅读次数: 0

MySQL · 引擎特性 · InnoDB Buffer Pool

一序      上一篇在介绍innodb的双写特性时,提到了Buffer Pool,知识点很多本文专门整理。《MYSQL运维内参的》的第11章第一节介绍了这部分。       用户对数据库的最基本要求就是能高效的读取和存储数据,但是读写数据都涉及到与低速的设备交互,为了弥补两者之间的速度差异,所有数据库都有缓存池,用来管理相应的数据页,提高数据库的效率,当然也因为引入了这一中间层,数据库对内存...
分类: 其他 发布时间: 09-05 23:40 阅读次数: 0

MySQL · 引擎特性 · InnoDB redo log

一 序        本文根据《MYSQL运维内参》第11章INNODB日志管理机制整理,本篇书上侧重于原理说明日志的生成、格式、工作原理、刷盘机制等。限于篇幅,崩溃恢复的需要单独整理。InnoDB 有两块非常重要的日志,一个是undo log,另外一个是redo log,前者用来保证事务的原子性以及InnoDB的MVCC,后者用来保证事务的持久性。解释下redolog与事务持久性:redo l...
分类: 其他 发布时间: 09-05 23:40 阅读次数: 0

MySQL · 引擎特性 · InnoDB undo log

一 序       本文根据《MYSQL运维内参》第11章整理。上一篇整理了Innodb redo log,  本篇继续整理undo log,崩溃恢复下一篇整理。       Undo log是InnoDB MVCC事务特性的重要组成部分。当我们对记录做了变更操作时就会产生undo记录,Undo记录默认被记录到系统表空间(ibdata)中,但从5.6开始,也可以使用独立的Undo 表空间。  ...
分类: 其他 发布时间: 09-05 23:39 阅读次数: 0

MySQL · 引擎特性 · InnoDB 崩溃恢复过程

一 序        之前整理了 InnoDB redo log 和 undo log 的相关知识,本文整理 InnoDB 在崩溃恢复时的主要流程。在《MYSQL运维内参》第11章是穿插着讲,在redo log跟undo log.总体上还是taobao.mysql 介绍的全面,本文主要以taobao.mysql为主。   Crash Recovery流程     innobase_init ...
分类: 其他 发布时间: 09-05 23:39 阅读次数: 0

MySQL · 引擎特性 · Innodb change buffer介绍

一 序     之前整理了undo log、redo log以及InnoDB如何崩溃恢复来实现数据ACID的相关知识。本篇继续整理InnoDB change buffer。 Change buffer的主要目的是将对二级索引的数据操作缓存下来,以此减少二级索引的随机IO,并达到操作合并的效果。   官网的解释比较详细了。5.7版本的截取如下:  Change Buffer The ch...
分类: 其他 发布时间: 09-05 23:39 阅读次数: 0

数据科学领域常用的五个Python包

Numpy Numpy提供了两种基本的对象:ndarray和ufunc。ndarray是存储单一数据类型的多维数组,而ufunc是能够对数组进行处理的函数。Numpy的功能:N维数组,一种快速、高效使用内存的多维数组,他提供矢量化数学运算。可以不需要使用循环,就能对整个数组内的数据进行标准数学运算。非常便于传送数据到用低级语言编写(C\C++)的外部库,也便于外部库以Numpy数组形式返回数据。N...
分类: 其他 发布时间: 09-05 23:38 阅读次数: 0

精讲redis和MySQL的区别

redis简介Redis 是完全开源免费的,是一个高性能的key-value数据库。Redis 与其他 key - value 缓存产品有以下三个特点:Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。  Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。Redis支持数据的备份,即ma...
分类: 其他 发布时间: 09-05 23:38 阅读次数: 0

cookie和session的区别,联系

一、cookie和session关系图:二、Session的概念Session 是存放在服务器端的,类似于Session结构来存放用户数据,当浏览器 第一次发送请求时,服务器自动生成了一个Session和一个Session ID用来唯一标识这个Session,并将其通过响应发送到浏览器。当浏览器第二次发送请求,会将前一次服务器响应中的Session ID放在请求中一并发送到服务器上,服务器从请求中...
分类: 其他 发布时间: 09-05 23:38 阅读次数: 0

git常用命令总结详解(一)

基础命令:创建demo文件夹,下面创建one.txt文件进入demo文件夹使用git init命令把这个目录变成Git可以管理的仓库:用命令git add one.txt告诉Git,把文件添加到仓库(暂存区)用命令git commit -m “first write”告诉Git,把文件提交到仓库(本地仓库)之后提交到远程仓库,详情可以参考博文:https://blog.csdn.net/cjdas...
分类: 其他 发布时间: 09-05 23:38 阅读次数: 0

使用xshell连接阿里云服务器登陆时密码框为灰色,无法输入密码解决办法

1.使用xshell登陆时,password灰色不能输入密码登录。2.解决办法如下:vi/etc/ssh/sshd_config修改最后一项为yes:PasswordAuthentication yes接着保存退出,然后重启sshd服务systemctl restart sshd.service然后重新登陆此时,已经可以输入密码了!!!...
分类: 其他 发布时间: 09-05 23:37 阅读次数: 0

Hadoop,Spark和Storm三大分布式计算系统简介及比较

Hadoop,Spark和Storm由于Google没有开源Google分布式计算模型的技术实现,所以其他互联网公司只能根据Google三篇技术论文中的相关原理,搭建自己的分布式计算系统。Yahoo的工程师Doug Cutting和Mike Cafarella在2005年合作开发了分布式计算系统Hadoop。后来,Hadoop被贡献给了Apache基金会,成为了Apache基金会的开源项目。Dou...
分类: 其他 发布时间: 09-05 23:37 阅读次数: 0

Hadoop生态系统完整组件及其在架构中的作用

(1)Hadoop生态系统(2)、HDFS(Hadoop分布式文件系统)HDFS是Hadoop体系中数据存储管理的基础。它是一个高度容错的系统,能检测和应对硬件故障,用于在低成本的通用硬件上运行。HDFS简化了文件的一致性模型,通过流式数据访问,提供高吞吐量应用程序数据访问功能,适合带有大型数据集的应用程序。(3)、Mapreduce(分布式计算框架)MapReduce是一种计算模型,用以进行大数...
分类: 其他 发布时间: 09-05 23:37 阅读次数: 0

git常用命令总结详解git分支(二)

git分支1.创建dev分支,然后切换到dev分支:git checkout -b devgit checkout命令加上-b参数表示创建并切换,相当于以下两条命令:git branch dev (创建分支)git checkout dev (切换分支)2.查看当前分支git branchgit branch命令会列出所有分支,当前分支前面会标一个*号。3.把dev分支的工作成果合并到master...
分类: 其他 发布时间: 09-05 23:37 阅读次数: 0

git常用命令总结git分支问题(三)

当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。详细学习可浏览网站:廖雪峰哥Git官网1.用git log --graph命令可以看到分支合并图。git log --graph --pretty=oneline --abbrev-commitgit log --graph --pretty=oneline 2.分支管理策略通常,合并分支时,如果可能,Git会用Fast...
分类: 其他 发布时间: 09-05 23:36 阅读次数: 0

hive和hbase的通俗易懂的区别

1.区别(1)hive是构建在hadoop基础设施上的数据仓库,通过HQL(类似SQL语言)最终转化为MapReduce。        hbase是一种key/value系统,他运行在hdfs上,和hive不一样,hbase能够在数据库上实时运行,而不是运行MapReduce任务。(2)hive查询花费时间很长,他默认遍历表中的所有数据。但可以通过hive的分区机制提高效率。        hb...
分类: 其他 发布时间: 09-05 23:36 阅读次数: 0