PostgreSQL Oracle 兼容性之 - WITH 递归 ( connect by )
背景 ( 请把本文某些SQL的 SELEC改成 s e l e c t , FRO改成 f r o m , WHE改成 w h e r e 不要空格) connect by语法是Oracle用来实现树形查询的一种语法。 应用场景如图: PostgreSQL虽然不支持connect by语法,但是支持...
背景 ( 请把本文某些SQL的 SELEC改成 s e l e c t , FRO改成 f r o m , WHE改成 w h e r e 不要空格) connect by语法是Oracle用来实现树形查询的一种语法。 应用场景如图: PostgreSQL虽然不支持connect by语法,但是支持...
背景 PostgreSQL是和Oracle最接近的企业数据库,包括数据类型,功能,架构和语法等几个方面。甚至大多数的日常应用的性能也不会输给Oracle。 但是Oracle有些函数或者包,默认PostgreSQL是没有的,需要安装orafce包来实现这些兼容性。 例如现在orafce已经包含了如下内容。 1...
背景 昨天刚到手的一块SSD,建兴 ZETA 256GB的硬盘。 smartctl查看到的信息如下: === START OF INFORMATION SECTION === Device Model: LITEON LCH-256V2S Serial Number: 002448118...
背景 新购入的建兴ZETA 256G,在CentOS 7.2中,用PostgreSQL自带的fsync测试工具pg_test_fsync测试IOPS时,突然IO hang住了。 dmesg报了一堆这样的超时: res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x...
背景 阿里云的RDS for PostgreSQL目前提供的备份为物理备份,备份粒度可以自己设置,最频繁的基础备份可以做到一天一次。 有了这个备份和归档日志,我们可以做到基于任意时间点(实际上是事务提交或回滚点的粒度)的恢复。 在RDS的控制台可以看到: 接下来我将演示一下如何实现以及如何设计一...
背景 本文将教你测试长连接和短连接的性能。 我们在连接阿里云RDS for PostgreSQL时,实际上并不是直接连接数据库的,而是通过了SLB。 那么这个代理有没有连接池功能呢?通过测试发现,即使有连接池的功能,也是会话级别的,所以如果你的业务系统如果是高并发的短事务,建议你在应用层启用连接池,如果不能启...
背景 RDS现在还欠缺一个功能,就是数据库克隆,你可以这么理解,给现有的数据库创建STANDBY,然后将这个STANDBY激活,就完成了对数据库的克隆。 (目前可以使用阿里云的开源软件RDS_DBSYNC来克隆,虽然复杂一点。 rds_dbsync支持mysql或pgsql克隆到pgsql) https://...
背景 本文是针对单个RDS实例(同样的配置)承载6400万数据的测试。对比前面的水平分库。 创建测试表,生成测试数据。 create table userinfo(userid int,info text); create table session (userid int,last_login time...
背景 使用pl/proxy 做分布式处理的性能。 大家可供参考,注意目前plproxy不支持跨库关联,仅仅是函数代理。 如果要做跨库事务需要结合PostgreSQL的prepared transaction(分布式事务/2PC)来实现, 如果要做跨库关联,可以用PostgreSQL的外部表,例如在每个节点上...
背景 来阿里云之前,做的一些RDS测试。 几个月过去了,阿里云RDS PG在性能方面做出了大量的代码层优化,感兴趣的童鞋赶紧测试,来PK我之前的测试数据吧。 测试机申请的RDS都是最低配置的,容量5GB,内存1GB,支持100个连接,IOPS 400。 先看看配置吧,为了提高性能,有一些参数是可以调整的,如...