自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 PostgreSQL迁移工具 V1.0 开发-01创建连接池

连接池不是过度设计,而是数据库应用的必需品性能提升:避免重复的连接建立开销资源控制:限制连接数,保护数据库稳定性:自动处理连接故障、重连并发支持:支持多个操作同时进行监控能力:提供连接使用情况的可见性对于PostgreSQL迁移工具这种高并发、长时间运行的应用,连接池是绝对必要的。

2025-09-02 15:18:20 938

原创 PostgreSQL迁移工具 V1.0 - 设计方案

PG到PG的迁移工具,采用读取wal回放到目标端SQL的方式

2025-09-02 10:16:10 955

原创 PostgreSQL迁移工具 V1.0 - 需求规格说明书

开发一个轻量级的PostgreSQL数据迁移工具,支持从标准PostgreSQL实例迁移到PG兼容的分布式数据库CN节点。

2025-09-02 09:56:57 766

原创 Polardb-X 源码解读整体架构

PolarDB-X中CN(Compute Node)和DN(Data Node)的整体架构。

2025-07-30 19:09:08 493

原创 KubeBlocks 源码总结分析浅析

KubeBlocks 是一个非常优秀的云原生数据库管理平台,通过统一的 API 和代码库,大大简化了在 Kubernetes 上管理多种数据库的复杂性。希望这次源码分析能帮助您更好地理解和使用这个项目!

2025-07-30 16:15:57 219

原创 PolarDB-X 源码3 标准版到分布式版的“变形记”

这是最“神奇”的一步。这三个逻辑层在一个JVM进程中协同工作,共享内存和CPU资源,对外呈现为一个单一的、高可用的数据库服务。当您在控制台点击“升级”时,一场由**GMS(全局元数据服务)**指挥的、精密的架构重组开始了。这套精巧的设计,是PolarDB-X作为云原生数据库,其“弹性”能力在技术上的具体体现。首先,要理解它是如何“合”在一起的。程序跑了一套不同的“if-else”逻辑,剪裁掉了CN的功能,强化了作为DN的角色。,整个过程没有进行大规模的数据拷贝,主要是元数据的更新和进程角色的转变。

2025-07-29 21:51:26 355

原创 PolarDB-X CN往DN发送的是算子还是SQL?

PolarDB-X 的 CN 节点向 DN 发送的是 SQL 语句,而不是物理算子。DN 只需理解和执行 SQL,所有分布式调度、路由、优化都在 CN 层完成。如需源码入口或具体实现细节,可进一步指定模块!

2025-07-29 21:16:36 371 1

原创 Polardb-X源码分析: 标准版和分布式版介绍

标准版/分布式版的区别本质是部署和配置,源码是统一的。单节点模式适合开发测试,多节点模式才体现出 PolarDB-X 的分布式能力。你可以通过配置文件和 GMS 元数据表来灵活切换。

2025-07-29 21:07:55 450

原创 polardb-x源码分析:第一整体架构

PolarDB-X 是阿里云开源的云原生分布式关系型数据库,采用计算与存储分离的 Shared-nothing 架构,具备高并发、弹性扩展、分布式事务、HTAP 混合负载等特性。

2025-07-29 21:03:38 843

原创 数据库管控01——KubeBlocks

KubeBlocks 是一个开源的云原生数据库管理平台,通过统一的API和代码来管理K8s上的多种数据库引擎。

2025-07-29 14:21:35 421

原创 PostgreSQL源码的深入分析(九)——详细解读 COPY命令

解读了COPY命令的源码实现!

2025-07-29 13:45:51 1186

原创 postgresql(pg) copy为什么那么快

【代码】postgresql(pg) copy为什么那么快。

2025-07-29 11:27:58 575

原创 PostgreSQL源码分析-PG_dump:表读取数据模块

【代码】PostgreSQL源码分析-PG_dump:表读取数据模块。

2025-07-29 11:24:23 793

原创 PostgreSQL源码分析pg_dump(一) pg_dump总体结构预览

pg_dump清晰的模块化架构完善的依赖关系处理灵活的扩展性设计强大的并行处理能力。

2025-07-29 11:16:25 1005

原创 PostgreSQL源码分析(一)——总体目录结构分析

是核心,包含所有数据库服务器功能src/bin/包含各种客户端工具提供客户端编程接口contrib/提供丰富的扩展功能后面计划对每个模块单独进行解析。

