PostgreSQL

PostgreSQL图(graph)的递归查询实例

PostgreSQL图(graph)的递归查询实例

背景 在树形递归查询这篇文章,我记录了使用CTE语法查询树形结构的办法。在一个树形结构中,每一个节点最多有一个上级,可以有任意个数的下级。 在实际场景中,我们还会遇到对图(graph)的查询,图和树的最大区别是,图的节点可以有任意个数的上级和下级。如下图所示 因为图可能存在loop结构(上图红色箭头),所以在使用CTE递归的过程中,必须要破环(break loop),否则算法就会进入无限递归,永不... »

PostgreSQL实现一个通用标签系统

PostgreSQL实现一个通用标签系统

前言 对资源打标签在建站过程中是很常见的需求,有些时候我们需要给文章打标签,有些时候我们需要给用户打标签。实现一个标签系统其实并不难,其本质就是一个多对多的关系-我可以对同一篇博客打多个标签,同时也可以把一个标签打到不同的博客身上。这篇文章主要通过分析标签系统的原理,并用PostgreSQL来实现一个能够为多种资源打标签的标签系统。 1. 单一资源标签系统 先从单一资源开始,所谓单一资源便是,我们... »

PostgreSQL数据库事务出现未知状态的处理方法

背景 数据库的事务是原子操作,要么成功,要么失败。但是实际上在客户端的视角,可能有第三种状态:unknown状态。 当客户端提交事务结束(rollback , commit , prepare xact , rollback pxact , commit pxact)的请求后,数据库收到请求,数据库可能执行失败,也可能执行成功,不管怎样都要写对于的WAL日志,还有CLOG,然后数据库要将执行结果返... »

深入解读PostgreSQL中的序列及其相关函数的用法

一、简介 序列对象(也叫序列生成器)就是用CREATE SEQUENCE 创建的特殊的单行表。一个序列对象通常用于为行或者表生成唯一的标识符。 二、创建序列 方法一:直接在表中指定字段类型为serial 类型 david=# create table tbl_xulie ( david(# id serial, david(# name text); NOTICE: CREATE TABLE wi... »

PostgreSQL教程(七):函数和操作符详解(3)

九、序列操作函数:     序列对象(也叫序列生成器)都是用CREATE SEQUENCE创建的特殊的单行表。一个序列对象通常用于为行或者表生成唯一的标识符。下面序列函数,为我们从序列对象中获取最新的序列值提供了简单和并发读取安全的方法。   函数 返回类型 描述 nextval(regclass) bigint 递增序列对象到它的下一个数值并且返回该值。这... »

15个postgresql数据库实用命令分享

