强人随笔PostgreSQL中的八级锁

锁是实现数据库并发控制必不可少的功能,PostgreSQL数据库通过其特有的多版本属性实现了MVCC,实现了读不阻塞写,写不阻塞读。PostgreSQL中表锁有八个级别,不同的锁对应了不同的排他级别。值得注意的是同一时刻两个事务不能再同一个表上获取相互冲突的锁,但是一个事务是永远不会与自己冲突的,一个事务里连续获取两个有冲突的锁类型是没有问题的。

wangliyun 发布于 2020-07-09 08:00:00
评论:0   浏览:70

强人随笔PostgreSQL 13新特性之一: 逻辑复制支持分区表

PostgreSQL 13 Beta版本已Released,尽管没有太多激动人心的新特性,总体在功能上有所增强,本文介绍逻辑复制对分区表的支持。 PostgreSQL 10 版本开始已支持逻辑复制,在12版本之前逻辑复制仅支持普通表,不支持分区表,如果需要对分区表进行逻辑复制,需单独对所有分区进行逻辑复制。

wangliyun 发布于 2020-07-02 08:00:37
评论:0   浏览:180

强人随笔并行创建索引探析 - Create Index Concurrently

默认创建索引过程中由于需要请求ShareLock级别的锁,将会阻塞对表的修改操作,为了降低索引创建的影响,在PG中支持并发索引创建,该操作请求的锁级别为ShareUpdateExclusiveLock级别的表,允许对表的插入/更新/删除操作。

wangliyun 发布于 2020-06-29 08:00:12
评论:0   浏览:172

强人随笔使用pl/lua写存储过程提升10倍性能

1. 为什么要使用pl/lua pl/lua是一个插件,可以使用lua语言写PostgreSQL的存储过程和函数,使用lua语言有如下几个好处, 可以大大提升存储过程的性能,特别是循环的性能。 在PostgreSQL中数组或一些json对象都是不可变的,如往数组或json对象中添加元素时,需要把拷贝源对象而生成一个新对象,导致很大的开销。而使用lua语言的list和table对象就没有这个问题了。 lua语言的语法更灵活。 也就是当我们需要在存储过程或函数中做一些密集的运算,使用plpgsql会比较慢,而使用pl/lua会提升10倍以上的性能。这个提升还是很观的,所以建议这些存储过程使用pllua来编写。

wangliyun 发布于 2020-06-25 08:00:52
评论:0   浏览:320

强人随笔PostgreSQL中的表锁

PostgreSQL的并发控制以快照隔离(SI)为主,以两阶段锁定(2PL)机制为辅。PostgreSQL对DML(增删改查等命令)使用SI,对DDL(CREATE TABLE等命令)使用2PL。 PostgreSQL有好几类锁,其中最主要的是表级锁与行级锁,此外还有页级锁,咨询锁等等。表级锁通常是各种命令执行时自动获取的,或者通过事务中的LOCK语句显式获取;而行级锁则是由SELECT FOR UPDATE|SHARE语句显式获取的。本文主要介绍PostgreSQL中的表锁。

wangliyun 发布于 2020-06-16 08:12:50
评论:0   浏览:282

强人随笔PostgreSQL监控系统Pigsty概述

近期做了套数据库监控系统,搞的还可以,简单给大家介绍一下。

wangliyun 发布于 2020-06-02 08:00:52
评论:1   浏览:513

强人随笔PostgreSQL的KPI

管数据库和管人差不多,都需要定KPI(关键性能指标)。那么数据库的KPI是什么?本文介绍了一种衡量PostgreSQL负载的方式:使用一种单一横向可比,与负载类型和机器类型基本无关的指标,名曰PG Load(PG负载)。

wangliyun 发布于 2020-05-30 08:00:00
评论:0   浏览:378

强人随笔PostgreSQL索引使用的一些技巧

这些年PostgreSQL社区的发展十分迅速,除了社区版本的PG数据库外,国内的各个数据库厂商也纷纷选择PG作为自己数据库产品的原型,这主要也是因为PG的许可授权模式是BSD授权,所授权的代码可以被任何厂家任意使用,包括改一下LOGO就闭源说是自己的产品也是被认可的。

wangliyun 发布于 2020-04-22 08:00:00
评论:0   浏览:844

强人随笔如何在PostgreSQL故障切换后找回丢失的数据

1. 背景 PostgreSQL的HA方案一般都基于其原生的流复制技术,支持同步复制和异步复制模式。 同步复制模式虽然可以最大程度保证数据不丢失,但通常需要至少部署三台机器,确保有两台以上的备节点。 因此很多一主一备HA集群,都是使用异步复制。 在异步复制下,主库宕机,把备节点切换为新的主节点后,可能会丢失最近更新的少量数据。 如果这些丢失的数据对业务比较重要,那么,能不能从数据库里找回来呢? 下面就介绍找回这些数据的方法

wangliyun 发布于 2020-04-09 08:00:09
评论:0   浏览:1002

强人随笔PostgreSQL子事务及性能分析

最近,在排查PostgreSQL性能问题的时候,两次遇到子事务相关问题。所以,我想这个话题非常适合作为博客内容。

wangliyun 发布于 2020-03-31 08:00:00
评论:1   浏览:815

强人随笔PostgreSQL的几种分布式架构对比

Postgresql由于强大的功能和良好的扩展性,基于postgresql来做的分布式架构也比较多,大部分用于分析类场景,下面比较几种常见的架构特点。

wangliyun 发布于 2020-03-17 08:00:00
评论:0   浏览:1487

强人随笔PostgreSQL LIKE的那些事