2025-07-29 10:52:30 1202

原创 PG系列二: PostgreSQL 15部署3个数据库实例(接上)

如遇到问题可根据日志排查,或调整配置文件后重启数据库。

2025-07-29 10:47:08 222

原创 PG系列一: PostgreSQL 15.5 二进制安装与运行笔记

如遇到问题可根据日志排查,或调整配置文件后重启数据库。

2025-07-29 10:38:43 288

原创 New Document

MySQL 1.连接Mysql的指令 2.数据库三层架构 3.数据库创建和查询 4.备份和恢复数据库 5.创建表和删除表 6.Mysql常用数据类型 6.1列类型之整形 6.2列类型之bit 6.3列类型之小数型 6.4列类型之字符串 6.5列类型之日期类型 7.增删改查 8.统计函数 9....

2022-02-18 16:32:36 1984

原创 数据库sql语言07-练习题详解

建表语句student(sid,sname,sage,ssex) 学生表course(cid,cname,tid) 课程表sC(sid,cid,score) 成绩表teacher(tid,tname) 教师表CREATE TABLE `course` ( `cid` int(11) NOT NULL, `cname` varchar(30) DEFAULT NULL, `tid` int(11) DEFAULT NULL, PRIMARY KEY (`cid`)) ENGINE=

2022-02-16 10:43:01 259

原创 数据库sql语言06-单行函数

