
postgresql
文章平均质量分 76
夏 克
Shylock
展开
-
PostgreSQL企业应用——Rust三剑客(pgx)
Rust是一门系统编程语言,专注于安全,尤其是并发安全,支持函数式和命令式以及泛型等编程范式的多范式语言。Rust在语法上和类似C++,但是设计者想要在保证性能的同时提供更好的内存安全。Rust已经逐步开始进入企业应用和操作系统的内核开发,之前听过几次openEuler的双周会,一些内核模块已经或即将使用Rust进行开发,虽然一些现代的开发语言现在还很难撼动传统的C/C++ 地位。但是像go和Rust已经开始在一些领域里面崭露头角。go的目标是取代C,而Rust则号称是C++ 的最佳接班人。原创 2022-09-02 15:54:10 · 1191 阅读 · 0 评论 -
libpqxx (PostgreSQL C++ API)——安装使用
相对于ODBC和libpq接口libpqxx做了更高度的封装,但libpq使用的编译器版本和支持C++标准比较激进。从开发效率上应该比ODBC和libpq有较大提升,但性能方面有待于进一步的测试。原创 2022-08-16 11:59:28 · 6760 阅读 · 0 评论 -
postgresql 15源码浅析(5)—— pg_control
pg_control保存了4类信息,分别是postgres集簇的初始化信息、系统信息、checkpoint信息、recovery信息。多种服务端工具会对pg_control进行查看或者修改。本文从代码的角度梳理了对pg_control读写相关的代码,希望能对大家了解postgres控制文件有所帮助。...原创 2022-08-16 11:57:41 · 897 阅读 · 0 评论 -
MogDB/openGauss使用Golang接口
MogDB/openGauss使用Golang接口原创 2022-08-16 11:50:47 · 682 阅读 · 0 评论 -
postgresql 15源码浅析(4)—— Hello PostgreSQL 15
这期主要是想填个坑,在上期中留下了一个pg_reload_conf()处理流程,找到代码看了一下,发现这块只有寥寥几行,该函数就是向postmaster进程发了一个SIGHUP信号,后续流程就是上期中的信号“1”处理流程,但pg_reload_conf()是一个内建函数,那么内建函数的调用过程涉及sql的接收、解析、执行等等,这个包含了sql引擎的一部分流程,是比较核心的内容,现阶段我还没这个能力去把这部分讲清楚,所以先从简单的开始,先介绍如何写一个内建函数,通过一个内建函数例子来学习和梳理内建函数的实现过原创 2022-06-04 21:09:53 · 610 阅读 · 0 评论 -
postgresql 15源码浅析(3)—— 信号“1“的使命
这篇实际上是要说说配置文件的加载问题,有些标题党了。准确说是如何在线加载配置,用户通过向postgres进程发送信号SIGHUP触发服务端完成配置的刷新。这部分看下来代码还是有点多,挑选几段我认为比较重要的片段和大家一起学习一下。原创 2022-05-29 21:17:41 · 419 阅读 · 0 评论 -
postgres 15源码浅析(2)—— psql新功能\dconfig
摘要翻了一下PostgreSQL 15的release文档,发现psql也有了10余项的升级,一起来撸一下其中一项新的功能的代码——\dconfig.环境及代码环境我这里使用的是本机win11 的WSL ubuntu。代码代码用的是最新的master分支,应该和15beta差不多吧。psql代码结构psql的代码结构很简单,基本就是启动之后在MainLoop函数中等待接收处理命令行的字符输入(细节以后可以慢慢撸,今天主要看看\dconfig这个命令是如何处理),接收到命令后做简单原创 2022-05-25 18:54:58 · 337 阅读 · 0 评论 -
postgresql 15源码浅析(1)—— postgres中的1号数据库
在创建数据库集簇后,该集簇中默认会包含三个系统数据库template1、template0和postgres,其中template0和postgres都是在初始化过程中从template1复制出来的。这个理论大家想必不是那么陌生,但是template1又是从哪里来的呢?带着这个问题,下文将从代码的角度探究postgres中1号数据库的由来。原创 2022-05-22 20:37:54 · 911 阅读 · 0 评论 -
postgres使用PL/Python导出表到csv
摘要在PostgreSQL的标准发布中当前有四种过程语言可用: PL/pgSQL、 PL/Tcl、 PL/Perl以及 PL/Python。 还有其他过程语言可用,但是它们没有被包括在核心发布中。本文主要介绍使用PL/Python过程语言实现一个将表导出到csv文件的函数。环境准备需要重源码编译postgres,目的是启用PL/Python服务端编程语言。要编译PL/Python服务器端编程语言, 你需要一个Python的安装,包括头文件和distutils模块。最低的版本要求是Python 2原创 2022-05-10 16:41:27 · 952 阅读 · 0 评论 -
使用vscode调试postgres源码
之前看过关于使用eclipse搭建postgres开发环境的帖子,对于一个曾经的eclipse CDT忠实用户还是很亲切的,不过由于vscode的出现,可能很多像我这样eclipse阵营的小伙伴陆续开始转向vscode了。这里不讨论IDE的优劣,只给大家提供一个搭建postgres开发调试环境的选择,当然,对于linux开发人员来说,直接使用gdb才是正道。原创 2022-05-10 10:56:46 · 1356 阅读 · 0 评论 -
openGauss/MogDB WDR报告详解
摘要WDR(Workload Diagnosis Report)负载诊断报告,是openGauss的工作负载诊断报告,常用于判断openGauss长期性能问题。WDR报告基于两次不同时间点系统的性能快照数据,生成这两个时间点之间的性能表现报表。开启WDR快照参数简介enable_wdr_snapshot参数说明: 是否开启数据库监控快照功能。该参数属于SIGHUP类型参数,请参考表GUC参数分类中对应设置方法进行设置。取值范围: 布尔型on: 打开数据库监控快照功能。off: 关闭数原创 2022-05-02 21:15:42 · 1392 阅读 · 0 评论 -
MogDB/openGauss 教程 浓缩版
概述MogDB是EnMotech openGauss DataBase Enterprise Edition的缩写,是云和恩墨基于openGauss开源数据库进行定制、推出的企业发行版。它将围绕高可用、安全、自动化运维、数据库一体机和SQL审核优化等企业需求,解决企业用户落地。其核心价值是易用性、高性能、高可用等和全天候的企业支持。MogDB与openGauss的关系MogDB是在openGauss开源内核的基础上封装和改善的对于企业应用更加友好的企业级数据库。在openGauss内核的基础上,M原创 2022-04-02 17:24:19 · 2186 阅读 · 0 评论 -
OpenGauss/MogDB调用C FUNCTION 范例
摘要之前写过一篇关于postgresql自定义函数实现,通过contrib模块进行扩展的帖子,今天和恩墨工程师进行了一些交流,在MogDB中也可以实现同样的功能,原以为需要完整的OpenGauss的源码才能完成,但在恩墨工程师的指点下,了解到,通过既有官网版本的安装包就可以进行插件开发。而且,使用postgres的C FUNCTION要比开发插件更加容易些。也感谢恩墨专家提供的线索和思路👍 👍环境准备安装MogDB参考官方文档,写的已经很详细了。服务器环境本地虚拟机 centos 7.9原创 2022-04-02 16:18:58 · 1414 阅读 · 0 评论 -
OpenGauss 3.0.0 (Lite 版)轻量版部署
背景openGauss 3.0.0 版本是openGauss社区继2.0.0之后发布的又一个Release版本,版本维护生命周期为3.5年。3.0.0版本在高性能、高可用、高安全、高智能、工具链等方面都有持续创新和突破。3.0.0版本除了包含企业版外同时发布了openGauss社区首个轻量版(Lite 版)。今天是openGauss 3.0.0版本发布的第一天,忍不住搞一下试试~~实验环境Architecture: aarch64CPU op-mode(s):原创 2022-04-02 12:52:10 · 2934 阅读 · 0 评论 -
使用benchmarksql对PostgreSQL进行TPC-C测试
文章目录安装benchmarksql安装JAVA相关管径系统环境配置benchmarksql导入测试表执行测试安装benchmarksql下载https://sourceforge.net/projects/benchmarksql/解压tar -zxvf benchmarksql-5.0.zipcd benchmarksql-5.0/安装JAVA相关管径sudo apt install openjdk-11-jdksudo apt install ant系统环境配置benc原创 2022-03-20 19:00:09 · 1566 阅读 · 0 评论 -
python通过JayDeBeApi使用JDBC链接postgres
文章目录环境准备测试数据测试验证环境准备获取JayDeBeApi方法一:pip install JayDeBeApi方法二:[admin@localhost ~]$ git clone https://github.com/baztian/jaydebeapi.gitCloning into 'jaydebeapi'...remote: Enumerating objects: 1710, done.remote: Counting objects: 100% (123/123), do原创 2022-02-25 23:51:00 · 1396 阅读 · 0 评论 -
使用Python-psycopg访问postgres、openGauss、MogDB
文章目录摘要获取安装包安装驱动测试FQA摘要Psycopg是一种用于执行SQL语句的PythonAPI,可以为PostgreSQL、GaussDB数据库提供统一访问接口,应用程序可基于它进行数据操作。Psycopg2是对libpq的封装,主要使用C语言实现,既高效又安全。它具有客户端游标和服务器端游标、异步通信和通知、支持“COPY TO/COPY FROM”功能。支持多种类型Python开箱即用,适配PostgreSQL数据类型;通过灵活的对象适配系统,可以扩展和定制适配。Psycopg2兼容Uni原创 2022-02-25 20:46:14 · 1940 阅读 · 0 评论 -
postgresql自定义函数实现,通过contrib模块进行扩展
PostgreSQL从设计上是可扩展的,从用户的角度可以通过四种方式对PostgresSQL进行扩展原创 2022-02-18 21:28:25 · 2384 阅读 · 0 评论 -
源码编译安装postgresql
文章目录一、获取源代码二、编译&安装三、创建用户四、环境设置五、创建数据库六、启动七、链接postgres一、获取源代码一般可以通过下载源码压缩包或者从GitHub上clone的方式获取源码方式一:下载源码包:https://www.postgresql.org/download/.下载后解压即可tar -zxvf postgresql-14.2.tar.gz方式二:从GitHub上clonegit clone https://github.com/postgres/po原创 2022-02-17 15:53:53 · 3157 阅读 · 2 评论 -
C++使用otl4通过unixodbc连接postgres 完整例子
C++使用otl4通过unixodbc连接postgres标题的信息量好大!是的,这不是心血来潮拿出来耍一耍的。这是改编自一个真实的项目。之前写过的连接数据库的应用也不算少了,但是用这么长的技术栈还真是头一回。故事是这样的:原有系统的数据库应用是基于OCI的,比较传统的架构,虽然OCI用起来不是那么方便,但是基本上在应用层使用的都是封装后的OCI接口,相对比较友好;后期使用了otl4,otl...原创 2020-05-06 15:38:27 · 1770 阅读 · 0 评论 -
Ubuntu 安装 PostgreSQL 教程
Ubuntu 安装 PostgreSQL使用 apt-get 安装 PostgreSQL:sudo apt-get updatesudo apt-get install postgresql postgresql-client安装完毕后,系统会创建一个数据库超级用户 postgres,密码为空。切换postgres用户$ sudo -i -u postgrespostgre...原创 2020-05-01 08:42:16 · 769 阅读 · 0 评论