最初是想找postgresql数据库占用空间命令发现的这篇blog,发现其中提供的几 条命令很有用(但也有几条感觉是充数的=。=),于是就把它翻译过来了。另外这篇文章是09年的,所以里面的内容可能有点过时,我收集了原文中有用的评论放在了最后面。 现在有不少开源软件都在使用postgreSQL作为它们的数据库系统。但公司可能不会招一些全职的postgreSQL DBA来维护它(piglei: 在国内... »

PostgreSQL中的XML操作函数代码

XML内容生成部分 SQL数据生成XML的函数。 1. xmlcomment:生成注释函数。 xmlcomment(text ) 例: SELECT xmlcomment(‘hello’); xmlcomment ————– <!–hello–> 2. xmlconcat:XML... »

PostgreSQL中使用数组改进性能实例代码

PostgreSQL中使用数组改进性能实例代码

前言 postgresql支持数组类型,可以是基本类型,也可以是用户自定义的类型。日常中使用数组类型的机会不多,但还是可以了解一下。不像C或JAVA高级语言的数组下标从0开始,postgresql数组下标从1开始,既可以指定长度,也可以不指定长度。且postgresql既支持一维数组,也支持多维数组,但是平时二维数组也就够用了。 本文将给大家介绍PostgreSQL通过数组改进性能的相关内容,分享... »

Linux下创建Postgresql数据库的方法步骤

Linux下创建Postgresql数据库的方法步骤

前言 PostgreSQL (也叫 Postgres)是一个自由的对象-关系数据库服务器(数据库管理系统),它在灵活的 BSD-风格许可证下发行。因为之前用默认的配置创建pgsql数据库,导致root的占用率达到97%: 所以决定重新创建一次数据库,很多坑又忘了。为了避免以后再忘记,所以决定记录下面,分享出来供大家参考学习,下面来一起看看详细的介绍吧。 创建步骤如下: 创建一个放Data的文件夹,... »

Postgresql ALTER语句常用操作小结

postgresql版本:psql (9.3.4)1、增加一列复制代码 代码如下:ALTER TABLE table_name ADD column_name datatype; 2、删除一列复制代码 代码如下:ALTER TABLE table_name DROP column_name; 3、更改列的数据类型复制代码 代码如下:ALTER TABLE t »

PostgreSQL教程(六):函数和操作符详解(2)

六、模式匹配:     PostgreSQL中提供了三种实现模式匹配的方法:SQL LIKE操作符,更近一些的SIMILAR TO操作符,和POSIX-风格正则表达式。     1. LIKE:   代码如下:     string LIKE pattern [ ESCAPE escape-char... »

深入理解PostgreSQL的MVCC并发处理方式

深入理解PostgreSQL的MVCC并发处理方式

Postgre数据库的很大的卖点之一就是它处理并发的方式。Postgres通过一个叫做 多版本并发控制 的机制做到了这一点。当你使用PostgreSQL来设计高并发的应用时,理解它的MVCC是怎么实现的很重要。举个例子,当你插入一行记录时,Postgre会把当前事务的XID存储在这一行中并称之为 xmin 。这应该成为一个例行的维护,所以Postgre自带了auto_vacuum守护进程会在一个可... »

用一整天的时间安装postgreSQL  NTFS权限

用一整天的时间安装postgreSQL NTFS权限

由于某个项目要求,需要安装postgreSQL,于是下载来.exe的安装文件运行。 一开始很顺利,可哪知安装到最后,初始化数据库的时候出现了一个该死的对话框(在此画个圈圈诅咒微软,他跳出来的错误对话框从来没什么用)云: Exception Processing Message c0000135 Parameters 759851d8 759851d8 759851d8 759851d8 手动运行i... »

Postgresql备份和增量恢复方案

前言 最近工作上使用的数据库一直是Postgresql,这是一款开源的数据库,而且任何个人可以将该数据库用于商业用途。在使用Postgresql的时候,让我最明显的感觉就是这数据库做的真心好,虽然说数据库的安装包真的很小,但是性能和操作的便捷是一点也不输给其他商业的大型数据库,另外在命令行界面下对该数据库直接进行操作的感觉真的是很爽。在使用数据库的时候,我们作为小公司的数据库管理员有一项工作是不可... »

PostgreSQL中如何使用dblink实现跨库查询

PostgreSQL中使用dblink实现跨库查询的方法

最近一个sql语句涉及到跨库的表之间的联合查询,故研究学习下。 一开始研究知道了sql语句的写法,但是执行通过不了,需要先安装dblink扩展。这些博文里都没说清楚,感谢网友指点,在windows下只需要在相应的数据库下执行sql语句“create extension dblink”就ok了。而以上的博文基本上说的都是linux下的操作方法,也因此我走了弯路。 2.下载了PostgreSQL的源代... »

SQLite教程(七):数据类型详解

一、存储种类和数据类型:     SQLite将数据值的存储划分为以下几种存储类型:   代码如下:      NULL: 表示该值为NULL值。      INTEGER: 无符号整型值。      REAL: 浮点值。  &n... »

PostgreSQL教程(五):函数和操作符详解(1)

PostgreSQL教程(五):函数和操作符详解(1)

一、逻辑操作符:     常用的逻辑操作符有:AND、OR和NOT。其语义与其它编程语言中的逻辑操作符完全相同。 二、比较操作符:     下面是PostgreSQL中提供的比较操作符列表: 比较操作符可以用于所有可以比较的数据类型。所有比较操作符都是双目操作符,且返回boolean类型。除了比较操作符以外,我们还可以使用BETWEEN语... »

Windows下Postgresql数据库的下载与配置方法

Windows下Postgresql数据库的下载与配置方法

注意下载的是二进制版,不是带Windows Installer的。 http://www.enterprisedb.com/products-services-training/pgbindownload x86下载http://get.enterprisedb.com/postgresql/postgresql-9.2.4-1-windows-binaries.zip x64下载http://g... »

解决PostgreSQL服务启动后占用100% CPU卡死的问题

进程中有N个postgres.exe(此为正常,见官方文档),却有一个始终占满CPU(由于本机是双核,占用了50%的资源)。自带的pgAdmin III连接会死掉。 此问题在网上搜索没找到答案。 查看日志发现有这样一条错误信息: %t LOG:  could not receive data from client: An operation was attempted on somet... »

Postgresql主从异步流复制方案的深入探究

前言 数据库的备份工作在日常生产中极为重要,如果你咨询一个DBA如何才能设计出高可用的数据备份与恢复方案,相信很多人都会从架构上给出很多容灾的意见。但归根到底,如果业务环节中数据库还牵涉到分布式环境,我认为一个好的方案需要达到三大要求: 多副本 持久化 一致性 日常架构设计中,我们不仅要保证数据额的成功备份,还要保证备份的数据可以快速恢复。在众多备份恢复可靠性方案中 主从复制 技术,可以说是最常见... »

PostgreSQL数据库中跨库访问解决方案

PostgreSQL跨库访问有3种方法:Schema,dblink,postgres_fdw。 方法A:在PG上建立不同SCHEMA,将数据和存储过程分别放到不同的schema上,经过权限管理后进行访问。 方法A的示例如下: 测试1(测试postgres超级用户对不同schema下对象的访问) 查看当前数据库中的schema  postgres=# \dn  List of s... »

PostgreSQL教程(二十):PL/pgSQL过程语言

一、概述:     PL/pgSQL函数在第一次被调用时,其函数内的源代码(文本)将被解析为二进制指令树,但是函数内的表达式和SQL命令只有在首次用到它们的时候,PL/pgSQL解释器才会为其创建一个准备好的执行规划,随后对该表达式或SQL命令的访问都将使用该规划。如果在一个条件语句中,有部分SQL命令或表达式没有被用到,那么PL/pgSQL解释器在本次调用中将不会为... »

PostgreSQL教程(四):数据类型详解

PostgreSQL教程(四):数据类型详解

在目前的PostgreSQL版本中,decimal和numeric是等效的。虽然在某些其它的数据库系统里,char有一定的性能优势,但在PostgreSQL里没有。 »

Debian中PostgreSQL数据库安装配置实例

用惯了MySQL后,想尝试使用下PostgreSQL,据说这玩意儿也很强大,我在网上搜索了下相关中文书籍,可惜相关书籍远远没有MySQL那么多,不过我在官方找到了由志愿者翻译的文档(参考9.1文档翻译项目),说实话我英文文档阅读能力还是比较纠结的,所以有中文文档当然优先中文了。 在Debian下可以通过apt-get命令直接安装: 代码如下:sudo apt-get install postgre... »

PostgreSQL 安装和简单使用第1/2页

据我了解国内四大国产数据库,其中三个都是基于PostgreSQL开发的。并且,因为许可证的灵活,任何人都可以以任何目的免费使用,修改,和分发 PostgreSQL,不管是私用,商用,还是学术研究使用。本文只是简单介绍一下postgresql的安装和简单的使用,语法方面涉及的比较少,以方便新手上路为目的。 1.系统环境和安装方法 ; PostgreSQL的安装方法比较灵活,可以用源码包安装,也可以用... »

Page 1 of 6123»