字符串函数和数学函数SELECT ABS(-8); /*绝对值*/SELECT CEILING(9.4); /*向上取整*/SELECT FLOOR(9.4); /*向下取整*/SELECT RAND(); /*随机数,返回一个0-1之间的随机数*/SELECT SIGN(0); /*符号函数: 负数返回-1,正数返回1,0返回0*/SELECT CHAR_LENGTH('狂神说坚持就能成功'); /*返回字符串包含的字符数*/SELECT CONCAT('我','爱','程序'); /*合

2022-02-15 18:01:54 169

原创 数据库sql语言04-子查询和分组函数

子查询什么是子查询?在查询语句中的WHERE条件子句中,又嵌套了另一个查询语句嵌套查询可由多个子查询组成,求解的方式是由里及外;子查询返回的结果一般都是集合,故而建议使用IN关键字;–求薪水最高的员工所在部门的员工信息分析:第一:先求最高薪水:第二: 求最高薪水得部门号:第三:求部门为10的员工信息:聚合函数– 从含义上讲,count(1) 与 count() 都表示对全部数据行的查询。– count(字段) 会统计该字段在表中出现的次数,忽略字段为null 的情况。即不统

2022-02-15 17:49:44 172

原创 数据库sql语言05-sql练习

-1.查询平均工资最高的部门的部门编号、部门名称和该部门的平均工资select e.deptno,d.dname,avg(sal) from empe,dept d where e.deptno=d.deptno group bye.deptno,dname havingavg(sal)>=all(select avg(sal) from emp group by deptno);--2.查询所有员工的年薪、所在部门的名称,查询结果按年薪从低往高排序select e.sal*12+nv

2022-02-15 17:29:14 904

原创 数据库sql语言03-排序和分页

排序和分页语法 : ORDER BYORDER BY 语句用于根据指定的列对结果集进行排序。ORDER BY 语句默认按照ASC升序对记录进行排序。如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。语法 : SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset好处 : (用户体验,网络传输,查询压力)推导:第一页 : limit 0,5第二页 : limit 5,5第三页 : limit 10,5..

2022-02-15 17:15:01 353

原创 数据库sql语言02-连接查询

JOIN例子:/*连接查询如需要多张数据表的数据进行查询,则可通过连接运算符实现多个查询内连接 inner join查询两个表中的结果集中的交集外连接 outer join左外连接 left join(以左表作为基准,右边表来一一匹配,匹配不上的,返回左表的记录,右表以NULL填充)右外连接 right join(以右表作为基准,左边表来一一匹配,匹配不上的,返回右表的记录,左表以NULL填充)等值连接和非等值连接自连接*/-- 查询参加了考试的同学信息(学号,学生姓

2022-02-14 17:49:07 414

原创 数据库sql语言01-where 条件

DQL语言DQL( Data Query Language 数据查询语言 )查询数据库数据 , 如SELECT语句简单的单表查询或多表的复杂查询和嵌套查询是数据库语言中最核心,最重要的语句使用频率最高的语句SELECT语法SELECT [ALL | DISTINCT]{* | table.* | [table.field1[as alias1][,table.field2[as alias2]][,...]]} FROM table_name [as table_alias][left

2022-02-14 17:30:14 2052

原创 mysql基础07-DCL

DCL语句DCL 语句主要是DBA 用来管理系统中的对象权限时所使用,一般的开发人员很少使用。下面通过一个例子来简单说明一下。创建一个数据库用户plf,具有对plf数据库中所有表的SELECT/INSERT 权限:1. 管理用户1. 添加用户: * 语法:CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码'; * 主机名可以用%表示该用户可以从任意地址访问数据库2. 删除用户: * 语法:DROP USER '用户名'@'主机名';3.

2022-02-14 17:00:26 130

原创 mysql基础06-DDL

DDL操作DDL(Data Definition Language),数据定义语言,用来定义数据库对象:数据库,表,列等,例如创建、删除、修改:数据库、表结构等。本文主要讲的是mysql数据库中DDL语言的使用,当然这与sql标准的DDL是一脉相承的,只是特定数据库的数据类型有差异。1.操作数据库的DDL,包括数据库查看、切换、创建和删除等首先是客户端的用户登录,比如windows的dos状态下,mysql -uxxx -pyyy,xxx和yyy分别是用户名和密码。当然,登录之前要保证mysql

2022-02-14 16:46:34 245

原创 mysql基础05-DML语言

数据库意义 : 数据存储、数据管理管理数据库数据方法:通过SQLyog等管理工具管理数据库数据通过DML语句管理数据库数据DML语言 : 数据操作语言用于操作数据库对象中所包含的数据包括 :INSERT (添加数据语句)UPDATE (更新数据语句)DELETE (删除数据语句)INSERT命令INSERT INTO 表名[(字段1,字段2,字段3,…)] VALUES(‘值1’,‘值2’,‘值3’)注意 :字段或值之间用英文逗号隔开 .’ 字段1,字段

2022-02-14 16:32:24 155

原创 mysql基础04-mysql体系结构

基本概念:• 数据库: 数据库是一些关联表的集合。• 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。• 列: 一列(数据元素) 包含了相同类型的数据, 例如邮政编码的数据。• 行: 一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。• 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。• 外键: 外键用于关联两个表。MySQL 为关系型数据库(Relational Database Management System), 这种所

2022-02-14 16:20:25 229

原创 mysql基础03-mysql类型介绍

连接数据库mysql已经安装好了,那如何连接数据库呢?在DOS命令行窗口进入 安装目录\mysql\bin可设置环境变量,设置了环境变量,可以在任意目录打开!mysql -uroot -p123456操作数据库结构化查询语句分类:名称 解释 命令DDL (数据定义语言) 定义和管理数据对象,如数据库,数据表等 CREATE、DROP、ALTERDML (数据操作语言) 用于操作数据库对象中所包含的数据 INSERT、UPDATE、DELETEDQL (数据查询语言) 用于查询数据库数

2022-02-14 15:55:24 2188

原创 mysql基础02-非docker版安装mysql

一: 为什么学习数据库?1、岗位技能需求2、现在的世界,得数据者得天下3、存储数据的方法4、程序,网站中,大量数据如何长久保存?5、数据库是几乎软件体系中最核心的一个存在。二:什么是数据库数据库 ( DataBase , 简称DB )概念 : 长期存放在计算机内,有组织,可共享的大量数据的集合,是一个数据 “仓库”作用 : 保存,并能安全管理数据(如:增删改查等),减少冗余…数据库总览 :关系型数据库 ( SQL )MySQL , Oracle , SQL Server , SQ

2022-02-14 10:33:41 214

原创 mysql基础01-安装mysql

安装mysql :去docker 官网下载一个docker windows 版本:https://docs.docker.com/desktop/windows/install/点击下载:启动 Docker 桌面安装后 Docker Desktop 不会自动启动。启动 Docker 桌面:搭建端口号为3307的mysql 5.7服务:C:\Users\PC>docker run -itd --name mysql57 mysql:5.7这样操作是不行的,mysql 需要指定端口3

2022-02-11 18:08:58 796

原创 docker入门01

docker介绍: Docker简介Docker是DotCloud开源的、可以将任何应用包装在Linux container中运行的工具。2013年3月发布首个版本,当前最新版本为1.3。Docker基于Go语言开发,代码托管在Github上,目前超过10000次commit。基于Docker的沙箱环境可以实现轻型隔离,多个容器间不会相互影响;Docker可以自动化打包和部署任何应用,方便地创建一个轻量级私有PaaS云,也可以用于搭建开发测试环境以及部署可扩展的web应用等。Docker vs VM

2022-02-11 16:03:04 245

原创 java07-面向对象_封装

OOP详解Java的编程语言是面向对象的,采用这种语言进行编程称为面向对象编程(Object-Oriented Programming, OOP)对 Java 语言来说,一切皆是对象。把现实世界中的对象抽象地体现在编程世界中,一个对象代表了某个具体的操作。一个个对象最终组成了完整的程序设计,这些对象可以是独立存在的,也可以是从别的对象继承过来的。对象之间通过相互作用传递信息,实现程序开发。面向对象编程有三大特征:封装、继承和多态。封装(Encapsulation)封装(Encapsulation

2022-02-02 18:08:31 196

原创 java05-数组

1、声明数组首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法:dataType[] arrayRefVar; // 首选的方法dataType arrayRefVar[]; // 效果相同,但不是首选方法建议使用 dataType[] arrayRefVar 的声明风格声明数组变量。 dataType arrayRefVar[] 风格是来自C/C++ 语言 ,在Java中采用是为了让 C/C++ 程序员能够快速理解java语言。double[] myList; // 首

2022-02-02 10:40:33 140

原创 java06-IDEA介绍

IDEA 的安装:官网: https://www.jetbrains.com/2)IDEA 工作界面介绍:IDEA 使用技巧和经验IDEA 常用快捷键删除当前行, 默认是 ctrl + Y 自己配置 ctrl + d复制当前行, 自己配置 ctrl + alt + 向下光标补全代码 alt + /添加注释和取消注释 ctrl + / 【第一次是添加注释,第二次是取消注释】导入该行需要的类 先配置 auto import , 然后使用 alt+enter 即可快速格式化代码 c

2022-02-02 10:38:13 717

原创 连载java学习

在2021年10月份开始自学java ,我学习java web 的原因比较简单,公司很多项目想用java,单纯的因为java 一些开源的代码,我想自己写,不太想依赖人,刚毕业的时候07年在太保的时候,就自学过java ,荒废了好长时间,从事IT 12年了,以前的经验主要是oracle dba,mysql dba 方向,现在做三个部门的负责人,后面的目标想做cto,所以不可能有技术盲点,java其实也比较简单,难点主要在于抽象方法,其他的什么循环,变量,控制大概3天就熟练写了,毕竟以前oracle 也是写过

2022-02-02 10:15:39 978

原创 java04-方法

方法方法有点向oracle 存储过程的函数方法的定义:Java的方法类似于其它语言的函数,是一段用来完成特定功能的代码片段,一般情况下,定义一个方法包含以下语法:修饰符 返回值类型 方法名(参数类型 参数名){ … 方法体 … return 返回值; }方法包含一个方法头和一个方法体。下面是一个方法的所有部分:修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。返回值类型 :方法可能会返回值。returnValueType 是方法返回值的数据

2022-02-01 22:49:04 216

原创 java03-流程控制

流程控制:if-else语法:if(布尔表达式 1){//如果布尔表达式 1的值为true执行代码 }else if(布尔表达式 2){//如果布尔表达式 2的值为true执行代码 }else if(布尔表达式 3){//如果布尔表达式 3的值为true执行代码 }else { //如果以上布尔表达式都不为true执行代码 }例子:判断一个整数,如果是奇数,就输出奇数,偶数,输出偶数:public class NewGame { public static void ma

2022-02-01 20:05:13 114

原创 java02-基础语法

数据类型:DK中类型对应的包装类都帮忙写好了,我们需要时候可以直接看到!可以把以下代码拷贝进行查看结果:public class NewGame { public static void main(String[] args) { System.out.println(Byte.SIZE); System.out.println(Byte.MAX_VALUE); System.out.println(Byte.MIN_VALUE);

2022-02-01 10:43:55 139

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除