摘要:
关系数据库 Query Execution 的流程 在关系型数据库中, 一条 Query 语句执行的流程如下: DBMS将Quey语句翻译成特定的内部抽象语言, 通常有两种 Query Plan logical Plan: 使用关系代数描述 Query Plan, 描述关系操作符或者非关系操作符 p 阅读全文
摘要:
CMU_15445_P2_PageGuard 我将页面守护部分与多线程调用部分放在一起写在这篇博客中了, 页面守卫的本质是更加优雅方便的使用内存中的页(Pages). 我们知道Buffer_Pool_Manager实际上是管理页面, BPM 管理的是页面在内存中的组织形式与磁盘交互等, PageGu 阅读全文
摘要:
到Project2, 我们依然在处理数据库存储相关的部分, 从 Project1 中我们应该Get到两个概念: 数据库底层数据操作的基本单元是 Page. buffer_pool_manager 是管理以及组织数据单元Page的工具, 在Project2的第一部分, 我们还新增了页面守护(PageG 阅读全文
摘要:
移动构造与移动赋值 拷贝构造函数与移动赋值的重载 C++允许通过拷贝的方式来构造一个新的对象, 也允许通过移动赋值的方式构造一个新的对象. 在C++中新建一个类的时候, 默认的构造函数与移动赋值运算符都是基于浅拷贝执行的. 这个浅拷贝的构造函数与移动赋值运算符支持重载, 我们要说的就是重载这两个部分 阅读全文
摘要:
Exception specifications and noexcept in CPP Looking at a typical function declaration, it is not possible to determine whether a function might throw 阅读全文
摘要:
Shallow copying Because C++ does not know much about your class, the default copy constructor and default assignment operators it provides use a copyi 阅读全文
摘要:
上一篇中我们讲述了红黑树的插入, 以及删除时需要进行的各种调整的情况, 根据这些情况, 我们可以用代码实现红黑树的插入与删除操作. 节点的定义 一颗红黑树的定义如下: // 定义颜色枚举类型 enum Color { RED, BLACK }; template <class T> struct R 阅读全文
摘要:
红黑树的定义 之所以这么久才新开红黑树, 是因为我觉得红黑树还是挺复杂的, 要说清楚与实现都不是容易的事情, 我主要参考了一些博客, 传送门. 实际上我的大部分理解都是来自这一篇博客, 我添加了一些自己的理解以及实现方式. 红黑树是在二叉搜索树的基础上, 添加了对二叉搜索的限制, 每次新增或者删除节 阅读全文
摘要:
GDIT的用法 从 MYSQL 的主从复制讲起 在Mysql中, 我们部署一个数据库的时候往往会有多个服务器, 我们称之为服务器的拓朴结构. 在主从复制(Replication)环境中, 通常主服务器(Master)负责处理写操作以及事务的生成与提交. 主服务器会将对服务器的操作记录到binlog中 阅读全文
摘要:
简单数据库迁移操作 迁移方案 迁移方案很简单, 首先将旧的库dump下来, 然后在新库中导入旧的库 dump 下来的文件. # 旧库dump的指令 mysqldump -h host -P post -u user -p database > database_backup.sql # 新库导入的命 阅读全文