数据库修仙炼气篇二——postgresql基本操作与基本对象

PostgreSQL之整体架构 PostgreSQL作为一个单机的关系型数据库,与单机Oracle的架构是比较相似的,与MySQL的InnoDB引擎也比较像。据我目前的了解,单机数据库的整体架构都差不太多,都是包含一个主的进程,一些辅助进程,以及一个大的共享内存池。下面我们具体学习一下PG架构里面的这些部分。 阅读详情

postgresql基本操作与基本对象

  • postgresql是一个C/S架构的大型软件,提供数据存储索引和查询的功能。postgresql分为客户端和服务端,客户端叫作psql,或者其他语言基于odbc,jdbc,libpq开发的客户端程序,服务端叫作postgres,需要监听ip和端口,通过tcp网络协议与客户端进行通信。

  • 在网络通信之上,采用sql作为数据通信协议,支持增删改查。sql针对的是结构化数据,因而要先有数据结构,这里其实就是表。为了对表进行隔离,由将表划分到不同的数据库里。

  • 客户端和服务端通信需要验证,验证采用用户名和密码的方式。

  • 因而客户端想要访问数据需要服务器ip、服务器端口、用户名、密码、数据库名称,而要取出一条数据,则还需要表名称、sql语句

postgresql外部对象

对于客户端来说,通过库–>表–>sql的方式操作数据。

  • 数据库

    一个postgres可以有多个数据库,数据库是表的集合,数据库名称是客户端访问的标识之一。

  • 表

    结构相同的数据放在一起就是一张表,表有多行多列。(一般表的列数在创建表时确定,行数则会不断增加或减少。)表的数据最终会写入到文件里。

  • 视图

    视图是表的一部分在内存中的缓存,并不会写入文件。

数据最终以表的形式写入到文件里,每一个数据库有一个目录,每一张表是一个文件或多个文件(表的数据小于1gb时是一个文件,大于1gb会按照1gb文件拆分)。

而对于服务端来说则根据oid–>文件的方式来操作数据。

  • oid

    每个数据库都有自己的oid,不同数据库的oid不同。

    每张表都有自己的oid,相同数据库的表的oid不同。

  • 文件

    每个数据库以oid为名创建目录,每张表在数据库oid目录下以oid创建文件。

基操

  • 如何定位student表存储在什么位置

    先用psql连接到数据库。

    test=#
    test=# SELECT pg_relation_filepath('student');
     pg_relation_filepath
    ----------------------
     base/16384/16387
    (1 row)
     
    test=#
    
  • 如何查找数据库对应的oid

    --注意大小写敏感,要用小写
    test=# select oid,datname from pg_database where datname='test';
      oid  | datname
    -------+---------
     16384 | test
    (1 row)
    
  • 如何查找数据库有多少张表

    test=# \d
    test=# \d+
    
【数据库学习】Postgres(PG)概览与PostgreSQL基本语法 -数组可以定义长度、也可以不给。也可以定义多维数组。但定义长度和多维数组在实际使用中是无效的。如下面两种定义是等价的。类似于C的结构体, 阅读详情

相关推荐

ffmpeg在windows的安装、合并、切片、.m4s、.m3u8处理

自己处理视频,我用的工具是 ffmpeg,因为涉及到.m3u8格式和.m4s格式的一些操作。ffmpeg的介绍我就不多说了,这里是它的官网地址: https://ffmpeg.org/ ,这里是文档: https://ffmpeg.org/documentation.html (看的头大,没咋看下去)...

一只爱吃糖的小羊 2689

PostgreSQL 服务端COPY和客户端COPY - 暨PG有哪些服务端操作接口

标签 PostgreSQL , copy , 服务端接口 , 客户端接口 背景 有些朋友在使用COPY命令对数据库进行数据导入导出时,可能会发现COPY到文件时,怎么和想象的不一样,COPY到文件并没有落到指定的地方。实际上原因是COPY命令是服务端命令,COPY到某个文件实际上是COPY到数据库所在的服务器上面了,而不是客户端所在的服务器。 Ora...

