摘要:
这里需要关注的名词有:relation、fork、filenode、segment等。 传统方式上,数据库群集使用的配置文件和数据文件一起存储在群集的数据目录中,通常称为 PGDATA。PGDATA 的常用位置是 /var/lib/pgsql/data。 PGDATA 目录包含几个子目录和控制文件。 阅读全文
随笔分类 - postgres
PostgreSQL的TOAST表
2025-01-14 18:34 by abce, 39 阅读, 收藏, 编辑
摘要:
TOAST 管理代码可识别四种不同的策略,用于在磁盘上存储可以被TOAST 的列。 仅当要存储在表中的行值宽于TOAST_TUPLE_THRESHOLD字节(通常为2kB)时,才会触发TOAST管理代码。TOAST代码将压缩和/或移动字段值out-of-line,直到行值短于TOAST_TUPLE_ 阅读全文
PostgreSQL 的表空间
2025-01-09 14:41 by abce, 46 阅读, 收藏, 编辑
摘要:
PostgreSQL 中的表空间允许数据库管理员在文件系统中定义存储代表数据库对象的文件的位置。表空间一旦创建,就可以在创建数据库对象时通过名称来引用。 通过使用表空间,管理员可以控制 PostgreSQL 的磁盘布局。这至少在以下两个方面很有用。首先,如果初始化群集的分区或卷空间耗尽且无法扩展,可 阅读全文
揭开 PostgreSQL 默认权限的神秘面纱
2024-08-13 13:24 by abce, 253 阅读, 收藏, 编辑
摘要:
alter default privileges 命令允许我们设置将应用于将来创建的对象的权限。需要注意的是,这不会影响分配给现有对象的权限;默认权限可以全局设置在当前数据库上,或者指定的 schema 上。 数据库使用者对默认权限的行为有很多误解,我经常听到一些抱怨,说即使为特定 schema 分 阅读全文
Debian 11 上安装 postgresql
2024-07-22 13:35 by abce, 201 阅读, 收藏, 编辑
摘要:
1.增加官方的Repository 手动配置官方的 apt Repository # Import the repository signing key: $ sudo apt install curl ca-certificates $ sudo install -d /usr/share/pos 阅读全文
使用 pg_waldump 和 pg_walinspect 查看 WAL 文件的内容
2024-07-10 15:55 by abce, 353 阅读, 收藏, 编辑
摘要:
pg_waldump 支持 12 及以上版本;pg_walinspect 支持 15 及以上版本。 pg_waldump pg_waldump 可从 WAL 文件段中展示人类可读的信息。 pg_waldump 使用要求 ·将 wal_level 设置为 "replica" 或更高级别;在 RDS 上 阅读全文
psql 中使用 gexec
2024-05-24 09:48 by abce, 63 阅读, 收藏, 编辑
摘要:
对于 PostgreSQL 高级用户来说,自动执行重复步骤变得越来越有必要,而 gexec 可以提供帮助。本文将描述如何使用 || 操作符和 gexec 命令来避免工作中不必要的重复工作。 psql是一款非常实用的工具,具有很多有用的功能。一个常见的模式是需要用不同的参数运行相同的命令。通常情况下, 阅读全文
向量数据库简介
2024-01-29 10:52 by abce, 162 阅读, 收藏, 编辑
摘要:
学习一下什么是向量数据库,原文地址:https://www.percona.com/blog/an-introduction-to-vector-databases/ 设想一下,地球的南半球即将进入冬季,而你想要去 Patagonia 旅行,因此你需要买几件舒适的衣服。你打开谷歌浏览器,并在搜索框输 阅读全文
为什么"idle_session_timeout"的设置可能是个坏主意?
2024-01-15 12:24 by abce, 1261 阅读, 收藏, 编辑
摘要:
PostgreSQL 14 引入了参数 idle_session_timeout ,新参数让 DBA 可以轻松清除所有空闲连接。问题在于它可能造成的附带损害。 导致与连接有关的故障的常见因素 1. 不受限制的连接设置: max_connections 和每个用户限制等连接设置会使系统遭受恶意拒绝服务 阅读全文
PostgreSQL的参数:用户应了解的作用域和优先级
2023-09-04 16:26 by abce, 560 阅读, 收藏, 编辑
摘要:
PostgreSQL允许用户在不同的作用域设置参数,同一个参数可以在不同的地方用不同的方法设置。这可能会产生冲突。有人可能想知道为什么某些更改没有生效,因此了解/收集设置的作用域和优先级很重要。 这里将试图列出用户可用的选项,并按照优先级递增的顺序排列。目的是为用户提供一个高层次的视角。 1.编译时 阅读全文
如何测量网络对PostgreSQL性能的影响
2023-07-22 19:50 by abce, 213 阅读, 收藏, 编辑
摘要:
在PostgreSQL数据库和应用服务器之间,通常会有许多基础设施层。最常见的有连接池、负载均衡器、路由器、防火墙等。我们经常会忘记或想当然地认为网络hop以及其对整体性能造成的额外开销。但在很多情况下,这可能会导致严重的性能损失和整体吞吐量下降。 如何检测和测量影响 目前还没有一种简单的机制来测量 阅读全文
PostgreSQL中一个索引的三种不同的扫描类型: 位图、索引和仅索引
2023-07-17 12:43 by abce, 671 阅读, 收藏, 编辑
摘要:
性能是数据库管理系统的基本要素之一。性能低下意味着查询时间过长和前端响应时间过高。提高性能的最有效方法之一是为表列建立适当的索引。索引可以节省大量的数据访问时间,并引导查询以最快的方式收集结果。在PostgreSQL中,有不同的方法可以利用索引来产生最有效的计划。 本文中,我们将回顾以下三种不同的索 阅读全文
PostgreSQL在线修改数据类型
2023-07-12 22:32 by abce, 473 阅读, 收藏, 编辑
摘要:
修改大表中列的数据类型几乎总是一件痛苦的事情。由于alter table语句获得的排他锁,它可能会锁定整个表的读写。本文中,我们将探讨如何以最小的影响、最少的锁来执行这样的操作。它适用于任何数据类型;让我们以int到bigint的变化为例。 示范用例 假设我们有一个有许多列的表。其中一列的类型是整型 阅读全文
LIKE比较查询优化
2023-06-15 15:04 by abce, 156 阅读, 收藏, 编辑
摘要:
在执行检索时,有两种方式可以使用到索引:1.单值查询,比如where id=22.范围查询,比如where id between 2 and 20、where id<20 当使用like来检索文本的开始位置,实际上是一种范围查找。事实上,下面的两个查询是等价的: SELECT ... FROM .. 阅读全文
Oracle、PostgreSQL、SQL Server中的NULL和空字符串的比较
2023-05-11 11:44 by abce, 481 阅读, 收藏, 编辑
摘要:
什么是NULL?根据ANSI SQL-92规范,null既不是空字符串(对于字符或日期时间数据类型),也不是零值(对于数字数据类型)。为了确保所有null被统一处理,ANSI SQL-92规范规定所有数据类型的null必须是相同的。对于给定记录,当属性没有要存储的数据时,它由SQL值NULL表示。 阅读全文
PostgreSQL索引可能带来的负面影响和产生的开销
2023-04-29 10:07 by abce, 430 阅读, 收藏, 编辑
摘要:
索引通常被认为是SQL性能调优的灵丹妙药,PostgreSQL针对不同用例提供了不同类型的索引。经常看到许多关于“调优"的文章和讨论,讨论如何创建新索引来加快SQL的速度,但很少有人讨论删除它们。人们发现,创建越来越多索引的冲动在许多系统中造成了严重的破坏。很多时候,为了整个系统的利益,在考虑任何新 阅读全文
数据库损坏指南(2)--B-Tree Index损坏
2023-01-22 12:58 by abce, 309 阅读, 收藏, 编辑
摘要:
在理解PostgreSQL索引损坏之前,要理解PostgreSQL是如何实现b-tree索引的。 B-tree索引结构 PostgreSQL中,B-tree索引结构是根据Lehman和Yao的高并发B-tree算法实现的。逻辑上,B-tree索引的层次结构由四种类型的页组成: ·元数据页 ·根页 · 阅读全文
数据库损坏指南(1)--概述
2023-01-20 09:31 by abce, 148 阅读, 收藏, 编辑
摘要:
一、概念与类比 对于数据库,它是关于存储在磁盘上的数据的格式。当数据库产品(如PostgreSQL、MySQL或MongoDB)对磁盘进行写操作时,会使用某种格式来执行。当从磁盘读取数据时,数据库产品期望磁盘上数据的格式相同;磁盘上的任何部分数据格式不合适就是损坏。 总的来说,损坏只是一种不恰当的格 阅读全文
Vacuum统计信息查看
2023-01-19 15:10 by abce, 97 阅读, 收藏, 编辑
摘要:
查看当前schema下所有表的vacuum历史 select n.nspname as schema_name, c.relname as table_name, c.reltuples as row_count, c.relpages as page_count, s.n_dead_tup as 阅读全文
PostgreSQL升级Extensions
2023-01-15 22:06 by abce, 701 阅读, 收藏, 编辑
摘要:
PostgreSQL允许用户安装和使用扩展来为他们的数据库添加额外的功能。 在本文中,将以pg_stat_monitor扩展为例,介绍安装和升级PostgreSQL扩展的过程。pg_stat_monitor是一个PostgreSQL扩展,提供对数据库活动的实时监视和分析。它允许用户监视和跟踪各种性能 阅读全文