PostgreSQL

PostgreSQL HOT与PHOT有哪些区别

1、HOT概述 PostgreSQL中,由于其多版本的特性,当我们进行数据更新时,实际上并不是直接修改元数据,而是通过新插入一行数据来进行间接的更新。而当表上存在索引时,由于新插入了数据,那么索引必然也需要同步进行更新,这在索引较多的情况下,对于更新的性能...

PostgreSQL完成按月累加的操作

背景 统计某个指标,指标按照月进行累加,注意需要按省份和年份进行分组。 方法一、使用自关联 — with 按月统计得到中间结果 WITH yms AS (SELECT regionid,SUM(getnum) AS getnum,SUM(dea...

PostgreSQL教程(十四):数据库维护

一、恢复磁盘空间:     在PostgreSQL中,使用delete和update语句删除或更新的数据行并没有被实际删除,而只是在旧版本数据行的物理地址上将该行的状态置为已删除或已过期。因此当数据表中的数据变化极为频繁时,那...

Ubuntu PostgreSQL安装和配置的介绍

1、安装 使用如下命令,会自动安装最新版,这里为9.5 sudo apt-get install postgresql 安装完成后,默认会: (1)创建名为”postgres”的Linux用户 (2)创建名为”postg...

PostgreSQL教程(一):数据表详解

一、表的定义:     对于任何一种关系型数据库而言,表都是数据存储的最核心、最基础的对象单元。现在就让我们从这里起步吧。     1. 创建表:      ...

PostgreSQL长事务与失效的索引查询浅析介绍

最近刚写了一篇文章介绍了下长事务,以及一些长事务常见的危害,如无法及时的垃圾回收导致表膨胀之类的问题,最近刚好又碰到一个问题也是长事务所导致的。 上周六早上接到同事电话,说某个库CPU一直很高,看了下全是某张大表的全表扫描导致,但是奇怪的是相关的查询都有用...

PostgreSQL 自定义自动类型转换操作(CAST)

背景 PostgreSQL是一个强类型数据库,因此你输入的变量、常量是什么类型,是强绑定的,例如 在调用操作符时,需要通过操作符边上的数据类型,选择对应的操作符。 在调用函数时,需要根据输入的类型,选择对应的函数。 如果类型不匹配,就会报操作符不存在,或者...

Postgresql中LIKE和ILIKE操作符的用法详解

LIKE和ILIKE操作符可以模糊匹配字符串,LIKE是一般用法,ILIKE匹配时则不区分字符串的大小写。 它们需要结合通配符使用,下面介绍两种常用的通配符。 %:百分号用于匹配字符串序列,可匹配任意组合; _:下划线用于匹配任何单一字符。 举例来说明LI...

PostgreSQL教程(十五):系统表详解

一、pg_class:     该系统表记录了数据表、索引(仍然需要参阅pg_index)、序列、视图、复合类型和一些特殊关系类型的元数据。注意:不是所有字段对所有对象类型都有意义。   名字 类型 引用 描述 re...

浅谈PostgreSQL中大小写不敏感问题

本文主要讨论PostgreSQL中大小写不敏感存在的问题。 默认情况下,PostgreSQL会将列名和表名全部转换为小写状态。 图1 Person与person 如图1所示,我们创建表person,其中包含name列。然后插入一条记录。执行SELECT查询...