weixin_34025151的博客 787

人形机器人核心架构梳理

定义:机器人是能进行运动、操纵或定位且具有一定程度自主能力的可编程执行机构。按外在形态分类可分为传统机器人和人形机器人,其中人形机器人是一种利用人工智能和机器人技术制造的具有类似人类外观和行为的机器人。

小海聊智造 1万+

【PostgreSql基础语法 】1、增删改查、where、limit、like模糊查询

postgresql基础语法知识

大龄烤红薯的博客 3397

【图神经网络】从0到1使用PyG手把手创建异构图

异构图的准确定义如下:异构图(Heterogeneous Graphs):一个异构图GGG有一组节点V=v1,v2,...,vnV=v_1,v_2,...,v_nV=v1​,v2​,...,vn​和一组边E=e1,e2,...,emE=e_1,e_2,...,e_mE=e1​,e2​,...,em​组成,其中每个节点和每条边都对应着一种类型,用TvT_vTv​表示节点类型的集合,TeT_eTe​表示边类型的集合,一个异构图有两个映射函数,分别将每个节点映射到其对应的类型ϕv:V→Tv\phi_v:V\rig

小哲的博客 7833

ADNI数据集下载(详细)

刚刚接触到这个数据集的时候比较头疼,用了好长的时间才把下载过程和预处理过程弄明白。需要发送电子邮件给官方平台,收到回信后才能够下载到数据集。 1、ADNI账号注册 第一步:搜索百度打开ADNI 第二步,点击ADTA&SAMPLES 第三步:一直将鼠标往下拉 点击ADNI,进入里面填写信息。需要填写的信息还是挺多的,耐心填写,再等到邮件回复就可以了 2、ADNI数据集下载 登录申请的邮...

蜗牛遥遥 3万+

PostgreSQL中的数据相关的基础操作(增删改查)

PostgreSQL增删改查操作(SELECT/UPDATE/DELTE/INSERT)

SQLplusDB的小院 3463

告别图像畸变:手把手教你用HALCON的`gen_image_to_world_plane_map`做高精度视觉测量

本文详细解析了HALCON的`gen_image_to_world_plane_map`算子在工业视觉测量中的应用,通过精确的几何变换消除透视畸变,提升测量精度。文章涵盖相机标定、世界坐标系建立、实战应用及性能优化,适用于液晶屏质检、金属板检测等场景,帮助工程师实现高精度视觉测量。

weixin_28718487的博客 424

PostgerSQL中提供常用数据处理函数

当然在实际开发过程中,可能会遇到比上述内容更加复杂的数据处理操作,我们需要根据实际的需求来确定使用什么样的处理函数来对数据进行使用。例如可以对数据做一些格式化的处理操作等等。

huang714的专栏 839

不用公网IP!用Ollama+Chatbox搭建家庭AI助手(内网穿透方案对比)

本文详细介绍了如何利用Ollama和Chatbox在家庭局域网中搭建本地AI助手,无需公网IP即可实现内网穿透。通过对比不同穿透方案(如Tailscale、FRP等),提供最优配置建议,帮助用户低成本部署隐私安全的家庭AI系统,适用于智能家居、儿童教育等多种场景。

weixin_26765287的博客 462

把浮点数这件小事讲清楚:ABAP 7.51 里 Open SQL 与 ABAP CDS 的 FLTP 新玩法与避坑指南

ABAP浮点数计算的风险与应对 摘要:ABAP项目中的浮点数(FLTP)在跨平台计算时存在误差风险,同一逻辑在不同数据库平台可能产生细微差异。ABAP 7.51新增了两项关键能力:1)Open SQL和ABAP CDS中可为AVG函数指定结果类型,避免默认返回FLTP;2)ABAP CDS提供FLTP_TO_DEC转换函数。但需注意这些转换仍可能存在平台相关差异,且FLTP_TO_DEC会截断而非四舍五入小数位。开发者在涉及金额、数量等关键业务计算时,应明确数值语义并设计容错机制。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 216

