随笔分类 - 笔记
读书笔记
摘要:1.前言 本章记录数据库的备份与恢复操作。MySQL提供了很多工具完成备份工作:mysqldump、ibbackup、replication,也可以使用一些第三方的工具完成,如xtrabacup、LVM快照等。 2.备份与恢复概述 根据备份方法的不同,可以将备份分为: Hot Backup(热备):
阅读全文
摘要:1.前言 前面具体讲了MySQL中的锁实现的方式,解释了是如何保证数据在并发情况下的可靠性,并提到了事务REPETABLE READ和READ COMMITTED,解释了一下这两种事务的不同。本章讲具体就事务的实现过程进行记录,扫除这块让人疑惑的知识点。 事务是数据库区别于文件系统的一个重要特性之一
阅读全文
摘要:1.前言 我们都知道在并发的情况下,修改数据时需要添加锁,但是却对数据库锁的工作原理不甚理解,不知道锁的运行机制,也就对数据的安全性无法明白。本章记录MySQL中锁的相关知识。 2.什么是锁 锁是数据库系统区别与文件系统的一个关键特性,用于管理对共享资源的并发访问。InnoDB提供了行级别的锁,在数
阅读全文
摘要:1.前言 本章记录MySQL中的索引机制,了解索引可以让数据库更快。索引太多会造成性能损耗,索引太少肯定查询效率不高。 2.InnoDB存储引擎所有概述 InnoDB中常见的索引有: B+树索引 全文索引 哈希索引 哈希索引是自适应的,无法人为干预是否在一张表中生成hash索引。 B+树不能找到一个
阅读全文
摘要:1.前言 上一章记录了MySQL中的一些文件组成,以及相关作用和参数配置,本章开始记录深层次的存储结构,以便更好理解MySQL的设计。 2.索引组织表 InnoDB中,表都是根据主键顺序组织存放的,这种方式称为索引组织表。每个表都有一个主键,没有主键会按照一定规则选择或创建主键: 判断表中是否有非空
阅读全文
摘要:1.前言 第二章简单记录了一下InnoDB存储引擎的一个基本内容,介绍了保证高效插入的Insert Buffer,change Buffer和确保数据安全的write ahead log以及double write机制,还介绍了查询和保存的内存策略,LRU列表、Free列表以及Flush列表,与此同
阅读全文
摘要:1.前言 本节记录InnoDB的相关知识点。 2.InnoDB存储引擎简介 2.1版本 MySQL5.1开始,允许用动态方式加载引擎,这样存储引擎的更新可以不受MySQL数据库版本的限制。下面是各个InnoDB版本功能对比: 老版本的InnoDB 支持ACID、行锁设计、MVCC InnoDB 1.
阅读全文
摘要:1.前言 本系列记录MYSQL数据库的一些结构和实现特点,方便查询。 2.基本概念 数据库:物理操作系统文件或者其他形式文件类型的集合。MySQL中数据库文件可以是frm、MYD、MYI、ibd结尾的文件。使用NDB引擎时,可以是内存中的文件。 实例:MySQL数据库由后台线程以及一个共享内存区组成
阅读全文
摘要:1.前言 本节记录一下redis的一些功能上的实现,包括发布订阅、事务、Lua脚本、排序、二进制位数组、慢查询日志和监视器。 2.发布订阅 上一章介绍sentinel的时候说到了sentinel会订阅主从服务器的hello频道,每个sentinel通过往这个频道中传递各自的状态,让其它sentine
阅读全文
摘要:1.前言 本章介绍redis的三种多服务实现方式,尽可能简单明了总结一下。 2.复制 复制也可以称为主从模式。假设有两个redis服务,一个在127.0.0.1:6379,一个在127.0.0.1:12345。我们登陆12345端口的redis,输入命令slaveof 127.0.0.1:6379就
阅读全文
摘要:1.前言 上节总结了一下redis的数据结构和对象构成,本章介绍redis数据库一个基本面貌,是如何设计的。 2.数据库 服务器结构redisServer: redisDb *db: 一个数组,保存服务器中所有的数据库 dbnum: 服务器的数据库数量,默认16个 saveparam *savepa
阅读全文
摘要:1.前言 此系列博客记录redis设计与实现一书的笔记,提取书本中的知识点,省略相关说明,方便查阅。 2.基本数据结构 2.1 简单动态字符串SDS(simple dynamic string) 结构体定义: len: buf数组中已使用字节的数量,使用len判断实际内容长度,而不是'\0'字符 f
阅读全文