数据库-PostgreSQL
五柳-先生
宅边有五柳树,因以为号焉。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
PostgreSQL与MySQL比较
本帖最后由 osdba 于 2011-04-21 16:33 编辑特性MySQLPostgreSQL实例通过执行 MySQL 命令(mysqld)启动实例。一个实例可以管理一个或多个数据库。一台服务器可以运行多个 mysqld 实例。一个实例管理器可以监视 mysqld 的各个实例。通过执行 Postmaster 进程(p转载 2015-09-15 16:54:16 · 519 阅读 · 0 评论 -
PostgreSQL学习手册(表的继承和分区)
一、表的继承: 这个概念对于很多已经熟悉其他数据库编程的开发人员而言会多少有些陌生,然而它的实现方式和设计原理却是简单易懂,现在就让我们从一个简单的例子开始吧。 1. 第一个继承表: CREATE TABLE cities ( --父表 name text, population float,转载 2015-11-12 21:12:24 · 445 阅读 · 0 评论 -
PostgreSQL学习手册(数据库维护)
一、恢复磁盘空间: 在PostgreSQL中,使用delete和update语句删除或更新的数据行并没有被实际删除,而只是在旧版本数据行的物理地址上将该行的状态置为已删除或已过期。因此当数据表中的数据变化极为频繁时,那么在一段时间之后该表所占用的空间将会变得很大,然而数据量却可能变化不大。要解决该问题,需要定期对数据变化频繁的数据表执行VACUUM操作。 VACUUM命令存转载 2015-11-12 21:25:31 · 397 阅读 · 0 评论 -
PostgreSQL的监控一(pgsnap & pgstatspack)
转载:http://blog.chinaunix.net/uid-20726500-id-4504167.html监控postgreSQL的方法很多,本文做个简单的比较。大的方面,监控方法可以分为以下几种1 直接利用PG提供的性能统计数据PG的很多性能数据可以通过查询pg_stat_或pg_statio_开头的系统表获取。比如:postgres=# \x转载 2015-11-13 14:33:34 · 1217 阅读 · 0 评论 -
PostgreSQL学习手册(性能提升技巧)
一、使用EXPLAIN: PostgreSQL为每个查询都生成一个查询规划,因为选择正确的查询路径对性能的影响是极为关键的。PostgreSQL本身已经包含了一个规划器用于寻找最优规划,我们可以通过使用EXPLAIN命令来查看规划器为每个查询生成的查询规划。 PostgreSQL中生成的查询规划是由1到n个规划节点构成的规划树,其中最底层的节点为表扫描节点,用于从数据表中返转载 2015-11-12 21:20:46 · 349 阅读 · 0 评论 -
PostgreSQL学习手册(函数和操作符<一>)
一、逻辑操作符: 常用的逻辑操作符有:AND、OR和NOT。其语义与其它编程语言中的逻辑操作符完全相同。二、比较操作符: 下面是PostgreSQL中提供的比较操作符列表:操作符描述小于>大于小于或等于>=大于或等于=等于!=不等于转载 2015-12-29 11:28:12 · 751 阅读 · 0 评论 -
PostgreSQL学习手册(函数和操作符<二>)
六、模式匹配: PostgreSQL中提供了三种实现模式匹配的方法:SQL LIKE操作符,更近一些的SIMILAR TO操作符,和POSIX-风格正则表达式。 1. LIKE: string LIKE pattern [ ESCAPE escape-character ] string NOT LIKE pattern [ ESCAPE escape-转载 2015-12-29 11:38:26 · 465 阅读 · 0 评论 -
PostgreSQL学习手册(函数和操作符<三>)
九、序列操作函数: 序列对象(也叫序列生成器)都是用CREATE SEQUENCE创建的特殊的单行表。一个序列对象通常用于为行或者表生成唯一的标识符。下面序列函数,为我们从序列对象中获取最新的序列值提供了简单和并发读取安全的方法。函数返回类型描述nextval(regclass)bigint递增序列对象到它的下一个数值并且返回该转载 2015-12-29 11:39:56 · 428 阅读 · 0 评论 -
PostgreSQL学习手册(索引)
一、索引的类型: PostgreSQL提供了多 种索引类型:B-Tree、Hash、GiST和GIN,由于它们使用了不同的算法,因此每种索引类型都有其适合的查询类型,缺省时,CREATE INDEX命令将创建B-Tree索引。 1. B-Tree: CREATE TABLE test1 ( id integer,转载 2015-12-29 11:41:21 · 404 阅读 · 0 评论 -
PostgreSQL学习手册(事物隔离)
在SQL的标准中事物隔离级别分为以下四种: 1. 读未提交(Read uncommitted) 2. 读已提交(Read committed) 3. 可重复读(Repeatable read) 4. 可串行化(Serializable) 然而PostgreSQL在9.1之前的版本中只是实现了其中两种,即读已提交和可串行化,如果在实际应用中选择了另外转载 2015-12-29 11:43:01 · 406 阅读 · 0 评论 -
PostgreSQL学习手册(性能提升技巧)
一、使用EXPLAIN: PostgreSQL为每个查询都生成一个查询规划,因为选择正确的查询路径对性能的影响是极为关键的。PostgreSQL本身已经包含了一个规划器用于寻找最优规划,我们可以通过使用EXPLAIN命令来查看规划器为每个查询生成的查询规划。 PostgreSQL中生成的查询规划是由1到n个规划节点构成的规划树,其中最底层的节点为表扫描节点,用于从数据表中返转载 2015-12-29 11:44:55 · 429 阅读 · 0 评论 -
PostgreSQL学习手册(角色和权限)
PostgreSQL是通过角色来管理数据库访问权限的,我们可以将一个角色看成是一个数据库用户,或者一组数据库用户。角色可以拥有数据库对象,如表、索引,也可以把这些对象上的权限赋予其它角色,以控制哪些用户对哪些对象拥有哪些权限。 一、数据库角色: 1. 创建角色: CREATE ROLE role_name; 2. 删除角色: D转载 2015-12-29 11:47:00 · 443 阅读 · 0 评论 -
PostgreSQL学习手册(数据库管理)
一、概述: 数据库可以被看成是SQL对象(数据库对象)的命名集合,通常而言,每个数据库对象(表、函数等)只属于一个数据库。不过对于部分系统表而言,如pg_database,是属于整个集群的。更准确地说,数据库是模式的集合,而模式包含表、函数等SQL对象。因此完整的对象层次应该是这样的:服务器、数据库、模式、表或其他类型的对象。 在与数据库服务器建立连接时,该连接只能与一个数转载 2015-12-29 11:49:02 · 459 阅读 · 0 评论 -
PostgreSQL学习手册(数据库维护)
一、恢复磁盘空间: 在PostgreSQL中,使用delete和update语句删除或更新的数据行并没有被实际删除,而只是在旧版本数据行的物理地址上将该行的状态置为已删除或已过期。因此当数据表中的数据变化极为频繁时,那么在一段时间之后该表所占用的空间将会变得很大,然而数据量却可能变化不大。要解决该问题,需要定期对数据变化频繁的数据表执行VACUUM操作。 VACUUM命令存转载 2015-12-29 11:49:47 · 403 阅读 · 0 评论 -
PostgreSQL学习手册(系统表)
一、pg_class: 该系统表记录了数据表、索引(仍然需要参阅pg_index)、序列、视图、复合类型和一些特殊关系类型的元数据。注意:不是所有字段对所有对象类型都有意义。名字类型引用描述relnamename 数据类型名字。relnamespaceoidpg_namespace.oid包含转载 2015-12-29 11:50:43 · 482 阅读 · 0 评论 -
PostgreSQL学习手册(系统视图)
一、pg_tables: 该视图提供了对有关数据库中每个表的有用信息地访问。名字类型引用描述schemanamenamepg_namespace.nspname包含表的模式名字。tablenamenamepg_class.relname表的名字。tableownername转载 2015-12-29 11:52:24 · 490 阅读 · 0 评论 -
PostgreSQL学习手册(客户端命令<一>)
零、口令文件: 在给出其它PostgreSQL客户端命令之前,我们需要先介绍一下PostgreSQL中的口令文件。之所以在这里提前说明该文件,是因为我们在后面的示例代码中会大量应用该文件,从而保证我们的脚本能够自动化完成。换句话说,如果在客户端命令执行时没有提供该文件,PostgreSQL的所有客户端命令均会被口令输入提示中断。 在当前用户的HOME目录下,我们需要手工创建转载 2015-12-29 11:53:14 · 460 阅读 · 0 评论 -
PostgreSQL学习手册(SQL语言函数)
一、基本概念: SQL函数可以包含任意数量的查询,但是函数只返回最后一个查询(必须是SELECT)的结果。在简单情况下,返回最后一条查询结果的第一行。如果最后一个查询不返回任何行,那么该函数将返回NULL值。如果需要该函数返回最后一条SELECT语句的所有行,可以将函数的返回值定义为集合,即SETOF sometype。 SQL函数的函数体应该是用分号分隔的SQL语句列表,转载 2015-12-29 12:29:10 · 529 阅读 · 0 评论 -
安装PostgreSQL数据库(Linux篇)
0.编译环境Linux: CentOS 5.5gcc: 4.1.21. 安装PostgreSQL1) 解压postgresql-9.1.7.tar.bz2#tar jxvf postgresql-9.1.7.tar.bz2 2) 进入解压后的postgresql-9.1.7目录#cd postgresql-9.1.73) 编译转载 2015-11-12 19:28:55 · 504 阅读 · 0 评论 -
PostgreSQL的监控二(pgwatch & pg_statsinfo)
2.3 pgwatchhttp://www.cybertec.at/postgresql_produkte/pgwatch-cybertec-enterprise-postgresql-monitor/主要特性:- 配置简单- 大量的监控图表- 快速系统检查面板- 自动收集统计信息- 交互式的 Flash 图表- 集成 SQL worksheetpgwatc转载 2015-11-13 14:37:36 · 3968 阅读 · 1 评论 -
PostgreSQL学习手册(客户端命令<二>)
七、pg_dump: pg_dump是一个用于备份PostgreSQL数据库的工具。它甚至可以在数据库正在并发使用时进行完整一致的备份,而不会阻塞其它用户对数据库的访问。该工具生成的转储格式可以分为两种,脚本和归档文件。其中脚本格式是包含许多SQL命令的纯文本格式,这些SQL命令可以用于重建该数据库并将之恢复到生成此脚本时的状态,该操作需要使用psql来完成。至于归档格式,如果需要重转载 2015-11-12 21:28:40 · 422 阅读 · 0 评论 -
PostgreSQL学习手册(服务器配置)
一、服务器进程的启动和关闭: 下面是pg_ctl命令的使用方法和常用选项,需要指出的是,该命令是postgres命令的封装体,因此在使用上比直接使用postgres更加方便。 pg_ctl init[db] [-D DATADIR] [-s] [-o "OPTIONS"] pg_ctl start [-w] [-t SECS] [-D DATADIR] [转载 2015-11-12 21:21:44 · 424 阅读 · 0 评论 -
PostgreSQL学习手册(数据表)
一、表的定义: 对于任何一种关系型数据库而言,表都是数据存储的最核心、最基础的对象单元。现在就让我们从这里起步吧。 1. 创建表: CREATE TABLE products ( product_no integer, name text, price numeric ); 2.转载 2015-11-12 21:07:41 · 357 阅读 · 0 评论 -
PostgreSQL学习手册(事物隔离)
在SQL的标准中事物隔离级别分为以下四种: 1. 读未提交(Read uncommitted) 2. 读已提交(Read committed) 3. 可重复读(Repeatable read) 4. 可串行化(Serializable) 然而PostgreSQL在9.1之前的版本中只是实现了其中两种,即读已提交和可串行化,如果在实际应用中选择了另外转载 2015-11-12 21:19:22 · 392 阅读 · 0 评论 -
postgresql远程不能访问 - PostgreSQL9.4.5
postgresql默认情况下,远程访问不能成功,如果需要允许远程访问,需要修改两个配置文件,说明如下:1.postgresql.conf将该文件中的listen_addresses项值设定为“*”,在9.4.5 Linux版中,该文件位置在data目录下。2.pg_hba.conf在该配置文件的host all all 127.0.0.1/32 trust行下添加原创 2015-11-12 20:44:28 · 2787 阅读 · 0 评论 -
PostgreSQL学习手册(客户端命令<一>)
在给出其它PostgreSQL客户端命令之前,我们需要先介绍一下PostgreSQL中的口令文件。之所以在这里提前说明该文件,是因为我们在后面的示例代码中会大量应用该文件,从而保证我们的脚本能够自动化完成。换句话说,如果在客户端命令执行时没有提供该文件,PostgreSQL的所有客户端命令均会被口令输入提示中断。 在当前用户的HOME目录下,我们需要手工创建文件名为 .pgpass的口令转载 2015-11-12 21:04:34 · 421 阅读 · 0 评论 -
PostgreSQL学习手册(函数和操作符<二>)
六、模式匹配: PostgreSQL中提供了三种实现模式匹配的方法:SQL LIKE操作符,更近一些的SIMILAR TO操作符,和POSIX-风格正则表达式。 1. LIKE: string LIKE pattern [ ESCAPE escape-character ] string NOT LIKE pattern [ ESCAPE escape-转载 2015-11-12 21:15:46 · 338 阅读 · 0 评论 -
PostgreSQL学习手册(函数和操作符<三>)
九、序列操作函数: 序列对象(也叫序列生成器)都是用CREATE SEQUENCE创建的特殊的单行表。一个序列对象通常用于为行或者表生成唯一的标识符。下面序列函数,为我们从序列对象中获取最新的序列值提供了简单和并发读取安全的方法。函数返回类型描述nextval(regclass)bigint递增序列对象到它的下一个数值并且返回该转载 2015-11-12 21:16:43 · 417 阅读 · 0 评论 -
PostgreSQL学习手册(系统表)
一、pg_class: 该系统表记录了数据表、索引(仍然需要参阅pg_index)、序列、视图、复合类型和一些特殊关系类型的元数据。注意:不是所有字段对所有对象类型都有意义。名字类型引用描述relnamename 数据类型名字。relnamespaceoidpg_namespace.oid包含原创 2015-11-12 21:26:33 · 395 阅读 · 0 评论 -
PostgreSQL学习手册(常用数据类型)
一、数值类型: 下面是PostgreSQL所支持的数值类型的列表和简单说明:名字存储空间描述范围smallint2 字节小范围整数-32768 到 +32767integer4 字节常用的整数-2147483648 到 +2147483647bigint8 字节大范围的整数转载 2015-11-12 21:13:22 · 355 阅读 · 0 评论 -
PostgreSQL学习手册(SQL语言函数)
一、基本概念: SQL函数可以包含任意数量的查询,但是函数只返回最后一个查询(必须是SELECT)的结果。在简单情况下,返回最后一条查询结果的第一行。如果最后一个查询不返回任何行,那么该函数将返回NULL值。如果需要该函数返回最后一条SELECT语句的所有行,可以将函数的返回值定义为集合,即SETOF sometype。 SQL函数的函数体应该是用分号分隔的SQL语句列表,转载 2015-11-13 09:06:26 · 509 阅读 · 0 评论 -
PostgreSQL的监控三(zabbix)
3 共通的监控工具前面介绍的PostgreSQL监控工具都偏向于性能分析,没有告警功能。而且它们只是针对PostgreSQL的监视,有时需要监控整个业务相关的系统,这时候就要考虑通用的监控工具了。Linux下比较适合监控数据库的常用的工具有Nagios和Zabbix。Zabbix更容易使用,现在看上去也更被多数人看好,所以本文只介绍Zabbix监控PostgreSQL的方法。3.转载 2015-11-13 14:39:55 · 7153 阅读 · 1 评论 -
PostgreSQL学习手册(函数和操作符<一>)
一、逻辑操作符: 常用的逻辑操作符有:AND、OR和NOT。其语义与其它编程语言中的逻辑操作符完全相同。二、比较操作符: 下面是PostgreSQL中提供的比较操作符列表:操作符描述小于>大于小于或等于>=大于或等于=等于!=不等于转载 2015-11-12 21:14:58 · 439 阅读 · 0 评论 -
PostgreSQL学习手册(索引)
一、索引的类型: PostgreSQL提供了多 种索引类型:B-Tree、Hash、GiST和GIN,由于它们使用了不同的算法,因此每种索引类型都有其适合的查询类型,缺省时,CREATE INDEX命令将创建B-Tree索引。 1. B-Tree: CREATE TABLE test1 ( id integer,转载 2015-11-12 21:18:08 · 368 阅读 · 0 评论 -
PostgreSQL学习手册(角色和权限)
PostgreSQL是通过角色来管理数据库访问权限的,我们可以将一个角色看成是一个数据库用户,或者一组数据库用户。角色可以拥有数据库对象,如表、索引,也可以把这些对象上的权限赋予其它角色,以控制哪些用户对哪些对象拥有哪些权限。 一、数据库角色: 1. 创建角色: CREATE ROLE role_name; 2. 删除角色: D转载 2015-11-12 21:23:02 · 382 阅读 · 0 评论 -
PostgreSQL学习手册(数据库管理)
一、概述: 数据库可以被看成是SQL对象(数据库对象)的命名集合,通常而言,每个数据库对象(表、函数等)只属于一个数据库。不过对于部分系统表而言,如pg_database,是属于整个集群的。更准确地说,数据库是模式的集合,而模式包含表、函数等SQL对象。因此完整的对象层次应该是这样的:服务器、数据库、模式、表或其他类型的对象。 在与数据库服务器建立连接时,该连接只能与一个数转载 2015-11-12 21:24:06 · 403 阅读 · 0 评论 -
PostgreSQL学习手册(系统视图)
一、pg_tables: 该视图提供了对有关数据库中每个表的有用信息地访问。名字类型引用描述schemanamenamepg_namespace.nspname包含表的模式名字。tablenamenamepg_class.relname表的名字。tableownername转载 2015-11-12 21:27:44 · 451 阅读 · 0 评论 -
PostgreSQL学习手册(模式Schema)
一个数据库包含一个或多个命名的模式,模式又包含表。模式还包含其它命名的对象,包括数据类型、函数,以及操作符。同一个对象名可以在不同的模式里使用而不会导致冲突; 比如,schema1和myschema都可以包含叫做mytable的表。和数据库不同,模式不是严格分离的:一个用户可以访问他所连接的数据库中的任意模式中的对象,只要他有权限。 我们需要模式有以下几个主要原因: 1). 允转载 2015-11-12 21:10:05 · 450 阅读 · 0 评论 -
PostgreSQL学习手册(PL/pgSQL过程语言)
一、概述: PL/pgSQL函数在第一次被调用时,其函数内的源代码(文本)将被解析为二进制指令树,但是函数内的表达式和SQL命令只有在首次用到它们的时候,PL/pgSQL解释器才会为其创建一个准备好的执行规划,随后对该表达式或SQL命令的访问都将使用该规划。如果在一个条件语句中,有部分SQL命令或表达式没有被用到,那么PL/pgSQL解释器在本次调用中将不会为其准备执行规划,这样的好转载 2015-12-29 12:30:18 · 674 阅读 · 0 评论
分享