欢迎大家赞助一杯啤酒🍺 我们准备了下酒菜:Formal mathematics/Isabelle/ML, Formal verification/Coq/ACL2, C++/F#/Lisp
PostgreSQL
PostgreSQL: The world's most advanced open source database
目录 |
简介
PostgreSQL 是一种非常复杂的对象-关系型数据库管理系统(ORDBMS),也是目前功能最强大,特性最丰富和最复杂的自由软件数据库系统。
PostgreSQL 的特性覆盖了 SQL-2/SQL-92 和 SQL-3/SQL-99,首先,它包括了可以说是目前世界上最丰富的数据类型的支持,其中有些数据类型可以说连商业数据库都不具备, 比如 IP 类型和几何类型等;其次,PostgreSQL 是全功能的自由软件数据库,很长时间以来,PostgreSQL 是唯一支持事务、子查询、多版本并行控制系统、数据完整性检查等特性的唯一的一种自由软件的数据库管理系统。直到最近才有 Inprise 的 InterBase 以及 SAP 等厂商将其原先专有软件开放为自由软件之后才打破了这个唯一。
PostgreSQL 提供了统一的客户端 C 接口。而不同的客户端接口都是源自这个 C 接口,比如 ODBC,JDBC,Python,Perl ,Tcl,C/C++,ESQL 等。
PostgreSQL 已经完全可以胜任任何中上规模范围内的应用范围的业务。目前有报道的生产数据库的大小已经有 TB 级的数据量,已经逼近 32 位计算的极限。 PostgreSQL是目前支持平台最多的数据库管理系统的一种, 所支持的平台多达十几种,包括不同的系统,不同的硬件体系。至今,它仍然保持着支持平台最多的数据库管理系统的称号。
PostgreSQL 的确还欠缺一些比较高端的数据库管理系统需要的特性,比如联机热备份,数据库集群,更优良的管理工具和更加自动化的系统优化功能 等提高数据库性能的机制等。
总而言之,PostgreSQL的特性已经完全可以满足绝大部分用户的需要,而且其质量和特性仍然在日新月异地进步着,所以, 我们有理由相信在不远的将来,PostgreSQL 肯定能够成为一种优秀的,自由的,商业数据库的替代产品。
最新版:8.2 http://blogs.huihoo.com/?p=307
安装指南
./configure gmake // ln -s /usr/bin/make /usr/bin/gmake su gmake install adduser postgres mkdir /usr/local/pgsql/data chown postgres /usr/local/pgsql/data su - postgres // sudo su postgres /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >logfile 2>&1 & /usr/local/pgsql/bin/createdb test /usr/local/pgsql/bin/psql test
stop postgresql
su postgres or sudo su postgres /usr/local/pgsql/bin/pg_ctl stop -D /usr/local/pgsql/data/
注意: postgres在默认是不接受tcp/ip连接的。有两种方式来控制它接受tcp/ip连接,一种是用启动参数 -i ,另一种方式是修改数据库目录里的文件:postgresql.conf中的参数,将tcpip_socket = false改为true port = 5432 前面的注释符号去掉。表示接受tcp/ip在5432的连接。
Examples
http://pgfoundry.org/projects/dbsamples/ - A collection of sample databases for PostgreSQL.
大家可用这些数据做实验 :)
如 Dell Store2 database http://linux.dell.com/dvdstore/ , dbsamples 对 dvdstore database 做了 PosgreSQl port
createdb -E LATIN1 dellstore2 -U postgres createlang plpgsql dellstore2 -U postgres psql -f dellstore.sql dellstore2 -U postgres
命令
- createdb—Creates a new database in postgreSQL. A database name is required when using this command.
- createuser—Creates a postgreSQL user. A user name is required when using this command.
- dropdb—Removes a database from postgreSQL. A database name is required when using this command.
- dropuser—Removes a postgreSQL user. A user name is required when using this command.
- initdb—Creates a new postgreSQL database installation. This command is used only once when the database is installed. It creates the base directory. This command cannot be used again.
- psql—SQL interface to the postgreSQL databases. A database name is required when using this command.
- vacuumdb—Cleans and analyzes a postgreSQL database.
常用用法
$ createdb mydb $ dropdb mydb $ psql mydb mydb=> SELECT version(); mydb=> show all; // 显示运行时参数的数值 pg_dump -x databasename > outfile psql -e database < outfile CREATE TABLE weather ( city varchar(80), temp_lo int, -- 最低气温 temp_hi int, -- 最高气温 prcp real, -- 降水量 date date ); DROP TABLE tablename; postgres@debian:~$ psql -l List of databases Name | Owner | Encoding -----------+----------+---------- template0 | postgres | EUC_CN template1 | postgres | EUC_CN test | postgres | EUC_CN (3 rows)
postgres@debian:~$ psql template1 template1=# select * from pg_tables; template1=# create user huihoo password 'huihoo' createdb;
PostgreSQL Limits
Limit Value
- Maximum Database Size Unlimited
- Maximum Table Size 32 TB
- Maximum Row Size 1.6 TB
- Maximum Field Size 1 GB
- Maximum Rows per Table Unlimited
- Maximum Columns per Table 250 - 1600 depending on column types
- Maximum Indexes per Table Unlimited
PostgreSQL发行版
- EnterpriseDB http://www.enterprisedb.com/
- Pervasive http://www.pervasive.com/
- PostgreSQL - Red Hat Edition http://sourceware.org/rhdb/
Graphical Clients
- pgAdmin III - Cross-platform administration tool
- PhpPgAdmin - Web-based PostgreSQL administration tool
Replication
Cluster/HPC
相关项目
商业支持
- Fujitsu Supported PostgreSQL - http://postgresql.fastware.com
- PostgreSQL for Solaris 10 - http://www.sun.com/software/solaris/postgresql.jsp
成功应用
商业应用
在线文档
- PostgreSQL 8.1 中文文档 - http://www.huihoo.com/postgresql/pgsqldoc-8.1c/
- PostgreSQL 8.0.0 中文文档 - http://www.huihoo.com/postgresql/postgresql-doc-8.0-zh_CN/
- PostgreSQL 7.4 中文文档 - http://www.huihoo.com/postgresql/postgresql-doc-7.4-zh_CN/
- PostgreSQL 7.3.3 中文文档 - http://www.huihoo.com/postgresql/pgsql-doc-7.3/
- PostgreSQL 7.1.1 中文文档 - http://www.huihoo.com/postgresql/pgsqldoc-7.1C/postgres.html
相关链接
- http://www.postgresql.org
- pgAdmin http://www.pgadmin.org/
- phpPgAdmin http://phppgadmin.sourceforge.net
- PostgreSQL 中文网 http://www.pgsqldb.org/
- 数据库迁移:将你的网站从MySQL改为PostgreSQL http://linux.chinaunix.net/docs/2006-12-06/3413.shtml