首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
PostgreSQL
Foucus
创建于2022-03-23
订阅专栏
PostgreSQL技术学习研究
等 6 人订阅
共142篇文章
创建于2022-03-23
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
PostgreSQL查看长时间未被autovacuum的表
由于PostgreSQL的多版本机制,使得经常被使用的表需要进行vacuum来回收哪些dead tuples,尽管pg有autovacuum进程去在后台vaccum相关的表,但是我们仍需要去监控哪些表长时间未被autovaccum过。
PostgreSQL不同库间数据copy脚本
PostgreSQL的copy命令进行数据导入导出的效率是很高的,我们可以通过下面这个脚本来实现两个库之前数据的快速copy。pg13@cnndr4pptliot-> cat copy_data.-h 172.23.11.pg13@cnndr4pptliot-> sh copy_...
postgres_dba——构建自己的运维脚本库
我们在平时的运维中会用到各种脚本来处理问题,但是每次使用的时候都需要去找一下自己的脚本然后复制粘贴过来执行。你可能会想如果能跳过这些繁琐的步骤,直接在数据库中找到这些脚本一键执行就好了。推荐一个小工具:postgres_dba,可以在psql命令行中随时调用脚本,也可以将我们常用...
PostgreSQL将数据加载到buffer cache中
我们都知道数据在缓存中访问远比在磁盘中访问速度要快,那么我们怎么在pg中将指定的数据加载到缓存中呢,这有点类似于Oracle的in-memory。当然要注意并不是把数据加载到内存中就一定是好的,因为相较于磁盘,内存总是有限的,所以一帮我们只是在特殊场合下将需要的数据加载到内存中来...
PostgreSQL checksum与Data Corruption
存储介质故障指的是读取或写入数据的存储介质出现的物理上的故障。这是DBA不得不重点关注的问题之一。一个典型的介质故障就是磁盘的磁盘头损坏,这会导致磁盘中存储的所有文件丢失。与数据库关联的文件例如数据文件、wal日志文件和控制文件都会因为磁盘崩溃而损坏。这篇文章我们将重点介绍在Po...
PostgreSQL index-only scans详解及常见误区
在oracle中,类似select id from t1 where id<10这样一个查询,当select语句的所有目标列都在索引中时,为了减少IO,就不需要再回表获取数据了。这便是index only scan,从pg9.2开始引入了这种索引扫描方法,顾名思义即只扫描索引列。...
PostgreSQL clog详解
PostgreSQL由于其多版本特性,因此需要提交日志clog来记录事务的状态,从而判断其可见性。clog分配于共享内存中,并作用于事务处理过程的全过程。在pg中定义了4种事务状态,分别是:IN_PROGRESS、COMMITED、ABORTED和SUB_COMMITED。例如事...
高写入负载下的Postgres性能调优
随着数据库的数据量与之俱增,作为数据库管理员和系统管理员总是会遇到各种各样的麻烦。通常,一些项目从小型的测试系统开始,然后被推广到大规模生产用途。HINT: Consider increasing the configuration parameter "max_wal_size...
PostgreSQL查询shared buffer使用情况和清理方式
c.round(100.round(100.0 * count(*) * 8192 / pg_table_size(c.INNER JOIN pg_buffercache b ON b.relfilenode = c.INNER JOIN pg_database d ON (b....
PostgreSQL批量删除函数脚本
在PostgreSQL中,我们想要删除函数的时候必须得加上函数的参数。,p.,pg_get_function_identity_arguments(p.ON p.pronamespace = n.WHERE n.
pg_stat_kcache ——跟踪cpu、文件系统真实读写行为
PostgreSQL中一般建议将shared_buffer值设置成物理内存的1/4,而是要给OS的cache/buffer以足够的空间,从而达到最佳的系统性能。因此我们通过使用buffer io, shared buffer的统计信息很容易判断错误。为什么呢?假如我们的share...
PostgreSQL Huge Page使用最佳实践
对于重度依赖于内存的应用数据库而言,hugepage是经常会被使用的。例如在Oracle中我们一般建议当SGA大于8GB时使用hugepage,而在postgresql中我们也建议当内存较大的时候开启hugepage。 为什么呢?这是因为Linux需要维护虚拟内存地址与物理内存的...
PostgreSQL extra_float_digits——控制浮点数精度
PostgreSQL中extra_float_digits参数可以用来控制浮点数输出的精度,可能我们在平时使用中并不太会留意,那我们下来看下面这个例子。bill@bill=>insert into t1 values(0.55555555555555555,0.0.5555555...
PostgreSQL XMAX深入探究
对于XMAX字段,其官方文档的解释如下: The identity (transaction ID) of the deleting transaction, or zero for an undeleted row version. It is possible for thi...
PostgreSQL如何判断事务新旧
PostgreSQL由于其多版本特性,经常需要去比较两个事务的新旧。那么该如何比较两个事务的新旧关系呢?你可能会说通过XID(事务ID)不就可以了,没错!例如一个事务ID是1000000,另一个事务ID是1000001,那么显然是1000000的事务更旧。但是通过事务ID去判断远...
PostgreSQL LSN详解
PostgreSQL LSN即Log sequence number,日志序列号,这是WAL日志唯一的、全局的标识。那么pg中LSN究竟有什么作用呢?我们都知道wal日志中写入是有顺序的,比方说一条记录是先加100再乘200,如果顺序错乱变成先乘200再加100,那结果可是差之千...
PostgreSQL如何对某行记录进行模糊查询
在某些场景下,我们可能需要对表的某行字段进行查询。例如BI报表的下拉框,用户可能会勾选多个条件进行查询,那么我们查询会很麻烦。select * from test1 where c1 ~ 'china' or c2 ~ 'china' or ...可以看到这样写会相当麻烦,而且性...
PostgreSQL特殊恢复——直接修改数据文件恢复数据
刚写了篇PostgreSQL的page结构的文章,算是把page弄得比较透彻了。那么知道这些对我们有啥用呢,下面我们演示下类似Oracle bbed通过修改数据文件来恢复数据的方式。可以看到第一条数据的t_xmax,t_infomask2和t_infomask都发生了变化,至于这...
这一次终于把PostgreSQL Page结构搞懂了
PostgreSQL中的page指的是数据文件内部被划分的一个个固定长度的页,和Oracle中的数据块类似。page默认大小是8k,可以在编译数据库时通过–with-blocksize参数指定。文件中的page从0开始一个个进行编号,当一个8k的page写满时就会在该page尾部...
PostgreSQL CTE语句与materialized
PostgreSQL with语句功能可谓十分强大,可以优化很多复杂的查询,实现递归等等。不过with虽好,可还是不要乱用。因为在PG12之前,with语句都是通过将子查询先进行物化,这就导致了一个问题:with子查询外的条件无法内推到里面。我们看看PG12之前: 从执行计划可以...
下一页