数据库修仙炼气篇一——postgresql架构

pgsql架构 整体模式 pgsql采用C/S架构(客户端/服务端)模式。应用层通过INET或者Unix Socket利用既定的协议与数据库服务器进行通信。 pgsql把客户端称为前端,把服务端称为后端。前端通过调用libpq来与后端通信。 后端由多个进程组成,前端发送网络数据报文(查询请求)到后端,后端解析请求后回复相应的报文。

growdu的网络博客 3968

高级电机控制场景实例:基于Simulink的永磁同步电机基于Luenberger观测器的弱磁控制仿真

本文基于Simulink实现表贴式永磁同步电机(SPMSM)的Luenberger观测器弱磁控制仿真,通过构建“观测-弱磁-控制”协同逻辑,突破传统矢量控制的基速限制。利用线性化模型设计观测器实时估计电流与磁链,结合电压极限约束动态注入负d轴电流,实现转速扩展至12000rpm(4倍基速),弱磁区电流THD低于3%,动态响应时间小于5ms,验证了高速运行下系统稳定性与鲁棒性。附完整建模步骤、MATLAB函数代码及性能分析,适用于电动汽车、机床等高速驱动场景,为高级电机控制提供可复现的技术范式。

amy_mhd的博客 32

数据库修仙炼气篇八——postgresql之IO调优

检查点是数据库的关键行为,同时也是IO敏感的;其保证了数据库的一致性状态,定期执行检查点是很重要的,确保数据变化持久保存到磁盘中并且数据库的状态是一致的。不当的检查点配置会导致IO性能问题。我们需要关注检查点的配置,确保没有任何IO的尖刺(这同样也取决于磁盘性能的好坏,以及数据文件的组织)。统自动执行checkpoint之间的最大时间间隔。系统默认值是5分钟,这个值可以在压测过程中调大,尽量避免执行checkpoint争抢IO。

growdu的网络博客 1744

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

数据库修仙炼气篇十——repmgr

repmgr repmgr用于管理 PostgreSQL 服务器集群内的复制和故障转移。repmgr 支持并增强了 PostgreSQL 的内置流复制,它提供了一个单一的读/写主服务器和一个或多个只读备用服务器。 repmgr 流复制管理工具对 PostgreSQL 集群节点的管理是基于分布式的管理方式。集群每个节点都具备一个 repmgr.conf 配置文件,用来记录本节点的 ID、节点名称、连接信息、数据库的 PGDATA 目录等配置参数。在完成参数配置后,就可以通过 repmgr 命令实现对集群节点的

growdu的网络博客 2019

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

数据库修仙炼气篇三——postgresql进程之BgWriter

BgWriter Bgwriter是一个Background Writer进程的简称,Bgwriter会定时将缓存中一些已经更改的数据(脏缓冲区)写入到磁盘。 BgWriter是postmaster通过fork创建的子进程。 源码分析 启动 主进程fork子进程 #mermaid-svg-MeTM8vpGMQzNuLFf {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-

growdu的网络博客 1047

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

数据库修仙炼气篇六——walsender

pg_walsender 交互接口 全局变量 /* global state */ extern PGDLLIMPORT bool am_walsender; // 是否是walsender进程 extern PGDLLIMPORT bool am_cascading_walsender; // 是否是级联walsender extern PGDLLIMPORT bool am_db_walsender; // 是否连接到数据库 extern PGDLLIMPORT bool wake_wal_sender

growdu的网络博客 431

数据库修仙炼气篇七——replication

pg_replication 基本概念 逻辑复制 逻辑复制是将数据重新执行一次insert、update或delete。逻辑复制则允许在数据层面复制,并在安全性上提供更细粒度的控制。 流复制(物理复制) 实现方式是将wal日志中记录的内容按照确切的块地址逐字节的拷贝到备库,因此主备之间数据分布是一致的,这意味着在主备机器上,同一条记录的ctid是相同的。 逻辑解码 逻辑解码是提取数据库表的所有永久修改到一个连贯的、容易理解的格式 (不需要详细的数据库内部状态知识就可以解读)的过程。 复制槽