笔者前段时间在写一个个人自用的项目时候,遇到一个需求,要从一个6百多万数量的表中,使用like ‘%keyword%’这种语法来找到需要的结果,虽然默认情况下,也不是不能接受(SSD存储+并行查询让这个事情实际的执行效率比想象中高得多),但毕竟对资源的瞬间消耗很大,让家里的小NAS有点不堪重负,因此对PostgreSQL对like的处理上,进行了诸多调查,来让这个事情的处理,可以看起来更漂亮些。

wangliyun 发布于 2020-03-12 08:00:48
评论:0   浏览:916

强人随笔阿里云PostgreSQL案例精选2 - 图像识别、人脸识别、相似特征检索、相似人群圈选

人脸识别, 人脸支付, 刷脸打卡, 图像识别等 例如, 智能楼宇, 根据人脸识别到是本大楼的员工时, 自动进行打卡, 自动按工作楼层设定电梯. 智能酒店, 根据人脸识别, 自动入住, 根据会员等级自动对接专属服务等等. 电商, 图像识别, 搜索类似商品. 教育, 根据人脸特征, 记录学生的听课状态(打盹, 走神, 小动作, 举手等) 交通, 违规时自动识别驾驶员. 新零售, 根据人脸识别对应后台的会员系统, 做到: 到店提醒, 导购引导, 定制化运营等. 公共交通, 刷脸支付. 游戏, 虚拟现实相关游戏.

wangliyun 发布于 2020-03-06 08:00:51
评论:0   浏览:986

强人随笔PostgreSQL 性能提升之并行创建索引

PostgreSQL新版本即将发布,因此是时候看看PostgreSQL11提供的最重要新功能之一:并行创建索引(注:原博客发表于2018年)。多年以来,各种商业数据库供应商已经提供该功能,因此很高兴PostgreSQL成为该精英俱乐部的一员,它提供了多核索引创建能力,这将极大的改善大型数据库部署的可用性。

wangliyun 发布于 2020-03-04 08:00:00
评论:0   浏览:959

强人随笔PostgreSQL中并行查询代价估算方法

在PostgresSQL9.6中引入了并行查询,从那之后这一功能不断地得到扩展。在PostgreSQL11和PostgreSQL12中,数据库引擎增加了更多的功能。然而,仍然有一些与并行查询相关的问题,这些问题经常出现在培训过程中,因此有必要澄清说明一下。

wangliyun 发布于 2020-02-28 08:00:00
评论:0   浏览:787

强人随笔阿里云PostgreSQL案例精选1 - 实时精准营销、人群圈选

根据目标群体的特征, 快速提取目标群体. 例如, 在电商行业中, 商家在搞运营活动前, 根据活动的目标群体的特征, 圈选出一批目标用户进行广告推送或活动条件的命中. 在游戏行业中, 运营经常会根据游戏玩家的某些特征圈选, 针对性的发放大礼包, 激活游戏活跃度. 在教育行业中, 根据学生不同的特征, 推送不同的有针对性的习题, 提升学生的弱项. 在搜索、门户、视频网站等业务中, 根据用户的关注热点, 近期行为的不同, 根据群体推送内容.

wangliyun 发布于 2020-02-25 08:00:34
评论:0   浏览:889

强人随笔别裁员!别裁员!别裁员! 一招降低IT数据库成本

2020疫情无情,诸多企业因此受挫,特别中小企业,甚至到了要裁员的地步, 但是人才是最宝贵的,裁员一定是下下策,如何渡过这个难关,疫情带给我们什么反思? 开源节流有新方法,通常数据库在企业IT支出中的占比将近一半,降低数据库成本对降低企业IT成本效果明显,但是一般企业没有专业DBA,很难在这方面下手,不过没关系,有了云厂商,一切变得简单。借助阿里云我们找到了可以为企业IT节省至少一倍成本的方法.

wangliyun 发布于 2020-02-19 08:00:04
评论:0   浏览:962

强人随笔使用ScaleFlux公司的csd2000卡大幅提升PostgreSQL性能

本文详细讲解了把fillfactor参数调整到70%时,使用csd2000的透明压缩功能让实际占用空间很少增长的情况下(增长8%),让pgbench测试出来的性能提升近40%。同时使用了csd2000的透明压缩功能让空间占用率到达了原空间的六分之一,大大的节省了空间。

wangliyun 发布于 2020-02-06 08:00:00
评论:0   浏览:1226

强人随笔PostgreSQL绑定变量窥视

Oracle DBA都知道,绑定变量窥视功能是Oracle数据库的一个特性,自ORACLE9i版本开始引入,是可以通过参数数“_optim_peek_user_binds”来控制是否开启,默认是开启,即为TRUE。这就意味着,第一次以变量的方式执行某类SQL时,会生成第一个执行计划,后续执行该类SQL语句,即使变量的传入值不同,但因变量窥视的作用,依然会沿用第一次SQL语句执行时生成的执行计划,这种特性非常适用于业务表数据分布比较均匀的场景,执行计划比较稳定。但对于数据分布严重倾斜的业务表,可能会出现错误的执行计划,在极端情况下,会引发严重的性能问题。

wangliyun 发布于 2020-02-04 08:00:00
评论:0   浏览:902

强人随笔PostgreSQL Autovacuum拾遗

本文介绍了PostgreSQL的Autovacuum机制中容易出现误解的地方,包括Autovacuum的调度机制、Autovacuum的监控以及相关的数据字典和数据库参数等。

wangliyun 发布于 2020-01-21 08:00:00
评论:0   浏览:891
© 2010 PostgreSQL中文社区