腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
PostgreSQL研究与原理解析
专栏成员
举报
297
文章
282397
阅读量
57
订阅数
订阅专栏
申请加入专栏
全部文章(297)
sql(64)
编程算法(52)
数据库(50)
postgresql(42)
https(42)
网络安全(40)
函数(38)
存储(37)
缓存(36)
数据(31)
linux(19)
内核(17)
node.js(13)
云数据库 postgresql(12)
进程(12)
量化(12)
数组(12)
数据结构(11)
索引(11)
内存(10)
腾讯云测试服务(9)
性能(9)
排序(8)
python(7)
http(7)
日志(7)
c++(6)
文件存储(6)
云推荐引擎(6)
数据分析(6)
数据库管理(6)
buffer(6)
事务(6)
统计(6)
系统(6)
批量计算(5)
windows(5)
优化(5)
html(4)
云数据库 SQL Server(4)
git(4)
github(4)
join(4)
null(4)
nvm(4)
rows(4)
磁盘(4)
服务(4)
链表(4)
连接(4)
论文(4)
对象存储(3)
其他(3)
json(3)
android(3)
oracle(3)
access(3)
api(3)
unix(3)
日志服务(3)
腾讯优客(3)
网站(3)
分布式(3)
安全(3)
hash(3)
heap(3)
share(3)
simd(3)
插件(3)
队列(3)
翻译(3)
高可用(3)
事件(3)
语法(3)
bash(2)
nosql(2)
mvc(2)
打包(2)
全文检索(2)
apt-get(2)
数据加密服务(2)
企鹅竞速(2)
vr 视频解决方案(2)
开源(2)
tcp/ip(2)
flash(2)
mvcc(2)
迁移(2)
性能测试(2)
checksum(2)
commit(2)
error(2)
filter(2)
innodb(2)
int(2)
io(2)
memcpy(2)
min(2)
partial(2)
psql(2)
relation(2)
root(2)
search(2)
select(2)
store(2)
target(2)
timeout(2)
tree(2)
备份(2)
编码(2)
并发(2)
管理(2)
基础(2)
架构(2)
客户端(2)
内存管理(2)
配置(2)
搜索(2)
同步(2)
线程(2)
异常(2)
指针(2)
字符串(2)
自动驾驶(1)
java(1)
c 语言(1)
php(1)
perl(1)
javascript(1)
go(1)
.net(1)
r 语言(1)
css(1)
jquery(1)
qt(1)
单片机(1)
arm(1)
ide(1)
apache(1)
bash 指令(1)
访问管理(1)
TDSQL MySQL 版(1)
数据库解决方案(1)
ssh(1)
hive(1)
正则表达式(1)
jdbc(1)
grep(1)
udp(1)
socket编程(1)
uml(1)
大数据(1)
数据处理(1)
架构设计(1)
utf8(1)
ascii(1)
append(1)
archive(1)
bitmap(1)
block(1)
break(1)
case(1)
clickhouse(1)
compression(1)
container(1)
count(1)
dba(1)
distinct(1)
dump(1)
encryption(1)
epoll(1)
exists(1)
fetch(1)
field(1)
file(1)
flush(1)
gdb(1)
gzip(1)
init(1)
kill(1)
map(1)
mask(1)
max(1)
md5(1)
memory(1)
methods(1)
mmap(1)
model(1)
oceanbase(1)
olap(1)
orders(1)
parquet(1)
patch(1)
pid(1)
pipeline(1)
ps(1)
push(1)
queue(1)
replication(1)
return(1)
row(1)
rsync(1)
runtime(1)
salt(1)
set(1)
sh(1)
shared(1)
shutdown(1)
size(1)
sizeof(1)
state(1)
status(1)
subquery(1)
subscription(1)
table(1)
time(1)
tuples(1)
unique(1)
var(1)
width(1)
worker(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)
搜索文章
搜索
搜索
关闭
国产数据库 - 内核特性 - CloudberryDB中的Runtime Filter
数据库
filter
runtime
函数
内核
国产数据库 - 内核特性 - CloudberryDB中的Runtime Filter
yzsDBA
2024-06-26
163
0
PostgreSQL使用Linux cgroup2控制资源消耗
服务
系统
postgresql
linux
root
多租户和共host是一个挑战性问题。运行多个PG实例可以帮助减少内部竞争点(可伸缩性问题)。然而,一个租户的load可能会影响其他tenets,即所谓的“Noisy Neighbor”效应。幸运的是Linux允许用户通过每个程序使用cgroups来控制资源消耗。Cgroup2替代了cgroup1,处理了版本1几乎所有的限制。
yzsDBA
2024-06-14
125
0
PgSQL技术内幕 - psql与服务端连接与交互机制
进程
客户端
连接
psql
服务端
简单来说,PgSQL的psql客户端向服务端发起连接请求,服务端接收到请求后,fork出一个子进程,之后由该子进程和客户端进行交互,处理客户端的SQL等,并将结果返回给客户端。那么,他是如何做到客户端和服务端子进程进行交互呢?服务端怎么做到和多个客户端交互呢?
yzsDBA
2024-06-14
228
0
PgSQL内核机制 - 算子执行统计元组个数
统计
状态机
内核
排序
数据
我们在执行explain analyze观察执行计划执行情况时,时常通过每个算子实际执行结果来分析SQL的执行,其中有一项“rows = XXX”表示执行的行数(这里姑且先认为是执行的真实行数)。但有些场景下,比如MergeJoin,如下:
yzsDBA
2024-06-03
105
0
国产数据库 - 架构设计 - 初识Doris
架构
数据
数据库
存储
架构设计
Doris是一款基于MPP架构的分析型数据库。整体架构很简单,只有两类进程FE和BE。其中FE(Frontend)主要负责用户请求的接入、查询解析规划、元数据管理和节点管理相关工作;BE(Backend)主要负责数据存储、查询计划的执行。
yzsDBA
2024-06-03
1.3K
0
openGauss的BatchStore和Batchsortstate为什么仅ForwardScanDirection取数据
缓存
函数
量化
排序
数据
openGauss - 内核原理 - BatchStore和Batchsortstate为什么仅ForwardScanDirection取数据
yzsDBA
2024-05-21
94
0
湖仓一体 - Apache Arrow的那些事
数据处理
高性能
量化
数据
apache
Arrow是高性能列式内存格式标准。它的优势:高效计算:所有列存的通用优势,CPU缓存友好、SIMD向量化计算友好等;零序列化/反序列化:arrow的任何数据结构都是一段连续的内存,在跨进程/跨及其传输数据时直接发送/接收整段内存即可,不需要序列化和反序列化;完善的数据类型和生态;支持跨语言跨系统互操作。
yzsDBA
2024-05-06
936
0
openGauss - 向量化执行引擎 - distinct分组聚合的实现
函数
量化
排序
数据
distinct
openGauss向量化执行引擎中分组聚合有两种实现方式:排序和hash。本文介绍排序实现机制下的distinct分组聚合如何实现。分组聚合也分为两种使用方式:普通group by和grouping sets等分组集,其中普通group by就是每次查询生成一个分组的聚合;而grouping sets、cube或者rollup分组集就是每次查询生成不同级别或者多个维度的聚合,详见:
yzsDBA
2024-05-06
194
0
GPDB技术内幕 - SEMI JOIN浅析
join
rows
遍历
连接
分布式
SEMI JOIN顾名思义,半连接,相对于join字段来说,针对外表的一行记录,内表只要有一条满足,就输出外表记录。注意,这里是仅输出外表记录。GPDB中有几种实现方式,本文我们简单聊聊。
yzsDBA
2024-04-13
310
0
PgSQL - 内核插件 - pg_dirtyread
接口
内核
系统
插件
函数
表中删除了记录,并且没有进行vacuum,此时可以通过pg_dirtyread扩展读取死记录。
yzsDBA
2024-04-12
191
0
GPDB - 内核特性 - 分区表如何处理表名超长
语法
int
磁盘
函数
内核
GPDB分区表创建时有可能表名已存在,此时报错退出。但当分区表名超过64字符时,会进行截断,仅保留前63字符,此时就可能出现分区表名不同,截断后创建的分区表名相同从而创建失败的情况;还会出现分区表父表创建成功,但分区子表名创建失败,报表名已存在等错误导致创建失败。本文基于GreenPlum7.0分区表经典语法详细分析分区表名及分区子表名生成机制。
yzsDBA
2024-03-27
88
0
PgSQL技术内幕 - 优化器如何估算行数
优化
函数
数组
统计
系统
PgSQL优化器根据统计信息估算执行计划路径的代价,从而选择出最优的执行计划。而这些统计信息来自pg_statistic,当然这个系统表是由ANALYZE或者VACUUM进行样本采集而来。关于该系统表的介绍详见:PgSQL技术内幕-Analyze做的那些事-pg_statistic系统表
yzsDBA
2024-03-20
187
0
PgSQL - 内核特性 - 把DuckDB弄进来怎么样
row
量化
内核
存储
relation
DuckDB是一款高性能的分析型数据库系统,支持了基于Push-based pipeline的向量化执行引擎。这么好的一款数据库,有办法直接弄到PgSQL里面,以利用其优秀的列式存储、向量化执行引擎等优秀特性吗?Hydra团队开源了一款插件pg_quack,将duckdb以表访问方法的方式加到PgSQL中,为PgSQL提供了新的存储引擎以及执行引擎。
yzsDBA
2024-03-02
571
0
GPDB - 高可用 - FTS机制(一):探测成功
数据库
高可用
函数
进程
同步
作为GreenPlum高可用的核心功能,FTS(Fault Tolerance Server)进程负责故障检测。该进程是master上的一个子进程,可以快速检测到primary或者mirror是否宕机,并及时让primary/mirror进行故障切换。如果fts挂掉了,master还会再重新fork出一个。本文说说FTS的工作机制。
yzsDBA
2024-02-22
170
0
PgSQL内核特性 - push-based pipeline 执行引擎
pipeline
push
内核
数据
推送
数据库的SQL执行引擎负责处理和执行SQL请求。通常情况下,查询优化器会输出物理执行计划,一般由一系列的算子组成。当前,有两种算子流水线构建方式:1)需求驱动的流水线,由算子不断从下级算子拉取数据;2)数据驱动的流水线,由算子将每个数据推送给父算子。
yzsDBA
2024-02-22
324
0
PgSQL技术内幕 - case when表达式实现机制
语法
case
null
函数
搜索
CASE表达式如同 C语言中的if/else语句一样,为SQL添加了条件逻辑处理能力,可以根据不同条件返回不同结果。PgSQL支持两种语法:简单表达式和搜索表达式。
yzsDBA
2024-02-22
1.3K
0
PgSQL - 17新特性 - 块级别增量备份
数据
checksum
var
备份
进程
PgSQL可通过pg_basebackup进行全量备份。在构建复制关系时,创建备机时需要通过pg_basebackup全量拉取一个备份,形成一个mirror。但很多场景下,我们往往不需要进行全量备份/恢复,数据量特别大的时候,这个代价太大了。GPDB中有个工具gprecoverseg支持全量备份和增量备份。所谓全量备份,主要通过pg_basebackup从其他节点全量拷贝一份数据过来;而增量备份主要通过pg_rewind工具,只拷贝新增的数据。而PgSQL中单独的pg_rewind,仅从分叉点之前最近的checkpoint位置开始解析WAL,解析出变动的数据页,然后仅将变动的数据页拷贝过来。所以,仅靠pg_rewind实现不了完美的增量备份。
yzsDBA
2024-01-22
592
0
GPDB - 高可用 - 流复制状态
高可用
函数
进程
日志
备份
GPDB的高可用基于流复制,通过FTS进行自动故障切换。自动故障切换需要根据primary-mirror流复制的各种状态进行判断。本节就聊聊primary-mirror流复制的各种状态。同样适用于PgSQL
yzsDBA
2024-01-09
144
0
PgSQL技术内幕 - ereport ERROR跳转机制
存储
error
程序
函数
事务
使用客户端执行SQL的时候经常遇到报ERROR错误,然后SQL语句就退出了。当然,事务也会回滚掉。本文我们看下它是如何做到退出SQL语句并回滚事务的。
yzsDBA
2023-12-26
334
0
GPDB - FTS机制 - FTS进程启动
服务
函数
后台
进程
日志
作为GreenPlum高可用的核心功能,FTS(Fault Tolerance Server)进程负责故障检测。该进程是master上的一个子进程,可以快速检测到primary或者mirror是否宕机,并及时让primary/mirror进行故障切换。如果fts挂掉了,master还会再重新fork出一个。本文说说FTS进程是怎么启动的。
yzsDBA
2023-12-19
183
0
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
立即查看
Python精品学习库
代码在线跑,知识轻松学
立即查看
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
立即体验
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
立即查看
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档