growdu的网络博客 1484

数据库修仙炼气篇十一——postgresql 存储管理

pgsql 存储管理 内存管理 包括共享内存、本地内存、内存上下文、缓冲区的管理。 共享内存 共享内存中存储了所有进程的公共数据,例如锁变量、进程通信状态、共享缓冲区中的页面块等。 本地内存 为每个后台进程所专有,是他们的工作区域,存储着属于该进程的Cache(高速缓存)、事务管理信息、进程信息等 内存上下文 内存上下文(MemoryContext)用于统一管理内存分配和回收。 缓冲区 磁盘中的文件块读入内存,被存放在缓冲区中, 称之为页面块或缓冲块。一个标准缓冲块大小为8K。PG设立了共享

growdu的网络博客 1496

数据库修仙炼气篇四——WalWriter

WalWriter 预写式日志WAL机制是对数据文件的修改必须是只能发生在这些修改已经记录到日志之后,即先写日志再写数据。 WalWriter进程负责定期从WAL缓冲区写出日志,并确定写出日志的起点和终点来调用XlogWriter将日志写入到磁盘。 参数配置 wal_level 控制wal存储的级别。wal_level确定有多少信息被写入到WAL。默认值是replica,它添加了WAL归档信息,包括只读服务器(流复制)所需的信息。还可以将其设置为minimal,即只写入从崩溃或立即关闭中恢复所需的信息。

growdu的网络博客 660

数据库修仙炼气篇九——postgresql流复制同异步分析

postgresql流复制同异步详解。

growdu的网络博客 593

数据库修仙炼气篇五——pg_walreceiver

pg_walreceiver 启动流程 启动receiver进程 #mermaid-svg-pZwpfiroRFQyO6to {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-pZwpfiroRFQyO6to .error-icon{fill:#552222;}#mermaid-svg-pZwpfiroRFQyO6to .error-text{fill:#552222;str

growdu的网络博客 524

数据库修仙炼气篇十二——数据库数据完整性问题(块折断)

数据库数据完整性问题(块折断) 数据库保证数据库完整性(解决块折断问题)当前主要有如下三种方式: 操作日志加double write机制(mysql采用该机制); 操作日志加full page write机制(postgresql同时采用这两种机制); 混合方式,既支持操作日志加double write,又支持操作日志加full page write(openguass采用该机制); 基本概念 块折断 数据库在将数据写入磁盘时一般是按page写入磁盘的,而page的大小一般与操作系统的文件块

growdu的网络博客 1023

postgresql单条和多条数据的增、删、改、查,以及其他一些用法

postgresql单条和多条数据的增、删、改、查,以及其他一些用法

Ling_Ze的博客 2103

PostgreSQL学习笔记二:PostgreSQL的系统架构

总之,PostgreSQL 的架构设计使其成为一个功能强大、可靠且可扩展的数据库管理系统。它的客户端/服务器架构、存储引擎、查询处理、并发控制和高可用性等方面的特点,使其适用于各种应用场景,从小型项目到大型企业级应用。多版本并发控制(MVCC)

软件行业技术文化交流。 2249

PostgreSQL11 | postgresql函数

本文根据原书《PostgreSql11 从入门到精通》(清华大学出版社)第6章总结整理,为提问与解答可以帮助更多人,本博客模拟GitHub的issue方案,所以私信已关,有问题请在评论区直接指正与提问,允许转发、复制或引用本文章,必须遵守开源法则注释来源与作者,感谢您的阅读。

红星编程实验室 1万+
上一篇: 数据库修仙筑基篇九——corosync-qdevice详解
下一篇: 数据库修仙炼气篇九——postgresql流复制同异步分析
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我在数据库世界里修仙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值