随笔分类 -  postgresql

摘要:一、示例 这两个SQL执行所得到的数据是一样的! select count(s.*) from ( select *, row_number() over (partition by fee_date order by fee_date) as gr from new_order where new 阅读全文
posted @ 2022-04-26 09:01 数据库集中营 阅读(520) 评论(0) 推荐(0)
摘要:一、概述 Plan Hint是PG社区官方版”永远”不考虑引入的功能之一,社区开发者的理念是,引入Hint功能,会掩盖优化器本身的问题,导致缺陷不被暴露出来。但对于使用者来讲,遇到某些SQL的查询计划不好,性能出了问题,其他方法又不奏效的情况下,首先的目标还是想尽快解决问题,而Hint就可以在这种时 阅读全文
posted @ 2022-04-25 15:30 数据库集中营 阅读(635) 评论(0) 推荐(0)
摘要:一、背景 在数据库的使用过程中,一些微妙的操作,在特殊的场景中就可能导致雪崩效应。 1. 当数据库中存在未提交事务,并且未提交事务已经持有了某个表的哪怕是最小的锁时,如果此时对这个对象发起DDL操作,这个DDL操作将会堵塞接下来的其他对该对象的任意操作请求,包括读请求。 因为PG的锁等待判断是整个等 阅读全文
posted @ 2022-04-25 11:24 数据库集中营 阅读(255) 评论(0) 推荐(0)
摘要:一、简介 PostgreSQL中的临时表分两种,一种是会话级临时表,一种是事务级临时表。在会话级临时表中,数据可以存在于整个会话的生命周期中,在事务级临时表中的数据只能存在于事务的生命周期中。默认创建的是会话级别的临时表。 1、不管是会话级还是事务级的临时表,当会话结束后,临时表会消失,这和Orac 阅读全文
posted @ 2022-04-18 16:12 数据库集中营 阅读(5029) 评论(0) 推荐(0)
摘要:一、PG统计信息概述 pg的统计信息主要分为两种: 第一类统计信息是是负载指标“统计信息”(Monitoring stats),通过stat collector进程进行实时采集更新的负载指标,记录一些对磁盘块、表、索引相关的统计信息,SQL语句执行代价信息等。 第二类统计信息是数据分布状态描述“统计 阅读全文
posted @ 2022-04-13 10:19 数据库集中营 阅读(2173) 评论(1) 推荐(0)
摘要:一、背景 当一个进程处于等待(被堵塞)状态时,是谁干的?可以使用如下函数,快速得到捣蛋(堵塞别人)的PID。 二、案例 1、会话1 postgres=# begin; BEGIN postgres=# select * from tbl limit 1; id | c1 | c2 + + 91894 阅读全文
posted @ 2022-04-12 16:18 数据库集中营 阅读(561) 评论(0) 推荐(0)
摘要:一、用法 create extension pg_backtrace; select pg_backtrace_init(); 二、示例 postgres=# select count(*)/0.0 from pg_class; ERROR: division by zero CONTEXT: po 阅读全文
posted @ 2022-04-06 17:00 数据库集中营 阅读(237) 评论(0) 推荐(0)
摘要:一、优化器并行计算的并行度计算方法 1、总worker进程数 postgres=# show ; max_worker_processes 128 (1 row) 2、所有会话,在同一时刻的QUERY,并行计算最大允许开启的WORKER数。 max_parallel_workers 3、单条QUER 阅读全文
posted @ 2022-04-06 15:00 数据库集中营 阅读(2264) 评论(0) 推荐(1)
该文被密码保护。
posted @ 2022-04-01 17:39 数据库集中营 阅读(0) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2022-04-01 17:30 数据库集中营 阅读(0) 评论(0) 推荐(0)
摘要:一、简介 linux为多个进程通信提供了不同的IPC机制,如:System V , POSIX 和 MMAP,所以Postgresql共享内存管理也支持以上类型。 在Postgresql中可以使用dynamic_shared_memory_type参数指定共享内存类型。 默认使用posix,修改参数 阅读全文
posted @ 2022-04-01 15:19 数据库集中营 阅读(849) 评论(0) 推荐(0)
摘要:一、简介 数据库的PITR原理是依据之前的物理备份文件加上wal的预写日志模式备份做的恢复。 二、示例 1、数据库配置 wal_level = replica archive_mode = on archive_command = 'cp %p /home/kingbase/archive_dir1 阅读全文
posted @ 2022-03-03 16:13 数据库集中营 阅读(260) 评论(0) 推荐(0)
摘要:一、表膨胀查询与处理 1、创建扩展 create extension pgstattuple; 2、表膨胀查询 pgstattuple提供了pgstatetuple()和pgstatindex()两个统计表和索引的方法,较系统表pg_class的表统计信息,pgstatetuple()还统计了表中的 阅读全文
posted @ 2022-02-24 10:17 数据库集中营 阅读(1156) 评论(0) 推荐(0)
摘要:一、简介 template1和template0是PostgreSQL的模板数据库。所谓模板数据库就是创建新database时,PostgreSQL会基于模板数据库制作一份副本,其中会包含所有的数据库设置和数据文件。PostgreSQL安装好以后会默认附带两个模板数据库:template0和temp 阅读全文
posted @ 2022-02-23 15:23 数据库集中营 阅读(3347) 评论(0) 推荐(0)
摘要:一、简介 WITH提供了一种方式来书写在一个大型查询中使用的辅助语句。这些语句通常被称为公共表表达式或CTE(Common Table Expressions),它们可以被看成是定义只在一个查询中存在的临时表。在WITH子句中的每一个辅助语句可以是一个SELECT、INSERT、UPDATE或DEL 阅读全文
posted @ 2022-02-22 15:48 数据库集中营 阅读(1075) 评论(0) 推荐(0)
摘要:WAL是Write Ahead Log的简写,和oracle的redo日志类似,存放在$PGDATA/pg_xlog中,10版本以后在$PGDATA/pg_wal目录. 1、如果开启了归档,在目录archive_status下会有一些文件,以ready结尾的,表示可以归档但还没有归档,done结尾的 阅读全文
posted @ 2021-12-07 10:15 数据库集中营 阅读(2154) 评论(0) 推荐(1)
摘要:1、错误信息 WARNING: database “postgres” must be vacuumed within 3330803 transactions 最常见的方法是通过此消息,警告您正在进行事务处理: WARNING: database “postgres” must be vacuum 阅读全文
posted @ 2021-12-07 09:45 数据库集中营 阅读(2718) 评论(0) 推荐(0)
摘要:PostgreSQL控制文件内容: 主要分为是三部分,初始化静态信息、WAL及检查点的动态信息、一些配置信息。 我们可以用过pg_controldata命令直接读取PostgreSQL控制文件内容: [postgres@postgresdb ~]$ /u01/postgres/pgsql/bin/p 阅读全文
posted @ 2021-12-06 16:55 数据库集中营 阅读(1885) 评论(0) 推荐(0)
摘要:场景:获取当前行的下一行某一字段数据,获取当前行的上一行某一字段数据 1、测试数据: postgres=# select * from tb1; id | name + 1 | aa 2 | aa 3 | aa 4 | aa 5 | aa | bb | cc (7 rows) 2. lag(valu 阅读全文
posted @ 2021-12-05 15:42 数据库集中营 阅读(1982) 评论(0) 推荐(0)
摘要:先介绍一下Postgresql的建索引语法: CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ name ] ON table [ USING method ] ( { column | ( expression ) } [ COLLATE collation ] 阅读全文
posted @ 2021-12-02 14:23 数据库集中营 阅读(360) 评论(0) 推荐(0)