大数据
-
PostgreSQL: 如何获取一维数组的相同元素并根据相似度排序
今天开发有个需求,表中有一个列为一维数组类型,现在需要找出表中具有相同元素的数据,描述起来可能有点费力,下面举个例子就明白了。 需求演示 测试表 12345678910111213141516 mydb=> /d test_array; Table "…
-
Like 查询优化一例
今天发现一生产库上的负载较高,是因为一个与 like 有关的 SQL 引起的,虽然情形比较简单,但也记录下,这个查询语句走了全表扫描非常慢,可以改下SQL,优化后,执行时间由原来的 4秒可降到 1 毫秒以内,详细信息,…
-
How to Migrate Oracle to PostgreSQL
最近在做 oracle 转 PostgreSQL 项目调研,部分业务需要由 oracle 数据库迁移到 PostgreSQL 平台,这几天在做这方面的调研,暂时有几分心得。 Oracle 转 pg 显然是一个比较复杂的工程,需要考虑的事情很多,如果是…
-
探索:PostgreSQL 的 UPDATE 操作
根据 PostgreSQLL 的 MVCC 机制,在执行 update 命令更新数据时, PG 会在原有基础上复制一份新的复本 tuples 出来,然后在新的 tuples 上进行更新,下面验证下这个过程。 创建测试表 1234 skytf=> create table…
-
探索:PostgreSQL 的 MVCC 机制对性能的影响
今天思考了下 PostgreSQL 的 MVCC原理,PG在 delete 记录时, 不会立刻在物理上删除记录,而将原始记录保留在原来 page, 只是改变下状态位;而 update 记录时,会先复制一份新的记录,并在复制的这份上修改;想到:…
-
PostgreSQL : 慎用 db_link
今天由于业务需要,需要在生产库上创建一个 db_link, 每天取源端库一张表一天数据,表大小为2G左右,考虑到这个数据每天只取一次,而且只取一天数据,于是准备在库上创建 db_link, 但在测试过程中发现性能问题。 在…
-
ERROR: database is not accepting commands to avoid wraparound data loss in database
今天有个日志库遭遇 ERROR: database is not accepting commands to avoid wraparound data loss in database ,HINT: Stop the postmaster and use a standalone backend to VACUUM in "mydb".,根据提示…
-
PostgreSQL9.1: Converting a INDEXED varchar column to text still requires rewrite a index
上一篇blog讨论了PostgreSQL9.1的新特性之一, 即将字段类型由 varchar 转换成 text 类型时不再需要重写表了, 原文地址 https://postgres.fun/20110916165650.html ,但是有种情况例外,当这个字段被索引时,索引需要…
-
PostgreSQL9.1新特性之四:Converting a varchar column to text no longer requires a rewrite of the table
今天看到了 PostgreSQL9.1 一个令人兴奋的新特性,9.1 将字断类型从 varchar 修改成 text 类型,将不会重写表数据。而扩字断长度依然会重写表数据,但是这些在以后版本可能会改进,下面测试下: 9.0 版本上测试 查…
-
编译 PostgreSQL "--Without-ldap" 报错一例
由于准备做 oracle_fdw 实验, 今天打算重新安装 PostgreSQL 9.1, 所以计划将 PostgreSQL 配置成没有安装 ldap 的模式, 但在编译过程中遇到了错误,以下是详细信息。 环境信息 PostgreSQL: Postgresql 9.1OS : Red H…