首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Postgresql源码分析

    Postgresql源码(8)重温BufferDesc

    desc结构中的Buffer header lock没有单独的变量,保存在state中的第22位。 #define BM_LOCKED (1U << 22) /* buffer header is locked */ #define BM_DIRTY (1U << 23) /* data needs writing */ #define BM_VALID (1U << 24) /* data is valid */ #define BM_TAG_VALID (1U << 25) /* tag is assigned */ #define BM_IO_IN_PROGRESS (1U << 26) /* read or write in progress */ #define BM_IO_ERROR (1U << 27) /* previous I/O failed */ #define BM_JUST_DIRTIED (1U << 28) /* dirtied since write started */ #define BM_PIN_COUNT_WAITER (1U << 29) /* have waiter for sole pin */ #define BM_CHECKPOINT_NEEDED (1U << 30) /* must write for checkpoint */ #define BM_PERMANENT (1U << 31) /* permanent buffer (not unlogged,* or init fork) */

    37360编辑于 2022-05-12
  • 设置 PostgreSQL 以运行集成测试

    在本文中,我将解释如何设置PostgreSQL进行测试并讨论一些需要避免的常见陷阱。隔离是首要目标在我们深入细节之前,让我们先定义我们的目标:隔离——我们希望确保每个测试都是隔离运行的。 至少,这意味着每个测试都应该有自己的数据库。这可确保测试不会相互干扰,并且您可以并行运行测试而不会出现任何问题。性能– 我们希望确保为测试设置 PostgreSQL 的速度很快。 然而,在处理使用 PostgreSQL 特定功能的代码路径时,它很快就会成为问题。 在我们的例子中,由于使用了各种 PostgreSQL 扩展、PL/pgSQL 函数和其他 PostgreSQL 特定的功能,我们无法使用 SQLite 进行测试。 使用pg_tmp我们尝试的另一种方法是使用pg_tmp.pg_tmp是一个为每个测试创建临时 PostgreSQL 实例的工具。理论上pg_tmp是一个很好的解决方案。它允许完全隔离测试

    73310编辑于 2024-05-08
  • 来自专栏Postgresql源码分析

    Postgresql源码(8)Xlog初始化

    this value is specified without units, it is taken as WAL blocks, that is XLOG_BLCKSZ bytes, typically 8kB XLogRecPtr lastBackupStart; /* * WAL insertion locks. */ 【日志插入的锁,这里是个分区锁,有NUM_XLOGINSERT_LOCKS 8

    50020编辑于 2022-07-16
  • 来自专栏ITCoder

    如何在 CentOS 8 上安装 Postgresql

    在这篇指南中,我们将会讨论如何在 CentOS 8 上安装 PostgreSQL 数据库服务器。在选择你要安装哪个版本之前,请确认你的应用支持它。 二、 在 CentOS 8 上安装 Postgresql 在写这篇文章的时候,有两个 PostgreSQL 服务器的版本可用来安装:9.6 和 10.0 。 服务器版本 10,是默认的版本: CentOS-8 - AppStream Name Stream Profiles Summary postgresql OK 启动 PostgreSQL 服务,并且启用开机启动 PostgreSQL 服务。 without a password host all jane 192.168.1.134 trust 六、总结 CentOS 8

    7.8K22发布于 2020-05-11
  • 来自专栏开源部署

    如何在RHEL 8中安装PostgreSQL

    在本文中,我们将详述如何在RHEL 8 Linux发行版中安装,保护和配置PostgreSQL数据库管理系统。 安装PostgreSQL包 1. PostgreSQL包含在RHEL 8的默认存储库中,可以使用以下dnf命令进行安装,该命令将安装PostgreSQL服务器10,库和客户端二进制文件。 # dnf install @postgresql 在RHEL 8中安装PostgreSQL 注意:要在RHEL 8系统上安装PostgreSQL 11软件包,您需要安装PostgreSQL RPM存储库 密码验证 8.现在重新启动Postgres服务以应用配置中的最近更改。 在本指南中,我们展示了如何在RHEL 8中安装,保护和配置PostgreSQL数据库管理系统。请记住,您可以通过下面的反馈表给我们反馈。

    7.5K20编辑于 2022-08-18
  • 来自专栏AustinDatabases

    POSTGRESQL 压力测试结果与 POSTGRESQL CPU OR 内存 提升性能提升大

    本篇文字,是没有业务方面的测试对于POSTGRESQL 的压力测试,但作为一个正规的数据库部门,我们一定是有,不同硬件在同样配置下的POSTGRESQL 的跑分成绩的,并且还要有不同的 1 数据量 以下测试中我们通过如下的配置进行了压力测试 硬件配置 4C 8G 4C 16G 8C 64G 16C 32G 测试选项 测试数据形式 insert delete oltp update update 这点在8C 64G 和 16C 32G 的相关的测试中,对比测试数据的结果很明显,图1是 16C 32G 图2是 8C 64G ,操作的选择项是数据插入,在疯狂的数据插入的过程中线程越多,插入数据之间的行数的差距越大 图3 图4 3 OLTP ,在OLTP 的操作中,CPU 多的情况下,访问线程多的情况下对于POSTGRESQL 的影响就有不同了,在表的行数多的情况下,部分测试结果中内存大的POSTGRESQL 图7为8C 64G 图8 为 16C 32G 图7 图8 通过这个查询,我们明确了一个问题,在进行范围查询的过程中,CPU 对于数据的提取的速度有明显的提高。

    3.1K10编辑于 2022-12-12
  • 来自专栏超级架构师

    PostgreSQLPostgreSQL 12的8大改进,性能大幅度提升

    PostgreSQL 12专注于性能和优化。此版本的发布并未考虑到全新的闪亮功能;相反,它是对现有PostgreSQL功能的微调和精心设计的实现。 PostgreSQL 11引入了一些分区性能改进,而PostgreSQL 12提供了完善的实现。 8.并发重新编制索引 索引并发功能已经存在多年,允许用户创建索引而又不阻止写入索引。重新索引不允许您在写入数据库时创建索引。同时使用reindex,通过在同一位置创建新索引来替换现有索引。 长期以来要求的功能很难开发,但最终在PostgreSQL 12中交付。 升级到PostgreSQL 12 这八个功能只是PostgreSQL 12中许多改进中的几个。 原文:https://www.enterprisedb.com/ko/blog/8-major-improvements-postgresql-12 本文:http://jiagoushi.pro/8-

    3.5K20发布于 2020-07-20
  • 来自专栏深度学习之tensorflow实战篇

    centos7.4安装PostgreSQL测试

    安装yum更新源 yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-redhat10 -10-1.noarch.rpm 安装PostgreSQL客户端和服务端 yum install postgresql10 -y yum install postgresql10-server -10-setup initdb #初始化 systemctl enable postgresql-10 #设置开机启动 systemctl start postgresql -10 #启动postgresql服务 也可以使用postgreSQL自带的初始化命令initdb初始化数据库: su - postgres 初始化 / usr/pgsql-10/bin/initdb –encoding=UTF-8 –local=zh_CN.UTF8 –pgdata=/data/pg10data/ 启动 /usr/pgsql-10

    96840发布于 2018-04-02
  • 来自专栏Greenplum

    PostgreSQL:effective_io_concurrency基准测试

    PostgreSQL:effective_io_concurrency基准测试 引言 正如在一篇近期的帖子中所提到的,我会定期检查我心爱的数据库的所有设置,今天我想和大家聊聊一个名为"effective_io_concurrency effective_io_concurrency 告知 PostgreSQL 我们的磁盘有多快(或慢查询)。 它的默认值为1,手册中是这样定义的: 设置 PostgreSQL 期望可以同时执行的并发磁盘 I/O 作的数量。提高此值将增加任何单个 PostgreSQL 会话尝试并行启动的 I/O 作的数量。 测试 由于我们正在测试磁盘性能,我会先清理缓存,然后重启PostgreSQL,之后再运行查询。 ://www.postgresql.org/docs/current/runtime-config-resource.html [2] PostgreSQL_effective_io_concurrency_benchmarked

    25510编辑于 2025-09-11
  • 来自专栏AustinDatabases

    Postgresql 压力测试 pgbench 与 准不准

    任何数据库都有压力测试的需求,每种数据库的压力测试都是要证明这个数据库本身在某种硬件的情况下,能达到的一种可以承受的工作上的压力。 那么有一个问题压力测试的数据准吗? 放到数据库也是一样,测试的标准都不唯一,怎么测试的,测试的数据,以及测试的复杂度都不一样,测试的结果能说明什么, 唯一能说明的就是如果结果太差,那这个数据库一定不行,但如果数据好看,也不能说这个数据库就一定好 言归正传,postgresql的压力测试有么有必要,当然有,但是我们的测试大部分就属于五星批发部, 那么今天五星批发部pgbench 就来测测我们的postgresql 这辆多功能“车”。 当然数据量也是很重要的,如果你需要测试更多的数据,也可以在初始化的时候通过 -s 来加大测试数据, 如果不给相关的测试数据默认是10万,-s 是测试的数据倍数。 另外一个事情是需要注意的是,你的 -c 参数是同时连接postgresql的客户端,注意你填写的客户端,这里不是要和你的最大连接数持平,而是你要和你在某一秒同时工作的连接进行对比,可能一个非常繁忙的系统

    1.7K30发布于 2021-04-22
  • 来自专栏oracleace

    使用pgbench对PostgreSQL进行基准测试

    TPC-C是经典的衡量在线事务处理(OLTP)系统性能和可伸缩性的基准测试规范。 常见的开源数据库的基准测试工具有benchmarksql、 sysbench等,PostgreSQL自带运行基准测试的简单程序pgbench。 pgbench是一个类TPC-B 的基准测试工具,可以执行内置的测试脚本,也可以自定义脚本文件。 官方文档: PostgreSQL: Documentation: 15: pgbench https://www.postgresql.org/docs/15/pgbench.html 使用pgbench ------ 1 | 247869 2 | 595899 3 | 285595 4 | 179089 5 | 408114 6 | 507809 7 | 453365 8

    1.7K10编辑于 2023-09-06
  • 来自专栏数据和云

    “王者对战”之 MySQL 8 vs PostgreSQL 10

    特性 MySQL 8 PostgreSQL 10 查询 & 分析 公用表表达式 (CTEs) ✔ New ✔ 窗口函数 ✔ New ✔ 数据类型 JSON 支持 ✔ Improved ✔ GIS 公共表表达式(CTEs) 和窗口函数是选择 PostgreSQL 的主要原因。 来复习下: 特性 MySQL 8 PostgreSQL 10 架构 单进程 多进程 并发 多线程 fork(2) 表结构 聚簇索引 堆 页压缩 Transparent TOAST 更新 In-Place (8KB vs 16KB) ? PostgreSQL物理存储的介绍 页结构看起来就像右边的图。它包含一些我们不打算在这里讨论的条目,但是它们包含关于页的元数据。 如果存在一行必须适合两个数据库的单个页面,,这意味着一行必须小于 8KB。(至少有 2 行必须适合 MySQL 的页面,恰巧是 16KB/2 = 8KB) ?

    4.9K21发布于 2019-06-18
  • 来自专栏菲宇

    Centos8-stream安装PostgreSQL13

    一、安装postgresql13-server yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86 _64/pgdg-redhat-repo-latest.noarch.rpm yum install -y postgresql13-server 二、初始化PostgreSQL 先创建postgresql 否则后续初始化是会报错 切换postgres用户正式初始化 su postgres /usr/pgsql-13/bin/initdb -D /home/pgsql-13/data 三、启动postgresql 13/data -l logfile start 这里注意继续使用postgres用户操作,否则会报错 四、修改配置文件和创建数据库密码和数据库 vi /home/pgsql-13/data/postgresql.conf backdata/bin/backup.sh 自定义PGDATA、PATH sudo vi .bash_profile PGDATA=/home/pgsql-13/data PATH=/usr/local/src/postgresql

    60010编辑于 2022-04-13
  • 来自专栏DBA实战

    从零开始学PostgreSQL (一):Centos8 RPM安装PostgreSQL16

    /pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm #禁用内置的PostgreSQL模块: yum -qy module disable postgresql #安装postgresql16 yum install -y postgresql16-server 初始化数据库并启用自动启动: /usr/pgsql-16/bin @server08 bin]# rpm -aq| grep postgres postgresql16-server-16.3-3PGDG.rhel8.x86_64 postgresql16-libs- 16.3-3PGDG.rhel8.x86_64 postgresql16-16.3-3PGDG.rhel8.x86_64 登录 [root@server08 ~]# su - postgres [postgres postgres -h 127.0.0.1 -p 5432 -W #创建库 postgres-# CREATE DATABASE mydb OWNER postgres ENCODING 'UTF8'

    1.2K10编辑于 2024-09-06
  • 来自专栏MySQL参数系列

    docker快速拉起任意版本PostgreSQL测试环境

    1、拉取镜像 docker pull postgres:14.4 2、创建docker容器 docker run --name pg14 -h pg14 -d -p 54327:5432 -e POSTGRES_PASSWORD=xxx -e TZ=Asia/Shanghai postgres:14.4 3、登录 docker exec -it pg14 psql -U postgres -d postgres

    57010编辑于 2022-12-19
  • 来自专栏AustinDatabases

    PostgreSQL Bgwriter 与 checkpoint 性能 与性能测试

    buffers_clean 具体多少数据buffer块通过bgwriter写入到文件 7 maxwritten_clean 是反映多少次bgwriter_lru_maxpages 在充满的状态下,不在进行刷新的操作次数 8 POSTGRESQL 系统有什么影响. 下面开始测试的环节,测试机是一台虚拟机 4 核心 16G 的CPU 系统没有进行复杂的优化,仅仅对 share buffer, workmem 进行了例行的调整 pgbench -i -s 1000 创建一个亿的数据 以下为基准测试测试后的数据 pgbench -M prepared -v -r -P 1 -f . ,而调整bgwriter 后对于测试的分数的增长并不明显.

    2K20发布于 2021-09-24
  • 来自专栏数据和云

    MogDB与PostgreSQL分区策略语法测试

    PostgreSQL目前还不支持该语法,MogDB从版本已经支持。 注意: 1.从2.0.0版本开始,模板库默认字符集由SQL_ASCII改为了UTF8,同时数据库兼容性由Oracle改为PostgreSQL,对本测试的影响是date数据类型。 3.MogDB目前不支持子分区,PostgreSQL支持声明式子分区。 sjhy 关于作者 彭冲,云和恩墨PG技术顾问,网名“多米爸比”,PG社区认证专家,中国首期PostgreSQL ACE Partner,多年从事基于PostgreSQL数据库的软件研发,擅长于PL/PGSQL 业务迁移及优化,Oracle到PostgreSQL的迁移升级,异构数据库整合;作为墨天轮PostgreSQL实践专栏作者,热衷于PostgreSQL实践技术分享,在自己的岗位积极推广PostgreSQL

    2.1K20编辑于 2022-02-25
  • 来自专栏数据和云

    openGauss与PostgreSQL分区策略语法测试

    PostgreSQL支持继承,版本10之前的分区表都是通过继承特性来实现,每个分区实际上都是一个独立的表。数据更新可通过触发器trigger或者规则rule来实现。 PostgreSQL目前还不支持该语法,openGauss从版本1.1.0开始支持。 openGauss间隔分区例子。 注意: 上面是在opengauss 1.1.0版本上测试的,从2.0.0版本开始,模板库默认字符集由SQL_ASCII改为了UTF8,同时数据库兼容性由ORACLE改为PG,对本测试的影响是date数据类型 关于作者 彭冲,云和恩墨PG技术顾问,网名“多米爸比”,PG社区认证专家,中国首期PostgreSQL ACE Partner,多年从事基于PostgreSQL数据库的软件研发,擅长于PL/PGSQL业务迁移及优化 ,Oracle到PostgreSQL的迁移升级,异构数据库整合;作为墨天轮PostgreSQL实践专栏作者,热衷于PostgreSQL实践技术分享,在自己的岗位积极推广PostgreSQL,致力为PG社区多做奉献

    1.8K41发布于 2021-05-31
  • 来自专栏AustinDatabases

    POSTGRESQL 短查询优化,独立索引与组合索引 8

    这是一个关于POSTGRESQL 查询的优化系列,这已经是这个系列的第八集了,接上期,在OLTP查询中我们需要注意的查询优化的地方非常多,稍不留意就会在一些问题上的操作导致查询的数据逻辑错误。 多个字段,分别建立索引,在查询中,使用多个索引查询数据 2 多个字段建立一个索引,在查询中使用这个索引作为查询的索引使用 那么到底哪种好,我们应该再怎么做,根据原理的分析,如果我们建立多个索引,那么POSTGRESQL

    1.7K60编辑于 2022-04-05
  • 来自专栏影子

    使用sysbench测试mysql及postgresql(完整版)

    使用sysbench测试mysql及postgresql(完整版) 转载请注明出处https://www.cnblogs.com/funnyzpc/p/14592166.html 前言 使用sysbench 测试数据库十分的麻烦(主要是sysbench安装麻烦),本人需要测试mysql及postgresql,mysql可以正常编译通过,postgresql的怎么都不行,后来群内有网友提供编译版, 发现一切都好使了 ,在此感谢某网友提供的编译版sysbench 另外,如在使用过程中报各种莫名其妙的错误请使用yum或apt安装下mysql或postgresql ,后续基本都顺利~ sysbench主要参数 --threads /sysbench_mysql [执行参数] postgresql: ./sysbench_pg [执行参数] oracle: . DB \ --oltp-tables-count=3 cleanup postgresql测试 构建测试数据 .

    1.9K10发布于 2021-04-09
领券