
正文
包含postgresql体系结构的词条
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
powerdesigner能不能生成postgres表
方法一:通过查找表数据文件方式这种方法通过查找表的数据文件的方式从而确定表的创建时间,但是这种方法并不能准备查询表的创建时间,而且有时候,这种方法得到的信息还有可能是错误的,下面大致演示下。--1.1创建表并插入数据francs=createtabletest_ctime(idint4primarykey,namevarchar(32));NOTICE:CREATETABLE/PRIMARYKEYwillcreateimplicitindex"test_ctime_pkey"fortable"test_ctime"CREATETABLEfrancs=insertintotest_ctimeselectgenerate_series(1,10000),'create_timetest';INSERT010000francs=\dtest_ctime;Table"francs.test_ctime"Column|Type|Modifiers--------+-----------------------+-----------id|integer|notnullname|charactervarying(32)|Indexes:"test_ctime_pkey"PRIMARYKEY,btree(id)francs=\dt+test_ctime;ListofrelationsSchema|Name|Type|Owner|Size|Description--------+------------+-------+--------+--------+-------------francs|test_ctime|table|francs|536kB|(1row)备注:表创建好了,接下来演示如何定位表的物理文件。--1.2定位表所在的表空间francs=selectrelname,relfilenode,reltablespacefrompg_classwhererelname='test_ctime';relname|relfilenode|reltablespace------------+-------------+---------------test_ctime|24650|0(1row)备注:在PostgreSQL的逻辑结构体系中,表位于数据库中,同时表位于表空间上,面表空间对应系统上一个文件目录,每个表由一个或者多个文件组成;根据上面的结果,表test_ctime的reltablespace值为0,表示位于所属数据库的默认表空间,注意relfilenode值为24650。--1.3查询数据库francs的默认表空间francs=selectoid,datname,dattablespacefrompg_databasewheredatname='francs';oid|datname|dattablespace-------+---------+---------------16386|francs|16385备注:上面查出数据库francs的默认表空间的oid为16385。--1.4查找oid为16385的表空间francs=selectoid,*frompg_tablespacewhereoid=16385;oid|spcname|spcowner|spcacl|spcoptions-------+------------+----------+-----------------------------------------+------------16385|tbs_francs|10|{postgres=C/postgres,francs=C/postgres}|(1row)备注:查了半天才查到表test_ctime的默认表空间为tbs_francs,这里之所以饶这么大圈,是为了展示postgresql中的一些逻辑结构关系,如果自己对环境比较熟悉,可以直接定位到哪个表空间。--1.5查询表空间tbs_francs对应的物理目录francs=\dbListoftablespacesName|Owner|Location------------+----------+------------------------------------------pg_default|postgres|pg_global|postgres|tbs_francs|postgres|/database/1922/pgdata1/pg_tbs/tbs_francs(3rows)备注:表空间tbs_francs的数据目录为/database/1922/pgdata1/pg_tbs/tbs_francs。--1.6进入数据目录[postgres@redhat616386]$cd/database/1922/pgdata1/pg_tbs/tbs_francs[postgres@redhat6tbs_francs]$lltotal4.0Kdrwx------.4postgrespostgres4.0KMay2210:35PG_9.2_201204301[postgres@redhat6tbs_francs]$cdPG_9.2_201204301/[postgres@redhat6PG_9.2_201204301]$lltotal16Kdrwx------.2postgrespostgres12KJun2619:0316386drwx------.2postgrespostgres4.0KMay2210:37pgsql_tmp备注:根据前面的步骤1.3查询的信息知道16386为数据库francs的oid。再根据步骤1.2的信息知道表test_ctime的relfilenode值为24650--1.7查找表test_ctime的数据文件[postgres@redhat616386]$ll24650-rw-------.1postgrespostgres512KJun2618:5724650备注:根据数据文件24650知道表的创建时间为2012-06-2618:57。但这种方法并不准确,因为表上的操作可能导致表重新生成文件,接着演示。--1.8cluster表francs=clusterverbosetest_ctimeusingtest_ctime_pkey;INFO:clustering"francs.test_ctime"usingindexscanon"test_ctime_pkey"INFO:"test_ctime":found0removable,10000nonremovablerowversionsin64pagesDETAIL:0deadrowversionscannotberemovedyet.CPU0.00s/0.03usecelapsed0.08sec.CLUSTERfrancs=selectrelname,relfilenode,reltablespacefrompg_classwhererelname='test_ctime';relname|relfilenode|reltablespace------------+-------------+---------------test_ctime|24655|0(1row)备注:表test_ctime经过cluster操作后,重新生成了数据文件,文件号由原来的24650变成了24655--1.9系统上再次查询表数据文件[postgres@redhat616386]$ll24650-rw-------.1postgrespostgres0Jun2619:1924650[postgres@redhat616386]$ll24655-rw-------.1postgrespostgres512KJun2619:1924655备注:显然新文件的时间24655并不是表test_ctime的初始创建时间。--1.10vacuumfull表francs=vacuumfulltest_ctime;VACUUMfrancs=selectrelname,relfilenode,reltablespacefrompg_classwhererelname='test_ctime';relname|relfilenode|reltablespace------------+-------------+---------------test_ctime|24659|0(1row)备注:vacuumfull操作后,同样产生了新文件,新文件号为24659--1.11系统上再次查询表数据文件[postgres@redhat616386]$ll24659-rw-------.1postgrespostgres512KJun2619:2224659
相关问答
Q1: postgreSQL数据库有什么用啊?
优点事实上, PostgreSQL 的特性覆盖了 SQL-2/SQL-92 和 SQL-3/SQL-99,首先,它包括了可以说是目前世界上最丰富的数据类型的支持,其中有些数据类型可以说连商业数据库都不具备, 比如 IP 类型和几何类型等;其次,PostgreSQL 是全功能的自由软件数据库,很长时间以来,PostgreSQL 是唯一支持事务、子查询、多版本并行控制系统、数据完整性检查等特性的唯一的一种自由软件的数据库管理系统。直到最近才有 Inprise 的 InterBase 以及 SAP 等厂商将其原先专有软件开放为自由软件之后才打破了这个唯一。最后,PostgreSQL拥有一支非常活跃的开发队伍,而且在许多黑客的努力下,PostgreSQL 的质量日益提高。
从技术角度来讲,PostgreSQL 采用的是比较经典的 C/S (client/server)结构,也就是一个客户端对应一个服务器端守护进程的模式,这个守护进程分析客户端来的查询请求,生成规划树,进行数据检索并最终把结果格式化输出后返回给客户端。为了便于客户端的程序的编写,由数据库服务器提供了统一的客户端 C 接口。而不同的客户端接口都是源自这个 C 接口,比如 ODBC,JDBC,Python,Perl ,Tcl,C/C++,ESQL 等, 同时也要指出的是,PostgreSQL 对接口的支持也是非常丰富的,几乎支持所有类型的数据库客户端接口。这一点也可以说是 PostgreSQL 一大优点。
缺点
从 Postgres 开始,PostgreSQL 就经受了多次变化。
首先,早期的 PostgreSQL 继承了几乎所有 Ingres, Postgres, Postgres95 的问题:过于学院味,因为首先它的目的是数据库研究,因此不论在稳定性, 性能还是使用方便方面,长期以来一直没有得到重视,直到 PostgreSQL 项目开始以后,情况才越来越好,目前,PostgreSQL 已经完全可以胜任任何中上规模范围内的应用范围的业务。目前有报道的生产数据库的大小已经有 TB 级的数据量,已经逼近 32 位计算的极限。不过学院味也给 PostgreSQL 带来一个意想不到的好处:大概因为各大学的软硬件环境差异太大的缘故,它是目前支持平台最多的数据库管理系统的一种,所支持的平台多达十几种,包括不同的系统,不同的硬件体系。至今,它仍然保持着支持平台最多的数据库管理系统的称号。
其次,PostgreSQL 的确还欠缺一些比较高端的数据库管理系统需要的特性,比如数据库集群,更优良的管理工具和更加自动化的系统优化功能 等提高数据库性能的机制等。
Q2: postgresql内存页面默认大小
8kB。
PostgreSQL数据库管理第二章体系结构概述PostgreSQL是一个功能非常强大的、源代码开放的客户/服务器关系型数据库管理系统(RDBMS)。
Q3: 数据库软件都有那些?
企业里常用的数据库软件有Mysql、PostgreSQL、MicrosoftSQLServer、Oracle数据库、MongoDB。
1、Mysql。
MySQL原本是一个开放源码的关系数据库管理系统,原开发者为瑞典的MySQLAB公司,该公司于2008年被升阳微系统(SunMicrosystems)收购。2009年,甲骨文公司(Oracle)收购升阳微系统公司,MySQL成为Oracle旗下产品。
2、PostgreSQL。
PostgreSQL可以说是目前功能最强大、特性最丰富和结构最复杂的开源数据库管理系统,其中有些特性甚至连商业数据库都不具备。这个起源于加州大学伯克利分校的数据库,现已成为一项国际开发项目,并且拥有广泛的用户群,尤其是在海外,目前国内使用者也越来越多。
PostgreSQL基本上算是见证了整个数据库理论和技术的发展历程,由UCB计算机教授MichaelStonebraker于1986年创建。在此之前,Stonebraker教授主导了关系数据库Ingres研究项目,88年,提出了Postgres的第一个原型设计。
MySQL号称是使用最广泛的开源数据库,而PG则被称为功能最强大的开源数据库。
3、MicrosoftSQLServer。
SQLServer是一个高度可扩展的产品,可以从一个单一的笔记本电脑上运行的任何东西或以高倍云服务器网络,或在两者之间任何东西。虽然说是“任何东西”,但是仍然要满足相关的软件和硬件的要求。
4、Oracle数据库。
Oracle数据库系统是美国Oracle(甲骨文)公司提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(Client/Server,C/S)或浏览器/服务器(Browser/Server,B/S)体系结构的数据库之一。
Oracle数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。
关于postgresql体系结构和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







