Ch07-C++ 之 keyword
April 25, 2022
virtual
virtual
static_cast
,dynamic_cast
,const_cast
,reinterpret_cast
。
new
,delete
define
,typedef
,using
,inline
static
,const
,constexpr
,volatile
1.数据类型 # 基本类型 所占大小 (bit) 最小范围 最大范围 void 0 bool 8 char 8 -128 127 unsigned char 8 0 255 short (signed short) 16 -32768 32767 unsigned short 16 0 65535 int (signed int) 32 -2147483648 2147483647 unsigned (unsigned int) 32 0 4294967295 long (signed long) 32 -2147483648 2147483647 unsigned long 32 0 4294967295 float 32 -3.4×10^38 3.4*10^38 double 64 -1.7×10^308 1.7×10^308 long double 64 -1.7×10^308 1.7×10^308 long long 64 -9223372036854775808 9223372036854775807 2. ...
内存模型就是一种语言它独特的管理者一套程序的机制,每种语言都有自己的一套程序机制。
...我们习惯把 MySQL 复制中的角色叫做 Master/Slave,MySQL 8.0 后,术语和命令上都会统一到 Source/Replica。MySQL 采用 log shipping 的复制技术,在 source 节点上生成 binlog,通过 dump 线程把 binlog 推到 replica 节点上,replica 节点首先把 binlog 存储到 relay log 中,然后通过 MTS(Multi-Threaded Slave) 技术 replay 到 replica 节点上的表空间。
...1. 迭代模型/火山模型(Iterator Model) # 又称 Volcano Model 或者 Pipeline Model。该计算模型将关系代数中每一种操作抽象为一个 Operator,将整个 SQL 构建成一个 Operator 树,查询树自顶向下的调用 next() 接口,一般只返回一条数据 (tuple)。数据则自底向上的被拉取处理。这种处理方式也称为拉取执行模型 (Pull Based)。 2. 物化模型(Materialization Model) # 物化模型的处理方式是每个 operator 一次处理所有的输入,处理完之后将所有结果一次性输出。物化模型更适合 OLTP 负载,这些查询每次只访问小规模的数据,只需要少量的函数调用。 3. 向量化/批处理模型(Vectorized / Batch Model) # 向量化模型 和 火山模型 类似,每个 operator 需要实现一个 next() 函数,但是每次调用 next() 函数会返回一批的元组(tuples),而不是一个元组,所以向量化模型也可称为批处理模型。这种处理方式也称为推送执行模型 (Push Based)。 4. Pull Based VS Push Based # 比如上述图中的例子,pull based model 由 aggr 驱动,但是 push-based model 则由 scan 驱动。 4. 参考文献 # 三种常见的数据库查询引擎执行模型 SQL 查询优化原理与 Volcano Optimizer 介绍
基数 Cardinality,某列唯一键的数量,称为基数,即某列非重复值的数量。 选择性 Selectivity,某列基数与总行数的比值再乘以 100%,则称为某列选择性。可选择率的取值范围显然是 0~1,它的值越小,就表明可选择性越好。当可选择率为 1 时的可选择性是最差的。 Cost-Based Optimization 基于代价的优化器 Volcano Optimizer # The Volcano Optimizer Generator : Extensibility and Efficient Search Cascades Optimizer # The Cascades Framework for Query Optimization 参考文献 # 优化器技术论文学习 优化器论文列表 数据库内核杂谈(九):开源优化器 ORCA