数据库
文章平均质量分 93
Lambert-zw
这个作者很懒,什么都没留下…
展开
-
【数据库内核】跨域数据平台通过数据库实现的设计
摘要:本文主要讲述通过数据库来实现跨域数据平台的功能。主要内容如下:概述目前行业的痛点和解决方案架构设计结论原创 2020-11-16 11:58:31 · 801 阅读 · 1 评论 -
【数据库内核】物理算子之Distinct算子实现
摘要:本文主要讲述数据库中distinct算子的设计。主要内容如下:概述Sort Distinct算法Hash Distinct算法Distinct 语义优化结论原创 2020-11-09 13:31:14 · 1005 阅读 · 0 评论 -
【数据库内核】物理算子之Aggregate聚合算子实现
摘要:本文主要讲述数据库中Aggregate聚合算子的设计。主要内容如下:概述Stream Aggregate算法Hash Aggregate算法聚合函数的计算模式结论原创 2020-11-02 12:31:17 · 2595 阅读 · 0 评论 -
【数据库内核】物理算子之Join算子实现
摘要:本文主要讲述数据库中表与表之间的关联Join算子的设计。主要内容如下:概述数据库为什么需要JoinNested Loop Join算法Merge Sort Join算法Hash Join算法三类算法对比情况说明结论原创 2020-10-26 12:51:08 · 1680 阅读 · 0 评论 -
【数据库内核】基于代价的优化器引擎之Join Order
摘要:本文主要讲述基于代价的优化器中Join Order模型的设计。主要内容如下:概述Tidb Join Order 算法简介贪心算法缺点PostgreSQL Join Order 算法简介算法对比情况结论原创 2020-10-26 12:50:50 · 1548 阅读 · 0 评论 -
【数据库内核】基于代价的优化器引擎-代价估算
摘要:本文主要讲述基于代价的优化器中代价估算模型的设计。主要内容如下:概述查询代价估算单表扫描代价索引两表连接算法Mysql代价模型的实现方式结论原创 2020-10-26 12:50:05 · 2139 阅读 · 0 评论 -
【数据库内核】基于代价的优化器引擎之统计信息
摘要:本文主要讲述基于代价的优化器中统计信息直方图的作用和种类。主要内容如下:概述统计信息直方图结论原创 2020-10-26 12:50:28 · 807 阅读 · 0 评论 -
【数据库内核】基于代价的优化器引擎
摘要:本文以GPORCA优化器引擎为例讲述基于代价优化器的工作机制。主要内容如下:概述ORCA架构体系基于代价的优化器引擎设计与实现基于代价优化器面临的挑战总结原创 2020-10-26 12:49:37 · 1077 阅读 · 0 评论 -
【数据库内核】事务MVCC简介
目录概述MySQL InnoDB下读操作分类一、快照读(snapshot read)二、当前读(current read)三、当前读,快照读和MVCC的关系Mysql MVCC实现原理一、InnoDB引擎的隐式字段二、undo日志版本链三、Read View四、可见性比较算法结论概述MVCC(Multi-Version Concurrency Control 多版本并发控制),是一种不利用锁机制实现的隔离级别,主要实现了在保证数据的一致性的前提下,实.原创 2020-10-26 12:48:32 · 736 阅读 · 0 评论 -
【数据库内核】事务核心基础简介
摘要: 本文主要介绍数据库事务的相关技术点。主要内容如下:概述事务ACID四大原则并发事务带来的问题隔离级别总结原创 2020-09-08 11:04:35 · 1058 阅读 · 0 评论 -
【数据库内核】基于规则优化之条件化简
摘要: 本文主要介绍基于规则优化条件化简的相关技术点。主要内容如下:1. 概述2. 把HAVING条件并入WHERE条件3. 常量折叠4. 常量传播5. 等式变换6. 布尔表达式变换7. 总结原创 2020-09-07 12:09:53 · 305 阅读 · 0 评论 -
【数据库内核】基于规则优化之谓词重写
摘要: 本文主要介绍基于规则优化谓词重写的相关技术点。主要内容如下:1. 概述2. LIKE重写规则3. BETWEEN-AND重写规则4. IN转换OR重写规则5. 表达式语义去重重写规则6. NOT重写规则7. 消除恒真重写规则8. 表达式剪枝重写规则9. 总结原创 2020-09-07 12:10:05 · 649 阅读 · 0 评论 -
【数据库内核】物理计算引擎Push模型之编译执行
摘要: 本文讲述了数据库计算引擎Push模型的相关技术。主要内容如下:1. 概述2. CPU特征3. 物理计算引擎的技术演进之路4. 推送模型与拉取模型的区别5. 编译执行6. Hyper数据库编译执行的方式7. 结尾原创 2020-09-07 12:10:15 · 2736 阅读 · 0 评论 -
【数据库内核】Join的种类和用法
目录概述测试的表数据Join的种类一、Inner Join二、Left Join三、RightJoin四、FullJoin五、LEFT JOIN EXCLUDING INNER JOIN六、RIGHT JOIN EXCLUDING INNER JOIN七、FULL OUTERJOIN EXCLUDING INNER JOIN八、CROSSJOIN九、SEMIJOIN十、ANTIJOIN十一、ANTI NAJOIN结论概述...原创 2020-09-07 12:10:27 · 3245 阅读 · 0 评论 -
【数据库内核】物理执行器引擎Pull模型之火山模型
目录概述算子介绍火山模型火山模型痛点一、虚函数的开销二、Cpu Cache的利用率结论参考资料概述当我们的逻辑计划引擎把SQL生成了逻辑计划后,后端的物理计算引擎接收到逻辑计划生成物理执行计划,便可以开始去真正执行计算作业了。在关系数据库发展的早期,受制于计算机IO能力的约束,数据库通常的物理执行引擎采用的是火山模型的设计方式。因为火山模型每次只处理一行数据,大大的节约了内存的使用量。数据库物理计算引擎通常分为二类,一类是以火山模型(Volcano Mode.原创 2020-09-07 12:10:53 · 6298 阅读 · 0 评论 -
【数据库内核】基于规则优化之子查询优化
目录概述准备资料子查询的分类从子查询出现在SQL语句的位置区分一、目标列位置二、FORM 子句位置三、WHERE 子句位置四、JOIN/ON 子句位置五、GroupBy子句位置六、OrderBy子句位置从对象间的关系区分一、相关子查询二、非相关子查询从特定谓词区分一、[NOT] IN/ALL/ANY/SOME子查询二、[NOT] EXISTS子查询三、其他的子查询从语句的构成复杂程度区分一、SPJ子查询二、GROUPBY子查询原创 2020-09-08 11:04:12 · 1590 阅读 · 0 评论 -
【数据库内核】基于规则优化之谓词下推
目录概念逻辑算子介绍为什么要谓词下推谓词下推在Join中的应用一、InnerJoin 下推情况说明二、LeftJoin下推情况说明三、RightJoin下推情况说明四、FullJoin下推情况说明谓词下推在Parquet中的应用聚合下推一、简单聚合函数下推二、Join场景下的聚合函数下推Join下推Order By Limit下推一、下推到存储层 Coprocessor二、TopN 下推过 Join 的情况(排序规则仅依赖于外表中的列)...原创 2020-09-08 11:03:31 · 3558 阅读 · 0 评论 -
【数据库内核】数据库核心技术演进之路
目录概述数据库的演进之路数据库的发展-业务视角数据库的技术演进之路一、传统集中式数据库架构1.查询分析处理过程2.核心技术二、分布式数据库架构1. 数据分布2. 分布式事务3. 数据复制4. 读写分离5. 数据备份恢复6. 容灾高可用三、SMP VS MPP四、资源访问方式结论参考资料概述数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。...原创 2020-09-06 19:08:00 · 2736 阅读 · 0 评论 -
【数据库内核】分布式数据库知识思维导图
摘要: 本文主要介绍分布式数据库涉及的核心技术点。主要内容如下:概述分布式数据库总体概述分布式数据库-计划分布式数据库-索引分布式数据库-事务分布式数据库-调度分布式数据库-执行器分布式数据库-存储新软硬件一体化技术分布式数据库-数据联邦分布式系统-监控分布式系统-架构分布式数据库-通信分布式数据库-资源管理总结原创 2020-09-06 19:04:22 · 1711 阅读 · 0 评论 -
数据库Initcap函数实现
#include "iostream"#include <ctype.h>#define UTF8_CHAR_LEN( first_byte ) ((( 0xE5000000 >> (( first_byte >> 3 ) & 0x1e )) & 3 ) + 1)void InitCap(char* buffer, char* src, int src_len) { if (src_len原创 2017-04-24 11:11:19 · 1935 阅读 · 0 评论 -
数据库Length函数实现
Length函数的三种实现方式#include "iostream" unsigned char utf8_look_for_table[] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,原创 2017-04-11 16:14:01 · 2178 阅读 · 0 评论