diff options
author | Bruce Momjian <bruce@momjian.us> | 2007-02-01 04:56:41 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2007-02-01 04:56:41 +0000 |
commit | da45866c4251dc2cd96f5b5627501191869e6235 (patch) | |
tree | 4921332f7aa723895dae44d9e59fb919c531c5b2 | |
parent | 1762c4316e8bd58ab4e03330e7ecc0bcefa959ac (diff) | |
download | postgresql-da45866c4251dc2cd96f5b5627501191869e6235.tar.gz postgresql-da45866c4251dc2cd96f5b5627501191869e6235.zip |
Backpatch FAQs to stable branch.
-rw-r--r-- | doc/FAQ | 13 | ||||
-rw-r--r-- | doc/FAQ_AIX | 4 | ||||
-rw-r--r-- | doc/FAQ_HPUX | 2 | ||||
-rw-r--r-- | doc/FAQ_IRIX | 2 | ||||
-rw-r--r-- | doc/FAQ_MINGW | 2 | ||||
-rw-r--r-- | doc/FAQ_SCO | 2 | ||||
-rw-r--r-- | doc/FAQ_Solaris | 2 | ||||
-rw-r--r-- | doc/FAQ_brazilian | 2 | ||||
-rw-r--r-- | doc/FAQ_chinese | 1313 | ||||
-rw-r--r-- | doc/FAQ_czech | 2 | ||||
-rw-r--r-- | doc/FAQ_french | 2 | ||||
-rw-r--r-- | doc/FAQ_german | 2 | ||||
-rw-r--r-- | doc/FAQ_japanese | 2 | ||||
-rw-r--r-- | doc/FAQ_polish | 2 | ||||
-rw-r--r-- | doc/FAQ_turkish | 2 | ||||
-rw-r--r-- | doc/src/FAQ/FAQ.html | 16 | ||||
-rw-r--r-- | doc/src/FAQ/FAQ_brazilian.html | 2 | ||||
-rw-r--r-- | doc/src/FAQ/FAQ_chinese.html | 1881 | ||||
-rw-r--r-- | doc/src/FAQ/FAQ_czech.html | 2 | ||||
-rw-r--r-- | doc/src/FAQ/FAQ_french.html | 2 | ||||
-rw-r--r-- | doc/src/FAQ/FAQ_german.html | 2 | ||||
-rw-r--r-- | doc/src/FAQ/FAQ_japanese.html | 2 | ||||
-rw-r--r-- | doc/src/FAQ/FAQ_polish.html | 2 | ||||
-rw-r--r-- | doc/src/FAQ/FAQ_turkish.html | 2 |
24 files changed, 1742 insertions, 1523 deletions
@@ -1,7 +1,7 @@ Frequently Asked Questions (FAQ) for PostgreSQL - Last updated: Fri Jan 5 15:40:20 EST 2007 + Last updated: Tue Jan 30 17:37:01 EST 2007 Current maintainer: Bruce Momjian (bruce@momjian.us) @@ -27,6 +27,8 @@ 1.11) How can I learn SQL? 1.12) How do I submit a patch or join the development team? 1.13) How does PostgreSQL compare to other DBMSs? + 1.14) Will PostgreSQL handle recent daylight saving time changes in + various countries? User Client Questions @@ -124,7 +126,7 @@ PostgreSQL Data Base Management System - Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group + Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group Portions Copyright (c) 1994-1996 Regents of the University of California @@ -323,6 +325,13 @@ We are free for all use, both commercial and non-commercial. You can add our code to your product with no limitations, except those outlined in our BSD-style license stated above. + + 1.14) Will PostgreSQL handle recent daylight saving time changes in various + countries? + + PostgreSQL versions prior to 8.0 use the operating system's timezone + database for daylight saving information. All current versions of + PostgreSQL 8.0 and later contain up-to-date timezone information. _________________________________________________________________ User Client Questions diff --git a/doc/FAQ_AIX b/doc/FAQ_AIX index 1a894dcb37c..b720c54febf 100644 --- a/doc/FAQ_AIX +++ b/doc/FAQ_AIX @@ -3,7 +3,7 @@ Frequently Asked Questions (FAQ) for PostgreSQL AIX Specific TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ ======================================================= -Last updated: $Date: 2007/01/05 20:57:17 $ +Last updated: $Date: 2007/02/01 04:56:41 $ Topics @@ -16,7 +16,7 @@ Topics ----- From: Zeugswetter Andreas <ZeugswetterA@spardat.at> -$Date: 2007/01/05 20:57:17 $ +$Date: 2007/02/01 04:56:41 $ On AIX 4.3.2 PostgreSQL compiled with the native IBM compiler xlc (vac.C 5.0.1) passes all regression tests. Other versions of OS and diff --git a/doc/FAQ_HPUX b/doc/FAQ_HPUX index 11bb0e9e602..ac7eddd537d 100644 --- a/doc/FAQ_HPUX +++ b/doc/FAQ_HPUX @@ -3,7 +3,7 @@ Frequently Asked Questions (FAQ) for PostgreSQL HP-UX Specific TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ ======================================================= -last updated: $Date: 2007/01/05 20:57:17 $ +last updated: $Date: 2007/02/01 04:56:41 $ current maintainer: Tom Lane (tgl@sss.pgh.pa.us) original author: Tom Lane (tgl@sss.pgh.pa.us) diff --git a/doc/FAQ_IRIX b/doc/FAQ_IRIX index 7030bc4f4c5..3f6044a0c39 100644 --- a/doc/FAQ_IRIX +++ b/doc/FAQ_IRIX @@ -3,7 +3,7 @@ Frequently Asked Questions (FAQ) for PostgreSQL IRIX Specific TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ ======================================================= -last updated: $Date: 2007/01/05 20:57:17 $ +last updated: $Date: 2007/02/01 04:56:41 $ current maintainer: Luis Amigo (lamigo@atc.unican.es) original author: Luis Amigo (lamigo@atc.unican.es) diff --git a/doc/FAQ_MINGW b/doc/FAQ_MINGW index 6a227978b79..cfa3caf9f80 100644 --- a/doc/FAQ_MINGW +++ b/doc/FAQ_MINGW @@ -3,7 +3,7 @@ Last updated: Thu Oct 14 18:22:57 EDT 2004 - Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us) + Current maintainer: Bruce Momjian <bruce@momjian.us> The most recent version of this document can be viewed at http://www.postgresql.org/docs/faqs.FAQ_MINGW.html. diff --git a/doc/FAQ_SCO b/doc/FAQ_SCO index f6aef53ea03..ded027643f5 100644 --- a/doc/FAQ_SCO +++ b/doc/FAQ_SCO @@ -3,7 +3,7 @@ Frequently Asked Questions (FAQ) for PostgreSQL IRIX Specific TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ ======================================================= -last updated: $Date: 2007/01/05 20:57:17 $ +last updated: $Date: 2007/02/01 04:56:41 $ current maintainer: Billy G. Allie (Bill.Allie@mug.org) original author: Andrew Merrill (andrew@compclass.com) diff --git a/doc/FAQ_Solaris b/doc/FAQ_Solaris index 13cf036b389..cc9cb777937 100644 --- a/doc/FAQ_Solaris +++ b/doc/FAQ_Solaris @@ -3,7 +3,7 @@ Frequently Asked Questions (FAQ) for PostgreSQL Sun Solaris specific To be read in conjunction with the installation instructions. ============================================================ -Last updated: $Date: 2007/01/05 20:57:17 $ +Last updated: $Date: 2007/02/01 04:56:41 $ Contents: diff --git a/doc/FAQ_brazilian b/doc/FAQ_brazilian index 450b001351f..1409a9e59f4 100644 --- a/doc/FAQ_brazilian +++ b/doc/FAQ_brazilian @@ -144,7 +144,7 @@ PostgreSQL Data Base Management System - Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group + Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group Portions Copyright (c) 1994-1996 Regents of the University of California diff --git a/doc/FAQ_chinese b/doc/FAQ_chinese index 9e0dd9b33fe..43d46647592 100644 --- a/doc/FAQ_chinese +++ b/doc/FAQ_chinese @@ -1,725 +1,794 @@ - PostgreSQL 常见问题(FAQ) + PostgreSQL 甯歌ч糉AQ锛 - 最近更新:2005 年 06 月 02 日 星期五 22:27:35 CST + 骅挎存帮2007 骞 1 5 妤 骀浜 15:40:20 EST + 涓骁骅挎存帮2007 骞 1 29 妤 骀涓 22:48:04 CST - 目前维护人员:Bruce Momjian (pgman@candle.pha.pa.us) - 中文版维护人员:doudou586 (doudou586_2005@yahoo.com.cn) + 绠彗淮妞浜哄锛Bruce Momjian (pgman@candle.pha.pa.us) + 涓骁缁存や汉屣糄aojing.Zhou锛doudou586@gmail.com锛 - 本文档的最新版本可以在 - http://www.postgresql.org/files/documentation/faqs/FAQ.html查看。 + 娆骀。珂姘珂互濞 + http://www.postgresql.org/files/documentation/faqs/FAQ.html妤玢 - 与操作系统平台相关的问题在http://www.postgresql.org/docs/faq/里回答。 + 涓驿界郴缁骞冲扮稿崇楫棰瀵濞http://www.postgresql.org/docs/faq/殒惧扮 + 妗 _________________________________________________________________ -常见问题 +甯歌ч - 1.1)PostgreSQL 是什么?该怎么发音? - 1.2)PostgreSQL 的版权是什么? - 1.3)PostgreSQL 可以运行在哪些操作系统平台上? - 1.4)我从哪里能得到 PostgreSQL? - 1.5)我从哪里能得到对 PostgreSQL 的支持? - 1.6)我如何提交一个BUG报告? - 1.7)最新版的PostgreSQL 是什么? - 1.8)能够获取的最新文档有哪些? - 1.9)我如何了解已知的 BUG 或暂缺的功能? - 1.10)我应该怎样学习 SQL ? - 1.11)我应该怎样加入开发队伍? - 1.12)PostgreSQL 和其他数据库系统比起来如何? - 1.13)丝刂坪凸芾鞵ostgreSQL ? - -用户客户端问题 + 1.1)PostgreSQL 姣浠涔锛璇ユ涔彘筹 + 1.2)璋妲宥彗鏟ostgreSQL 锛 + 1.3)PostgreSQL珑骀讳癸 + 1.4)PostgreSQL瀵浠ヨ胯″ㄥ烘浣绯荤诲钩灏涓锛 + 1.5)驿诲杞寰灏PostgreSQL锛 + 1.6)骀扮鏟ostgreSQL 姣浠涔锛 + 1.7)驿诲杞寰灏瀵筆ostgreSQL 珂锛 + 1.8)驽︿芥浜や镐釜BUG妤屣 + 1.9)驽︿戒鸿В宸茬ョ BUG 骀缂虹彖斤 + 1.10)杞澶璺彗骀版妗f濯浜锛 + 1.11)驽鸿骀 峰︿ SQL 锛 + 1.12)濡浣驿氦琛ヤ告姣 濂寮彘浼锛 + 1.13)PostgreSQL 邋朵绘版虹郴缁姣璧锋ュ︿斤 + +绋娣瀹㈡风楫棰 - 2.1)我们可以用什么语言和 PostgreSQL 打交道? - 2.2)有什么工具可以把 PostgreSQL 用于 Web 页面? - 2.3)PostgreSQL 拥有图形用户界面吗? + 2.1)驿滑瀵浠ョㄤ讳硅ㄥPostgreSQL 驿氦轱 + 2.2)驿讳瑰伐宸瀵浠ユPostgreSQL 绋浜 Web 椤甸 + 2.3)PostgreSQL 妤驽惧舰绋娣玳㈠锛 -系统管理问题 +绯荤荤玳 - 3.1)我怎样才能把 PostgreSQL 装在 /usr/local/pgsql 以外的地方? - 3.2)我如何控制来自其他主机的连接? - 3.3)我怎样调整数据库引擎以获得更好的性能? - 3.4)PostgreSQL 里可以获得什么样的调试特性? - 3.5)为什么在试图连接登录时收到“Sorry, too many clients” 消息? - 3.6)为什么要在升级 PostgreSQL 主要发布版本时做 dump 和 restore ? - 3.7)(使用PostgreSQL)我需要使用什么计算机硬件 ? - -操作问题 + 3.1)骀 锋杞鍼ostgreSQL 瑁濞 /usr/local/pgsql 浠ュょ灏婀锛 + 3.2)驽︿芥у舵ヨ朵荤佃玷挎ワ + 3.3)骀 疯版存版烘濉濞浠ヨ峰炬村ソ珂ц斤 + 3.4)PostgreSQL 殄互璺寰浠涔 风璋璇绻妲锛 + 3.5)涓轰讳瑰ㄨ捐挎ョ诲芥舵跺扳Sorry, too many clients 娑姣锛 + 3.6)PostgreSQL珏绾ц跨ㄦ濯浜邋锛 + 3.7)(浣跨≒ostgreSQL)骈瑕浣跨ㄤ讳硅绠婧纭欢 锛 + +驿介 - 4.1)如何只选择一个查询结果的头几行?或是随机的一行? - 4.2)如何查看表、索引、数据库以及用户的定义?如何查看psql里用到的查询指 - 令并显示它们? - 4.3)如何更改一个字段的数据类型? - 4.4)一行记录,一个表,一个库的最大尺寸是多少? - 4.5)存储一个典型的文本文件里的数据需要多少磁盘空间? - 4.6)为什么我的查询很慢?为什么这些查询没有利用索引? - 4.7)我如何才能看到查询优化器是怎样评估处理我的查询的? - 4.8)我怎样做正则表达式搜索和大小写无关的正则表达式查找?怎样利用索引进 - 行大小写无关查找? - 4.9)在一个查询里,我怎样检测一个字段是否为 - NULL?我如何才能准确排序而不论某字段是否含NULL值? - 4.10)各种字符类型之间有什么不同? - 4.11.1)我怎样创建一个序列号/自动递增的字段? - 4.11.2)我如何获得一个插入的序列号的值? - 4.11.3)使用 currval() 会导致和其他用户的紊乱情况(race condition)吗? - 4.11.4)为什么不在事务异常中止后重用序列号呢?为什么在序列号字段的取值 - 写嬖诩涠夏兀 - 4.12)什么是 OID?什么是 CTID ? - 4.13)为什么我收到错误信息“ERROR: Memory exhausted in - AllocSetAlloc()”? - 4.14)我如何才能知道所运行的 PostgreSQL 的版本? - 4.15)我如何创建一个缺省值是当前时间的字段? - 4.16)如何进行 outer join (外连接)? - 4.17)如何使用涉及多个数据库的查询? - 4.18)如何让函数返回多行或多列? - 4.19)为什么我在使用PL/PgSQL函数存取临时表时会收到错误信息“relation - with OID ##### does not exist”? - 4.20)目前有哪些数据复制方案可用? + 4.1) 濡浣濯殒╀镐釜妤璇㈢绘珏ご 琛锛骀婧玟歌★ + 4.2) + 濡浣妤玷〃沌储寮沔版轰互彗ㄦ风瀹涔锛濡浣妤鏿sql殓ㄥ扮妤璇㈡浠ゅ苟婢 + ず瀹浠 + 4.3) 濡浣娲婀涓涓娈电姘娈绫诲锛 + 4.4) 彐¤褰锛邃釜琛间镐釜姘娈搴珂澶ч宥姣澶灏锛 + 4.5) 邋ㄤ镐釜甯彗骀浠堕珂版瑕澶灏纾珑┖榇锛 + 4.6) 涓轰讳规珂ヨ寰姊锛涓轰讳硅夸烘ヨ娌℃濠绋绱㈠硷 + 4.7) 驽︿芥杞珏版ヨ浼邋ㄦ 疯及澶珂珂ヨ顼 + 4.8) 骀 峰妫彖〃杈惧兼绱㈠澶у板 宄珂 + e琛ㄨ揪寮妤婢锛骀 峰╃ㄧ储寮杩琛澶у板 宄妤婢锛 + 4.9) 濞涓涓ヨ轱兼骀 锋f典镐釜彐姣濡涓 + NULL锛驽︿芥杞彗‘驽鸿涓璁烘彐姣濡瀚NULL寮锛 + 4.10) 彗у绗︾被邃归存浠涔涓屣 + 4.11.1) 骀 峰寤轰镐釜搴邋峰骀ㄩ澧珏娈碉 + 4.11.2) 驽︿借峰句镐釜驽ョ搴邋风寮锛 + 4.11.3) 彐朵娇绋 currval() 浼瀵艰村宥浠绋娣珏茬宓屣 + 4.11.4) 涓轰讳逛稿ㄤ哄″煎父涓姊彘绋搴邋峰间负浠涔濞搴邋峰娈电邋间腑 + 邋ㄩ存澧锛 + 4.12) 浠涔姣 OID锛浠涔姣 CTID 锛 + 4.13) 涓轰讳规娑灏殍淇℃ERROR: Memory exhausted in + AllocSetAlloc()怙 + 4.14) 驽︿芥杞绁殒杩琛 PostgreSQL 珑娆锛 + 4.15) 驽︿藉寤轰镐釜缂虹寮姣褰彐堕寸彐锛 + 4.16) 濡浣妲琛澶杩妤锛outer join锛妤璇 + 4.17) 濡浣妲琛娑邋や釜姘娈搴珂ヨ锛 + 4.18) 濡浣璁╁芥拌垮澶琛驽ゅ姘娈锛 + 4.19) 涓轰讳规濞浣跨≒L/PgSQL褰姘邋涓存惰〃娑浼娑灏殍淇℃relation + with OID ##### does not exist怙 + 4.20) 绠彐濯浜姘娈澶宥婀妗瀵绋锛 + 4.21) 涓轰芥ヨ缁骀剧ず玷〃彐邋涓骁妤璇㈣ヤ腑 + 玟稿锛涓轰藉ぇ彗舵涓杞淇顼 _________________________________________________________________ -常见问题 +甯歌ч - 1.1)PostgreSQL 是什么?该怎么发音? - - PostgreSQL 读作 Post-Gres-Q-L,有时候也简称为Postgres 。 + 1.1)PostgreSQL 姣浠涔锛璇ユ涔彘筹 + + PostgreSQL 璇讳 Post-Gres-Q-L锛骀跺涔绠绉颁负Postgres + 沔冲镐稿跺槌玟汉邋昏块涓杞藉0槌驿欢锛 MP3 煎 PostgreSQL - 是面向目标的关系数据库系统,它具有传统商业数据库系统的所有功能,同时又 - 含有将在下一代 DBMS 系统的使用的增强特性。 PostgreSQL - 是自由免费的,并且所有源代码都可以获得。 + 姣棰彗 珏崇郴姘娈搴绯荤伙煎锋浼 缁邃告版虹郴缁珂驽杞锛彐跺瀚驽板 + ㄤ镐镐唬 DBMS 绯荤荤浣跨ㄧ澧寮虹规сPostgreSQL + 姣瑾绫彖垂顼煎苟涓骀婧浠g 榻瀵浠ヨ峰俱 PostgreSQL - 的开发队伍主要为志愿者,他们遍布世界各地并通过互联网进行联系,这是一个 - 社区开发项目,它不被任何公司控制。 - 如想加入开发队伍,请参见开发人员常见问题(FAQ) + 珏煎殇间富瑕涓哄挎胯锛浠浠甯涓珏灏骞堕杩浜桤借胯¤绯伙艰挎镐釜绀惧 + 哄煎椤圭煎歌浠讳藉告у躲 + 濡娉 濂寮彘浼锛璇峰瑙寮邃汉邋父瑙楫棰锛FAQ锛 http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html - 1.2)PostgreSQL 的版权是什么? - - PostgreSQL的发布遵从经 - 典的BSD版权。关于源代码的如何使用没有任何限制,我们很喜欢这种方式并且 - 姑挥写蛩愀谋渌 - - 下面就是我们使用的BSD版权内容: - - 部分版权(c)1996-2005,PostgreSQL - 全球开发小组,部分版权(c)1994-1996 加州大学妒 - - (Portions copyright (c) 1996-2005, PostgreSQL Global Development - Group Portions Copyright (c) 1994-6 Regents of the University of - California) - - 允许为任何目的使用,拷贝,修改和分发这个软件和它的文档而不收取任何费用 - , - 并且无须签署因此而产生的证明,前提是上面的版权声明和本段以及下面两段文 - 字出现在所有拷贝中。 - - (Permission to use, copy, modify, and distribute this software and + 1.2) 璋妲宥PostgreSQL 锛 + + 濡驿 濞瀵绘綪ostgreSQL珂楱浜猴兼姣浠涔涓 + 澶у浼锛骀讳规灞瀣甯锛浣 濯杞婢寮浜--- 涓轰镐釜涔涓瀛 + 濞锛浣驿滑珑‘驿镐釜 + 稿垮у浼錍VS绠$缁锛浣杩浜宸ヤ界荤璁剧富瑕姣涓轰鸿胯$珏伐浣桎告 + PostgreSQL杩琛绗 寮妲宥锛PostgreSQL椤圭变换浣浜哄 + 瀵邋 珏煎浜哄绀惧哄骀绋娣妲宥顼间 骈瑕彗灏辨殚欢彖〃锛邃歌璁 + 宄瀵锛瑕邃窹ostgreSQL珏煎璇﹁ 寮邃汉邋父楫棰 (Developer's FAQ) + 璺邃俊姣锛 + + 1.3)PostgreSQL珑骀讳? + + PostgreSQL珏甯榈浠缁甯鏐SD珂沐璁哥ㄦ蜂搁绠珏颁娇绋PostgreSQL锛玷充 + 瀵浠ラ瀹PostgreSQL桎稿轰唬 涔瀵浠ワ煎哥殄跺氨姣浣 涓杞 杞欢瑾 + 韩楫棰桢驿滑杩借冲捐矗浠伙煎﹀ゅ氨姣瑕姹骀玷蒋浠舵疯翠腑 + 椤诲娆浠ヤ哥驽0驺涓棰灏辨浠浣跨ㄧBSD珂澹版邋锛 + + PostgreSQL姘娈搴绠$绯荤 + + 楱彗骘糲锛1996-2005锛PostgreSQL 濞珏煎灏缁锛楱彗骘糲锛1994-1996 + 宸澶у﹁d + + 锛Portions copyright (c) 1996-2005,PostgreSQL Global Development Group + Portions Copyright (c) 1994-6 Regents of the University of + California锛 + + 彖涓轰换浣绠玟娇绋锛娣璐锛淇瑰邋杩涓蒋浠跺瀹珂妗h涓娑邃换浣璐圭 + 骞朵告 椤荤剧讲 姝 + よ浜х玷锛彐姣涓棰珑驽0驽娆娈典互邃搁袱娈垫邋虹板ㄦ骀疯翠搞 + + 锛Permission to use, copy, modify, and distribute this software and its documentation for any purpose, without fee, and without a written agreement is hereby granted, provided that the above copyright notice and this paragraph and the following two paragraphs appear in all - copies.) + copies.锛 - 在任何情况下,加州大学都不承担因使用此软件及其文档而导致的对任何当事人 - 的直接的, - 间接的,特殊的,附加的或者相伴而生的损坏,包括利益损失的责任,即使加州 - 大学已窘ㄒ榱苏庑┧鹗У目赡苄允币彩侨绱恕 + 濞浠讳芥宓涓锛 宸澶у﹂戒告挎 浣跨ㄦ + よ蒋浠跺宥骀。桢璐珏浠讳藉戒轰汉珑存ョ锛 + 榇妤顼肩规锛殄 珂桤镐即桤珂屣煎娆濠珂澶辩璐d换锛宄浣垮 宸澶у + ﹀凡缁寤鸿浜杩浜驽け珏芥ф朵规︽ゃ - (IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY + 锛IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA - HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.) + HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.锛 - 加州大学明确放弃任何保证,包括但不局限于某一特定用途的商业和利益的隐含 - 保证。 - 这里提供的这份软件是基于“当作是”的基础的,因而加州大学没有责任提供维 - 护,支持,更新,增强或者修改的服务。 + 宸澶у︽纭惧间换浣淇璇锛彐戒稿遍浜驿哥瑰ㄩ珏涓邋╃玳瀚淇璇 + 杩殒渚玷夸唤杞欢姣搴浜忮戒芥珏虹$锛 桢 宸澶у + ︽病骅矗浠绘渚缁存わ兼锛娲姘锛澧寮烘桎慨婀珂濉 - (THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, + 锛THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, - UPDATES, ENHANCEMENTS, OR MODIFICATIONS.) + UPDATES, ENHANCEMENTS, OR MODIFICATIONS.锛 - 1.3)PostgreSQL 可以运行在哪些操作系统平台上? - - 一般说来,一个现代的 UNIX 兼容的平台都能运行 PostgreSQL - 。在安装指南里列出了发布时竟魅凡馐缘钠教ā + 1.4)PostgreSQL 瀵浠ヨ胯″ㄥ烘浣绯荤诲钩灏涓锛 + + 涓璎璇存ワ间换浣绨濞瀵 UNIX 寮瀹圭驿界郴缁涔涓榻杞杩琛PostgreSQL + 沐ㄥf彘邋轰哄甯娑缁杩骁‘娴璇珏钩灏 - PostgreSQl也可以直接运行在基于微软Windows-NT的操作系统,如Win2000,Win - XP 和 Win2003,已制作完成的安装包可从 - http://pgfoundry.org/projects/pginstaller下载,基于MSDOS的Windows操作 - 低 (Win95,Win98,WinMe)需要通过Cygwin模拟环境运行PostgreSQL。 + PostgreSQl涔瀵浠ョ存ヨ胯″ㄥ轰哄井杞疻indows-NT珂浣绯荤伙煎in2000 + SP4锛WinXP Win2003锛宸插朵藉珏e瀵浠 + http://pgfoundry.org/projects/pginstaller涓杞斤煎轰篗SDOS鏦indows驿界 + 荤 锛Win95锛Win98锛WinMe锛殍﹂杩Cygwin妯℃绡澧杩琛PostgreSQL - 同时也有一个为Novell Netware 6开发的版本可从 http://forge.novell.com - 获取,为OS/2开发的版本可从 + 彐朵规涓涓负Novell Netware 6寮彗珂 + http://forge.novell.com璺屣间负OS/2(eComStation)寮彗珂 http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgre - SQL&stype=all&sort=type&dir=%2F - - 1.4)我从哪里能得到 PostgreSQL? - - 通过浏览器可从http://www.postgresql.org/ftp/下载,也可通过FTP,从 - ftp://ftp.PostgreSQL.org/pub/站点下载。 - - 1.5)我从哪里能得到对 PostgreSQL 的支持? - - PostgreSQL社区通过邮件列表为其大多数用户提供帮助,加入邮件列表的主站点 - 是 - http://www.postgresql.org/community/lists/,一般情况下,先加入General - 或 Bug邮件列表是一个较好的开始。 - - 主要的IRC频道是在FreeNode(irc.freenode.net)的#postgresql,为了连上此频 - 道,可以使用UNIX程序irc,其指令格式: irc -c '#postgresql' "$USER" - irc.freenode.net - ,或者使用其他IRC客户端程序。在此网络中还存在一个PostgreSQL的西班牙频 - (#postgersql-es)和法语频道 - (#postgresql-fr)。同样地,在EFNET上也有一个PostgreSQL的交流频道。 - - 商业支持公司的列表在 http://techdocs.postgresql.org/companies.php。 - - 1.6)我如何提交一个BUG报告? - - 可访问 - http://www.postgresql.org/support/submitbug,填写Bug上报表格即可。 - - 同样也可访问ftp站点ftp://ftp.PostgreSQL.org/pub/ - 检查有无更新的PostgreSQL版本或补丁。 - - 1.7)最新版的PostgreSQL 是什么? - - PostgreSQL 最新的版本是版本 8.0.2 (译注:现最新版本为8.0.3)。 - - 我们计划每年发布一个主要版本,每几个月发布一个小版本。 - - 1.8)能够获取的最新文档有哪些? - - PostgreSQL包含大量的文档,主要有一些手册,手册页和一些的测试例子。参见 - /doc 目录(译注:应为 $PGHOME/doc)。 你还可以在线浏览 PostgreSQL - 的手册,其地址是:http://www.PostgreSQL.org/docs。 - - 有两本关于 PostgreSQL 的书在线提供,在 - http://www.PostgreSQL.org/docs/awbook.html 和 - http://www.commandprompt.com/ppbook/ 。 - 也有大量的PostgreSQL书籍可供购买,其中最为流行的一本是由Korry - Douglas编写的。在 - http://techdocs.PostgreSQL.org/techdocs/bookreviews.php上 - 上有大量有关PostgreSQL书籍的简介。 在 - http://techdocs.PostgreSQL.org/上收集了有关 PostgreSQL - 的大量技术文章。 - - 客户端的命令行程序psql有一些以 \d - 开头的命令,可显示关于类型,操作符,函数,汇总等的信息,使用 \? - 可以显示所有可用的命令。 - - 我们的 web 站点包含更多的文档。 - - 1.9)我如何了解已知的 BUG 或暂缺的功能? - - PostgreSQL 支持一个扩展了的 SQL-92 的子集。参阅我们的TODO - 列表,获取一个已知Bug,暂缺的功能和将来的计划。 - - 1.10)我应该怎样学习 SQL ? - - 首先考虑上述提到的与PostgreSQL相关的书籍,另外一本是Teach Yourself SQL - in 21 Days, Second Edition, 我们的许多用户喜欢The Practical SQL - Handbook Bowman, Judith S., et al., Addison-Wesley,其他的则喜欢 The - Complete Reference SQL, Groff et al., McGraw-Hill。 - - 1.11)我应该怎样加入开发队伍? - - 详见 Developer's FAQ 。 - - 1.12)PostgreSQL 和其他数据库系统比起来如何? - - 评价软件有好几种方法:特性,性能,可靠性,支持和价格。 - - 特性 - PostgreSQL 拥有大型商用 DBMS 里大多数特性, - 例如:事务,子查询,触发器,视图,外键参考完整性和复杂的锁等。 - 我们还有一些它们没有的特性,如用户定义类型,继承,规则和多版本 - ⑿锌刂埔约跎偎恼玫取 - - 性能 - PostgreSQL 和其他商用和开源的数据库具有类似的性能。 - 对某些处理它比较快,对其他一些处理它比较慢。 - 与其他数据库相比,我们的性能通常在 +/- 10%之间。 + SQL&stype=all&sort=type&dir=%2F 涓杞姐 + + 1.5) 驿诲杞寰灏PostgreSQL锛 + + 殍挎佃уㄥ籬ttp://www.postgresql.org/ftp/涓杞斤间瑰杩FTP锛浠 + ftp://ftp.PostgreSQL.org/pub/绔绻涓杞姐 + + 1.6) 骀扮鏟ostgreSQL姣浠涔锛 + + PostgreSQL 骀扮珂娆 8.2.1 + + 驿滑璁″姣骞村甯涓涓富瑕彗骇珂兼 涓邋镐镐釜灏珂 + + 1.7) 驿诲杞寰灏瀵筆ostgreSQL珂锛 + + PostgreSQL绀惧洪杩楫浠跺琛ㄤ负宥澶уゆ扮ㄦ锋渚甯╋艰殚欢彖〃玟富 + 绔绻姣 + http://www.postgresql.org/community/lists/锛涓璎驽典革煎 濂General + Bug楫浠跺琛ㄦ镐釜杈濂界寮濮 + + 涓昏︾IRC棰殒‵reeNode(irc.freenode.net)#postgresql锛涓轰鸿夸告 + ら㈤锛瀵浠ヤ娇绋UNIX绋搴irc锛宥驿护 煎硷 irc -c '#postgresql' + "$USER" irc.freenode.net 锛骅浣跨ㄥ朵籌RC瀹㈡风绋搴沐ㄦょ界讳歌垮 + 濞涓涓狿ostgreSQL玷タ珑棰(#postgersql-es)彐宠㈤ + (#postgresql-fr)沐 峰帮煎‥FNET涓涔驿镐釜PostgreSQL玟氦娴棰殂 + + 瀵驿惧涓姣骁瀣甯彖〃瀵濞http://techdocs.postgresql.org/companies.php娴 + 瑙 + + 1.8) 驽︿芥浜や镐釜BUG妤屣 + + 瀵璁块 + http://www.postgresql.org/support/submitbug锛濉Bug涓妤琛ㄦ 煎冲煎 + 蜂瑰楫ftp绔绻ftp://ftp.PostgreSQL.org/pub/ + 妫妤骀 娲姘鏟ostgreSQL珂琛ヤ搞 + + 殍夸娇绋Bug驿氦琛ㄦ 兼姣邋綪ostgreSQL楫浠跺琛ㄧBug殄父浼驿互涓涔涓邋わ + + * 骀浜ゅ瀹逛告镐釜Bug邋朵告疊ug珏 + * 骀浜ゅ瀹规镐釜宸茬ョBug骞朵稿凡缁 濂TODO寰澶玟换濉彖〃 + * 骀浜ょBug宸插ㄥ藉珂歌淇c + * 骀浜ょBug宸蹭慨妫浣灏妾灏琛ヤ稿 濂绨濞珏甯杞欢邈 + * 璇锋辨浜よ驿炬磋缁玟俊姣锛 + + 驿界郴缁 + + PostgreSQL珂 + + 瀵殓癇ug珂佃′ + + 璋璇淇℃ + + 璋璇璺韪惧 + * 骀浜ゅ瀹规镐釜姘Bug锛灏妲琛浠ヤ稿伐浣锛 + + 邋缓涓涓拌ˉ涓骞跺板跺 濂涓涓涓富瑕珂姣灏珂硅跨娆涓 + + 妞Bug骀朵歌戒慨妫锛灏琚 璩TODO寰澶玟换濉彖〃 + + 1.9) 驽︿戒鸿В宸茬ョ BUG 骀缂虹彖斤 + + PostgreSQL 姣驿镐釜姗灞 SQL:2003 珏殂彘驿滑鏣ODO + 彖〃锛浜瑙e凡绁Bug彖〃沔缂虹彖藉灏妤珏煎璁″ + + 瑕姹澧 姘彖界绯璇烽甯镐兼跺颁互涓涔涓珏澶锛 + * 璇ュ杞宸插 濂TODO寰澶玟换濉彖〃 + * 璇ュ杞涓姣蹇椤荤锛 涓猴 + + 瀹姣绨骁涓绗﹀SQL 彗驽杞玳澶 + + 璇ュ杞妲浼澶уぇ澧 浠g 珏ゆ绋搴锛桢甫妤珏ソ澶姣寰歌冻殓 + + 璇ュ杞姣涓瀹濞骀稿 玢 + * 璇ュ杞灏琚 濂TODO寰澶玟换濉彖〃 + + PostgreSQL涓浣跨˙ug璺韪郴缁锛 涓烘浠绨濞楫浠跺琛ㄤ腑 + 绱妤邋や互邃胯疶ODO浠诲″琛ㄦ绘や烘姘缍骁婀寮宸ヤ芥玟兼撮镐恒浜瀹 + 革糂ug涓浼濞驿滑玷蒋浠朵稿濞寰榭娑榇锛 + 瀵瑰奖邋惧ょㄦ风Bug涔婊姣寰蹇艰淇c瀵涓杞婢灏骀婀杩沔楂邃慨姝 + g灏婀姣CVS珂ュ夸俊姣锛宄浣挎ㄨ蒋浠舵扮娆珏甯淇℃腑 + 涔涓浼邋烘稿ょ杞欢娲姘 + + 1.10) 杞澶璺彗骀版妗f濯浜锛 + + PostgreSQL邋ぇ殓骀。锛涓昏︽璇︾荤彖驽锛驽椤靛涓浜珂佃惧沐瑙 /doc + 绠褰锛璇娉煎轰负 $PGHOME/doc锛 + 浣 杩瀵浠ュㄧ嚎娴瑙PostgreSQL珂屣煎剁藉姣锛http://www.PostgreSQL.org/d + ocs + + 驿袱娆宄浜PostgreSQL玟功濞绾挎渚锛濞 + http://www.PostgreSQL.org/docs/awbook.html + http://www.commandprompt.com/ppbook/ 涔驽ぇ殓PostgreSQL涔︾卞捐喘 + 涔帮煎朵告涓烘佃$涓娆姣绫Korry Douglas缂彗沐 + http://techdocs.PostgreSQL.org/techdocs/bookreviews.php涓 + 涓驽ぇ殒宄PostgreSQL涔︾辩绠浠 濞 + http://techdocs.PostgreSQL.org/涓娑殇烘宄PostgreSQL珏ぇ殒姣骁 + + 瀹㈡风珏戒护琛绋搴psql驿镐轰互 \d + 寮澶寸褰浠わ煎剧ず宄浜绫诲锛驿界锛褰姘锛桢玟俊姣锛浣跨 \? + 瀵浠ユ剧ず骀瀵绋珏戒护 + + 驿滑 web 绔绻邋村ょ骀。 + + 1.11) 驽鸿骀 峰︿ SQL 锛 + + 棣彖桎歌堪驽扮涓PostgreSQL绺宄玟功绫锛濡澶涓娆姣Teach Yourself SQL in + 21 Days, Second Edition锛宥璇︾讳荤荤缃彐 + http://members.tripod.com/er4ebus/sql/index.htm锛 + 驿滑玷澶绋娣彐The Practical SQL Handbook锛 Bowman, Judith S. + 缂屣糀ddison-Wesley瀣甯搴顼煎朵荤邋娆 The Complete Reference SQL, + Groff 缂屣糓cGraw-Hill瀣甯搴玢 + + 濞涓彗藉涓涔驽惧ソ珂绋锛浠浠 + * http://www.intermedia.net/support/sql/sqltut.shtm + * http://sqlcourse.com. + * http://www.w3schools.com/sql/default.asp + * http://mysite.verizon.net/Graeme_Birchall/id1.html + + 1.12)濡浣驿氦琛ヤ告姣 濂寮彘浼锛 + + 璇﹁ 寮邃汉邋父瑙楫棰 (Developer's FAQ) + + 1.13)PostgreSQL邋朵绘版虹郴缁姣璧锋ュ︿斤 + + 璇浠疯蒋浠舵濂藉 绉婀娉锛彖斤兼ц斤煎 妲锛姣驽浠锋 笺 + + 彖 + PostgreSQL 妤驽ぇ邋绋姘娈搴驽ょ彖斤间惧︼间哄★煎 + 妤璇艰Е邋艰у撅煎ら桢存у澶骁殄 + 驿滑杩驿镐哄滑娌℃珑规э煎︾ㄦ峰圭被屣肩户婵锛瑙邋澶珂苟 + ℃у朵互邋伴玟虹ㄧ - 可靠性 - 我们知道 DBMS 必须是可靠的,否则它就一点用都没有。 - 我们努力做到发布经 - 过认真测试的,稳定的臭虫最少的代码。每个版本至少有一个月的 beta - 测试时间,并且我们的发布历史显示我们可以提供稳定的,牢固的,可 - 糜谏褂玫陌姹尽N颐窍嘈 - 在这方面我们与其他的数据库软件是相当的。 + 妲杞 + PostgreSQL邋朵诲绋邋兼虹姘娈搴宸骁被浼肩妲杞沐驿哄ょ瀹姣杈蹇 + 锛瀵瑰朵讳镐哄ょ瀹姣杈姊 涓宥浠姘娈搴绺姣锛驿滑珂ц戒煎i甯稿 + +/- 10%涔榇 - 支持 - 我们的邮件列表提供一个非常大的开发人员和用户的组以帮助解决所碰 - 降娜魏挝侍狻 我们不能保证肯定能解决问题,相比之下,商用 DBMS - 也并不是总能够提供解决方法。 - 直接与开发人员,用户群,手册和源程序接触令 PostgreSQL - 的支持比其他 DBMS - 还要好。还有一些商业性的预包装的支持,可以给提供给那些需要的人 - #ú卧 FAQ 条款 1.5 小节) + 瀵 妲 + 驿滑榻绁殒版哄块』姣瀵 顼煎﹀瀹灏变哥圭ㄩ芥病驺驿滑濯邋灏邋 + 缁杩璁ょ娴璇顼肩己榉驽扮绋冲唬 沔釜珂冲版涓涓 beta + 娴璇娑榇锛骞朵告浠邋稿宀婢绀烘浠互驿剧ǔ瀹顼肩㈠虹锛瀵绋 + 虹浜т娇绋珑娆沔浠镐俊濞杩婀棰驿滑涓宥浠珂版鸿蒋浠舵稿界 - 价格 - 我们对任何用途都免费,包括商用和非商用目的。 - 你可以不加限制地向你的产品里加入我们的代码,除了那些我们在上面 - 陌嫒ㄉ骼锷鞯 BSD 风格的版权外。 + 姣 + 驿滑玳欢彖〃驿句镐釜殄父澶х寮邃汉邋绋娣珑讳互甯╄В宄骁 + 扮浠讳介€驿滑涓杞淇璇婊姣杞瑙e抽肩告逛革煎绋姘娈搴杞 + 浠朵瑰苟涓姣婊杞澶驿捐В宄婀娉 + 绱妤涓寮邃汉屣肩ㄦ风兢锛驽彐虹ㄥ烘ヨЕ浣縋ostgreSQL珂姣宥浠姘 + 娈搴杩瑕濂姐杩驿镐哄涓妲珏ㄩ㈡姣姣骘煎互缁驿剧婚d洪瑕玟汉泔 + 彘1.7 灏栾 - 1.13)丝刂芇ostgreSQL ? - - 如果你在寻找PostgreSQL的掌门人,或是什么中央委员会,或是什么所属公司, - 你只能放弃了---因为一个也不存在,但我们的确有一个 - 委员会和CVS管理组,但这些工作组的设立主要是为了进行管理工作而不是对Pos - tgreSQL进行控制,PostgreSQL项目是由任何人均 - 可参加的开发人员社区和所有用户控制的,你所需要做的就是加入邮件列表,参 - 与讨论即可(要参与PostgreSQL的开发详见 Developer's FAQ 获取信息)。 + 浠锋 + 驿滑瀵逛换浣绋殚藉璐癸煎娆彗ㄥ殄绋绠玢 + 浣 瀵浠ヤ稿 殄跺板浣 玟骇彘 濂驿滑玟唬 锛椁浜椋浜驿滑濞涓棰珑 + 驽0骈澹版 BSD珂涔澶珏瀹广 _________________________________________________________________ -用户客户端问题 +绋娣瀹㈡风楫棰 - 2.1)我们可以用什么语言和 PostgreSQL 打交道? - - PostgreSQL(缺省情况)只安装有C和内嵌式C的接口,其他的接口都是独立的项目 - ,能够分别下载,这些接口项目独立的好处 - 是他们可以有各自的发布计划和各自独立的开发组。 + 2.1) 驿滑瀵浠ョㄤ讳硅ㄥPostgreSQL驿氦轱 + + PostgreSQL(缂虹驽)濯瀹瑁鍯邋宓寮C珂ュo煎朵荤妤澹榻姣绗绔玳」绠锛杞澶 + 邋歌浇锛杩浜妤澹椤圭濂藉 + 姣浠浠互驽瑾珏甯璁″邋瑾绗绔珏煎缁 - 一些编程语言如PHP都有访问 PostgreSQL - 的接口,Perl,TCL,Python以及很多其他语言的接口在 - http://gborg.postgresql.org 上的Drivers/Interfaces小节可找到, - 并且通过Internet很容易搜索到。 + 涓浜缂绋璇 + 瑷濡PHP榻骅楫PostgreSQL珂ュo糚erl鉚CL鉖ython浠ュ寰澶宥浠璇瑷珂ュe + http://gborg.postgresql.org缃绔涓鏒rivers/Interfaces灏桢惧帮 + 骞朵搁杩Internet寰瀹规骁储灏 - 2.2)有什么工具可以把 PostgreSQL 用于 Web 页面? - - 一个介绍以数据库为后台的挺不错的站点是:http://www.webreview.com。 + 2.2) 驿讳瑰伐宸瀵浠ユPostgreSQL绋浜 Web 椤甸 + + 涓涓荤讳互姘娈搴涓哄灏珂轰搁珑规糷ttp://www.webreview.com - 对于 Web 集成,PHP 是一个极好的接口。它在:http://www.php.net/。 + 瀵逛 Web 殒锛PHP 姣涓涓濂界妤澹沐╤ttp://www.php.net/ - 对于复杂的任务,很多人采用 Perl 接口和 CGI.pm 或 mod_perl 。 + 瀵逛哄ゆ玟换濉锛寰澶浜洪绋 Perl 妤澹 浣跨–GI.pm鏒BD::Pg mod_perl - 2.3)PostgreSQL 拥有图形用户界面吗? - - 是的,在 - http://techdocs.postgresql.org/guides/GUITools有一个详细的列表。 + 2.3)PostgreSQL妤驽惧舰绋娣玳㈠锛 + + 邃哥ㄦ锋姣寮婧寮邃汉彖芥惧板惧ょ驽砅ostgreSQL鏕UI寰褰㈠伐宸杞欢锛濞 + PostgreSQL绀惧烘妗f涓涓缁珏琛ㄣ _________________________________________________________________ -系统管理问题 +绯荤荤玳 - 3.1)我怎样能把 PostgreSQL 装在 /usr/local/pgsql 以外的地方? - - 在运行 configure 时加上 --prefix 选项。 - - 3.2)我如何控制来自其他主机的连接? - - 缺省时,PostgreSQL 只允许通过 unix - 域套接字或TCP/IP方式且来自本机的连接。 - 你只有在修改了配置文件postgresql.conf中的listen_addresses,且也在配置 - 募䅟g_hba.conf中打开了 主机为基础( host-based - )的身份认证,并重新启动PostgreSQL,否则其他机器是不能与你的PostgreSQL - 服务器连接的。 - - 3.3)我怎样调整数据库引擎以获得更好的性能? - - 有三个主要方面可以提升PostgreSQL的潜能。 - - 查询方式的变化 - 这主要涉及修改查询方式以获取更好的性能: + 3.1)骀 疯芥PostgreSQL瑁濞 /usr/local/pgsql 浠ュょ灏婀锛 + + 濞杩琛 configure 娑 涓 --prefix 殚」 + + 3.2) 驽︿芥у舵ヨ朵荤佃玷挎ワ + + 缂虹驽典革糚ostgreSQL濯彖妤瑾娆婧涓殍 unix 邋ユュ鎀CP/IP婀寮玷挎ャ + 浣 濯驽ㄤ慨婀浜殓疆驿欢postgresql.conf涓 + 鏻isten_addresses锛涓涔濞殓疆驿欢$PGDATA/pg_hba.conf涓驽间 + 搴浜杩绋绲栾 host-based + 锛玷韩浠借璇锛骞堕姘瀵濞PostgreSQL锛濡邋朵荤佃姣涓杞涓浣 鏟ostgreSQL + 驽″ㄨ胯¤挎ョ + + 3.3) 骀 疯版存版哄兼浠ヨ峰炬村ソ珂ц斤 + + 驿镐釜涓昏︽归㈠互驽PostgreSQL珂借姐 + + 妤璇㈡瑰肩邋 + 杩涓昏︽跺淇规ヨ婀寮浠ヨ峰娲濂界妲杞: - + 创建索引,包括表达式和部分索引; - + 使用COPY语句代替多个Insert语句; - + 将多个SQL语句组成一个事务以减少提交事务的开销; - + 从一个索引中提取多条记录时使用CLUSTER; - + 从一个查询结果中取出部分记录时使用LIMIT; - + 使用预编译式查询(Prepared Query); - + 使用ANALYZE以保持精确的优化统计; - + 定期使用 VACUUM 或 pg_autovacuum - + 进行大量数据更改时先删除索引(然后重建索引) + + 邋缓绱㈠硷煎娆琛ㄨ揪寮彘ㄥ绱㈠硷 + + 浣跨–OPY璇濂浠f垮や釜Insert璇濂锛 + + 灏澶涓猄QL璇濂缁驿镐釜浜濉浠ュ灏驿氦浜濉珏奸锛 + + 浠涓涓储寮涓驽澶妗璁板芥朵娇绋CLUSTER锛 + + 浠涓涓ヨ缁驿稿搴楱彖褰娑浣跨↙IMIT锛 + + 浣跨ㄩ㈢艰兼ヨ锛Prepared Query)锛 + + 浣跨ˋNALYZE浠ヤ挎绮剧‘玟煎缁璁★ + + 瀹驿娇绋 VACUUM pg_autovacuum + + 杩琛澶ч姘娈娲婀娑邋 椁绱㈠硷肩跺殄缓绱㈠硷 - 服务器的配置 - 配置文件postgres.conf中的很多设置都会影响性能,所有参数的列表可 - 见: Administration Guide/Server Run-time Environment/Run-time - Configuration, 有关参数的解释可见: - http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_co - nf_e.html 和 - http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html。 + 驽″ㄧ殓疆 + 殓疆驿欢postgres.conf涓 + 珏惧よ缃戒煎奖彐ц斤兼驽姘珏琛ㄥэ + 绠$彐/姘娈搴驽″ㄨ胯$/姘娈搴驽″ㄨ胯¢缃 + 驽冲姘玷В殄э糷ttp://www.varlena.com/varlena/GeneralBits/Tid + bits/annotated_conf_e.html + http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html - 硬件的选择 - 计算机硬件对性能的影响可浏览 + 纭欢玳姗 + 璁$虹‖浠跺妲杞珏奖邋佃 http://candle.pha.pa.us/main/writings/pgsql/hw_performance/inde - x.html 和 http://www.powerpostgresql.com/PerfList/。 + x.html http://www.powerpostgresql.com/PerfList/ - 3.4)PostgreSQL 里可以获得什么样的调试特性? - - PostgreSQL 有很多类似 log_* - 的服务器配置变量可用于查询的打印和进程统计,而这些工作对调试和性能测试 - 很有帮助。 - - 3.5)为什么在试图连接时收到“Sorry, too many clients”消息? - - 这表示你已达到缺省100个并发后台进程数的限制,你需要通过修改postgresql. - conf文件中的max_connections值来 - 增加postmaster的后台并发处理数,修改后需重新启动postmaster。 - - 3.6)为什么要在升级 PostgreSQL 主要发布版本时做 dump 和 restore ? - - PostgreSQL 开发组对每次小的升级仅做了较少的修改,因此从 7.4.0 升级到 - 7.4.1 不需要 dump 和 restore。 但是主要的升级(例如从 7.3 到 - 7.4)通常会修改系统表和数据表的内部格式。 - 这些变化一般比较复杂,因此我们不维数据文件的向后兼容。 dump - 将数据按照通用的格式输出,随后可以被重新加载并使用新的内部格式。 - - 3.7)(使用PostgreSQL)我需要使用什么计算机硬件 ? - - 由于计算机硬件大多数是兼容的,人们总是倾向于相信所有计算机硬件质量也是 - 相同的。事实上不是, ECC RAM(带奇偶校验的内存),SCSI - (硬盘)和优质的主板比一些便宜货要更加可靠且具有更好的性能。PostgreSQL - 几乎可以运行在任何硬件上, - 但如果可靠性和性能对你的系统很重要,你就需要全面的研究一下你的硬件配置 - 了。在我们的邮件列表上也有关于 硬件配置和性价比的讨论。 + 3.4)PostgreSQL殄互璺寰浠涔 风璋璇绻妲锛 + + PostgreSQL 驽惧ょ被浼 log_* + 珂濉濞殓疆彘瀵绋浜妤璇㈢驽板杩绋缁璁★艰杩浜宸ヤ藉璋璇彐ц芥佃炬甯 + ┿ + + 3.5) 涓轰讳瑰ㄨ捐挎ユ舵跺扳Sorry, too many + clients锛宸叉澶ょㄦ疯挎ワ尖娑姣锛 + + 杩琛ㄧず浣 宸茶揪灏缂虹100涓苟邋灏杩绋姘玳宥锛浣 殍﹂杩淇筽ostgres + ql.conf驿欢涓鏼ax_connections寮妤 + 澧 postmaster珏灏骞跺澶珂帮间慨婀彘殒板╬ostmaster + + 3.6)PostgreSQL珏绾ц跨ㄦ濯浜邋 锛 + + PostgreSQL 寮彗诲姣娆″扮娆珏绾т富瑕濯邃轰镐築ug淇e伐浣锛 妞浠 + 7.4.8 彗骇灏 7.4.9 涓殍 dump restore锛浠殍﹀姝 + ㈡版烘濉濞锛瀹瑁娲姘彗杞欢屣肩跺殄濉濞宄瀵 + + 骀PostgreSQL珑ㄦ峰鸿濞骀ヨ匡间 驿娇绋玟富珂肩灏婀杩珂甯灏藉揩彗 + 骇沐敖绠℃彗骇瀵杞榻驿哥归i╋糚ostgreSQL珏版硅跨浠浠姣璁捐绋妤 + 慨姝 + d镐築ug顼间唬 婀濞杈灏锛驿互椋椹杩姣寰灏玢PostgreSQL绀惧鸿涓轰歌 + 宓涓涓彗骇玳i╄挎や哄绾х + + 涓荤娆珏绾э间惧︿ 7.3 灏 7.4锛殄父浼淇圭郴缁琛ㄥ姘娈琛ㄧ彘ㄦ 煎笺 + 杩浜婀邃歌惧ゆ锛 妞驿滑涓缁存姘娈驿欢珏邋煎妲沐 妞浠桤娆涓 + 杩琛姘娈瀵煎猴糳ump锛/缍邋ㄦ扮娆涓 + 杩琛姘娈瀵煎ワ紃eload锛瀵逛富珂彗骇姣蹇椤荤 + + 3.7)(浣跨≒ostgreSQL)骈瑕浣跨ㄤ讳硅绠婧纭欢 锛 + + 绫浜璁$虹‖浠跺ぇ澶姘姣寮瀹圭锛浜轰滑婊姣寰邃虹镐俊骀璁$虹‖浠惰 + 川殇规稿玢浜瀹涓涓姣锛 ECC RAM锛甯﹀ュ舵 ¢邋锛锛SCSI + 锛纭锛邃艰川玟富婵姣涓浜渚垮揣瑕娲 瀵 涓宸骀村ソ珂ц姐PostgreSQL + 涔瀵浠ヨ胯″ㄤ换浣纭欢涓锛 + 浣濡驽 妲彐ц藉浣 珑郴缁寰殍︼间 灏遍瑕濞棰珑 绌朵镐镐 珑‖浠堕 + 疆浜沐ㄦ浠楫浠跺琛ㄤ镐规宄浜 纭欢殓疆彐т环姣玷璁恒 _________________________________________________________________ -操作问题 +驿介 - 4.1)如何只选择一个查询结果的头几行?或是随机的一行? - - 如果你只是要提取几行数据,并且你在执行查询中知道确切的行数,你可以使用 - LIMIT功能。 如果有一个索引与 ORDER BY中的条件匹配,PostgreSQL - 可能就只处理要求的头几条记录, - (否则将对整个查询进行处理直到生成需要的行)。如果在执行查询功能时不知 - 道确切的记录数, 可使用游标(cursor)和FETCH功能。 - - 可使用以下方法提取一行随机记录的: - SELECT cols - FROM tab - ORDER BY random() - LIMIT 1 ; + 4.1) 濡浣濯殒╀镐釜妤璇㈢绘珏ご 琛锛骀婧玟歌★ + + 濡驿 濯姣瑕驽 琛姘娈锛骞朵镐 濞妲琛妤璇腑 + 绁殓‘彗琛姘锛浣 瀵浠ヤ娇绋LIMIT彖姐 濡骀涓涓储寮涓 ORDER BY涓 + 珂′欢骞轱糚ostgreSQL 瀵杞灏卞ょ瑕姹珏ご 妗璁板斤 + 锛濡邋板娲涓ヨ杩琛澶珑村扮骈瑕玷★笺濡驽ㄦц℃ヨ彖芥朵哥ラ纭 + 玷褰姘锛 瀵浣跨ㄦ父 (cursor)錐ETCH彖姐 + + 瀵浣跨ㄤ互涓婀娉驽涓琛殒鸿褰顼 + SELECT cols + FROM tab + ORDER BY random() + LIMIT 1 ; - 4.2)如何查看表、索引、数据库以及用户的定义?如何查看psql里用到的查询指令并 - 允舅牵 - - 在psql中使用 \dt - 命令来显示数据表的定义,要了解psql中的完整命令列表可使用\? - ,另外,你也可以阅读 psql 的源代码 - 文件pgsql/src/bin/psql/describe.c,它包括为生成psql反斜杠命令的输出的 - SQL 命令。你还可以带 -E 选项启动 psql, - 这样它将打印出执行你在psql中所给出的命令的内部实际使用的SQL查询。Postg - reSQL也提供了一个兼容SQL的INFORMATION SCHEMA接口, - 你可以从这里获取关于数据库的信息。 - - 在系统中有一些以pg_ 打头的系统表也描述了表的定义。 - - 使用 psql -l 指令可以列出所有的数据库。 - - 也可以浏览一下 - pgsql/src/tutorial/syscat.source文件,它列举了很多可从数据库系统表中获 - 取信息的SELECT语法。 - - 4.3)如何更改一个字段的数据类型? - - 在8.0版本里更改一个字段的数据类型很容易,可使用 ALTER TABLE ALTER - COLUMN TYPE 。 - - 在以前的版本中,可以这样做: - BEGIN; + 4.2) + 濡浣妤玷〃沌储寮沔版轰互彗ㄦ风瀹涔锛濡浣妤鏿sql殓ㄥ扮妤璇㈡浠ゅ苟婢绀哄滑 + 锛 + + 濞psql涓浣跨 \dt 褰浠ゆユ剧ず姘娈琛ㄧ瀹涔锛瑕浜瑙sql涓 + 珏村戒护彖〃瀵浣跨╘? 锛濡澶锛浣 涔瀵浠ラ璇 psql 珂轰唬 + 驿欢pgsql/src/bin/psql/describe.c锛瀹彐负珂psql彐 褰浠ょ杈搴珂 SQL + 褰浠ゃ浣 杩瀵浠ュ甫 -E 殚」瀵濞 psql锛 杩 峰版灏搴浣 濞psql涓 + 骁诲虹褰浠ゆц℃剁彘ㄥ浣跨ㄧSQL妤璇㈣ + 濂鉖ostgreSQL涔驿句轰镐釜寮瀹筍QL鏘NFORMATION SCHEMA妤澹锛 + 浣 瀵浠ヤ昏块璺邋充烘版虹淇℃ + + 濞绯荤讳镐规涓浜浠g_ 驽ご珑郴缁琛ㄤ规杩颁鸿〃珏广 + + 浣跨 psql -l 驿护瀵浠ュ搴骀珂版恒 + + 涔瀵浠ユ佃т镐 + pgsql/src/tutorial/syscat.source驿欢锛瀹邃妇浜寰澶瀵浠姘娈搴绯荤昏〃涓 + 璺邃俊姣鏢ELECT璇娉 + + 4.3) 濡浣娲婀涓涓娈电姘娈绫诲锛 + + 濞8.0珂娲婀涓涓娈电姘娈绫诲寰瀹规锛瀵浣跨 ALTER TABLE ALTER + COLUMN TYPE + + 濞浠ュ珑娆涓锛瀵浠ヨ挎 峰锛 + BEGIN; ALTER TABLE tab ADD COLUMN new_col new_data_type; UPDATE tab SET new_col = CAST(old_col AS new_data_type); ALTER TABLE tab DROP COLUMN old_col; COMMIT; - 你然后可以使用VACUUM FULL tab 指令来使系统收回无效数据所占用的空间。 - - 4.4)一行记录,一个表,一个库的最大尺寸是多少? - - 下面是一些限制: - - 一个数据库最大尺寸? 无限制(已存在有 32TB 的数据库) - 一个表的最大尺寸? 32 TB - 一行记录的最大尺寸? 1.6 TB - 一个字段的最大尺寸? 1 GB - 一个表里最大行数? 无限制 - 一个表里最大列数? 250-1600 (与列类型有关) - 一个表里的最大索引数量? 无限制 - - 当然,实际上没有真正的无限制,还是要受可用磁盘空间、可用内存/交换区的 - 圃肌 事实上,当这些数值变得异常地大时,系统性能也会受很大影响。 - - 表的最大尺寸 32 TB 不需要操作系统对大文件的支持。大表用多个 1 GB - 的文件存储,因此文件系统尺寸的限制是不重要的。 - - 如果缺省的块大小增长到 32K ,最大的表尺寸和最大列数还可以增加到四倍。 - - 4.5)存储一个典型的文本文件里的数据需要多少磁盘空间? - - 一个 Postgres - 数据库(存储一个文本文件)所占用的空间最多可能需要相当于这个文本文件自 - 身大小5倍的磁盘空间。 - - 例如,假设有一个 100,000 行的文件,每行有一个整数和一个文本描述。 - 假设文本串的平均长度为20字节。文本文件占用 2.8 MB。存放这些数据的 - PostgreSQL 数据库文件大约是 6.4 MB: - 32 字节: 每行的头(估计值) - 24 字节: 一个整数型字段和一个文本型字段 - + 4 字节: 页面内指向元组的指针 + 浣 缍邋互浣跨╒ACUUM FULL tab 驿护妤浣跨郴缁娑彐 骀版 绋珑┖榇 + + 4.4) 彐¤褰锛邃釜琛煎涓版虹驽ぇ殄舵ゅ帮 + + 涓棰姣涓浜殄讹 + + 邃釜姘娈搴驽ぇ灏哄锛 殄讹煎凡邋ㄦ 32TB 珂版猴 + 邃釜琛ㄧ驽ぇ灏哄锛 32 TB + 涓琛璁板界驽ぇ灏哄锛 1.6 TB + 涓涓娈电驽ぇ灏哄? 1 GB + 涓涓〃殒澶ц℃帮 殄 + 涓涓〃殒澶у姘锛 250-1600 锛涓彗被彐宄锛 + 涓涓〃殓驽ぇ绱㈠兼伴锛 殄 + + 褰缍锛瀹殇告病骁妫珂 殄讹艰挎﹀瀵绋纾珑┖榇沐ㄥ/浜ゆ㈠虹宥绾︺ + 浜瀹涓锛褰涓杩拌夸烘板煎寰寮甯稿板ぇ娑锛绯荤绘ц戒逛煎寰澶у奖邈 + + 彖〃珂澶уぇ灏 32 TB + 涓殍︽浣绯荤诲邃釜驿欢涔殍夸瑰ぇ珂沐ぇ琛ㄧㄥや釜 1 GB 珂浠跺 + 濞锛 妞驿欢绯荤诲ぇ灏玳宥姣涓殍︾ + + 濡骁己珑邋ぇ灏澧榭灏 32K 锛驽ぇ珏琛ㄥぇ灏彐澶у姘杩瀵浠ュ㈠ 灏邋 + + 驿镐釜殄跺氨姣涓杞瀵瑰ぇ灏澶浜2000瀛 + 桤邋寤虹储寮沐垢杩灏姣杩 风绱㈠煎惧扮ㄥ般殍垮澶瀛 + 桢珏瀹硅胯D5彗ㄨ跨绘杩琛褰姘绱㈠煎彗瀵涓妲寰灏淇璇锛 + 骞朵稿ㄦ妫绱㈠璁稿邃哥彖胯℃绱€ + + 4.5) 邋ㄤ镐釜甯彗骀浠堕珂版瑕澶灏纾珑┖榇锛 + + 涓涓 Postgres 姘娈搴锛瀛 + 濞涓涓娆驿欢锛驽 绋珑┖榇驽ゅ介瑕绺褰浜杩涓娆驿欢瑾韬ぇ灏5彗纾 + 珑┖榇 + + 渚濡锛彖驿镐釜 100,000 琛珂浠讹兼℃涓涓存板涓涓娆骅堪 + 彖骀覆珏钩彘垮害涓20彖沔娆驿欢 绋 2.8 MB沐 + 婢杩浜姘娈鏟ostgreSQL姘娈搴驿欢澶х害姣 6.4 MB: + 28 彖: 姣琛珏ご锛澶х害寮锛 + 24 彖: 涓涓存板彐邃镐釜骀彐 + + 4 彖: 椤甸㈠驽彗荤骈 ---------------------------------------- - 60 字节每行 - - PostgreSQL 数据页的大小是 8192 字节 (8 KB),则: + 56 彖姣琛 - 8192 字节每页 - ------------------- = 136 行/数据页(向下取整) - 60 字节每行 + PostgreSQL 姘娈椤电澶у版 8192 彖 (8 KB)锛屣 - 100000 数据行 - -------------------- = 735 数据页(向上取整) - 128 行每页 + 8192 彖姣椤 + ------------------- = 146 琛/姘娈椤碉煎涓彐达 + 56 彖姣琛 - 735 数据页 * 8192 字节/页 = 6,021,120 字节(6 MB) + 100000 姘娈琛 + -------------------- = 685 姘娈椤碉煎涓彐达 + 146 琛/姘娈椤 - 索引不需要这么多的额外消耗,但也确实包括被索引的数据,因此它们也可能很 - 大。 - - 空值NULL存放在位图中,因此占用很少的空间。 - - 4.6)为什么我的查询很慢?为什么这些查询没有利用索引? - - 并非每个查询都会自动使用索引。只有在表的大小超过一个最小值,并且查询只 - 会选中表中较小比例的记录时才会采用索引。 - 这是因为索引扫描引起的随即磁盘存取可能比直接地读取表(顺序扫描)更慢。 - - 为了判断是否使用索引,PostgreSQL必须获得有关表的统计值。这些统计值可以 - 使用 VACUUM ANALYZE,或 ANALYZE 获得。 - 使用统计值,优化器知道表中有多少行,就能够更好地判断是否利用索引。 - 统计值对确定优化的连接顺序和连接方法也很有用。在表的内容发生变化时,应 - 定期进行统计值的更新收集。 - - 索引通常不用于 ORDER BY - 或执行连接。对一个大表的一次顺序扫描,再做一个显式的排序通常比索引扫描 - 要快。 - - 但是,在 LIMIT 和 ORDER BY 结合使用时经 - 常会使用索引,因为这只会返回表的一小部分。 实际上,虽然 MAX() 和 MIN() - 并不使用索引,通过对 ORDER BY 和 LLIMIT - 使用索引取得最大值和最小值也是可以的: - SELECT col - FROM tab - ORDER BY col [ DESC ] - LIMIT 1; + 685 姘娈椤 * 8192 彖/椤 = 5,611,520 彖锛5.6 MB锛 - 如果你确信PostgreSQL的优化器使用顺序扫描是不正确的,你可以使用SET - enable_seqscan TO 'off'指令, - 然后再次运行查询,你就可以看出使用一个索引扫描是否确实要快一些。 - - 当使用通配符操作,例如 LIKE 或 ~ 时,索引只能在特定的情况下使用: - * 字符串的开始部分必须是普通字符串,也就是说: - + LIKE 模式不能以 % 打头。 - + ~ (正则表达式)模式必须以 ^ 打头。 - * 字符串不能以匹配多个字符的模式类打头,例如 [a-e]。 - * 大小写无关的查找,如 ILIKE 和 ~* 等不使用索引,但可以用 4.8 - 节描述的函数索引。 - * 在做 initdb 时必须采用缺省的本地设置 C - locale,因为系统不可能知道在非C locale情况时下一个最大字符是什么。 - 在这种情况下,你可以创建一个特殊的text_pattern_ops索引来用于LIKE的 - 索引。 + 绱㈠间搁瑕杩涔澶玳㈠ゆ惰锛浣涔纭娆琚储寮珂版煎 姝 + ゅ滑涔瀵杞寰澶с + + 绌哄糔ULL彐惧ㄤ藉句革煎 妞 绋寰灏珑┖榇 + + 4.6) 涓轰讳规珂ヨ寰姊锛涓轰讳硅夸烘ヨ娌℃濠绋绱㈠硷 + + 骞堕姣涓ヨ榻浼瑾濞浣跨ㄧ储寮沐濞琛ㄧ澶у拌惰夸镐釜驽板硷煎苟涓妤 + 璇㈠奸涓琛ㄤ歌惧版剧璁板芥舵浼殓ㄧ储寮 + 杩姣 涓虹储寮娅驽艰捣玳宄纾珏邋芥存ュ拌彖〃锛椤哄烘锛娲姊 + + 涓轰哄ゆ + 姣濡浣跨ㄧ储寮锛PostgreSQL蹇椤昏峰炬宄琛ㄧ缁璁″笺杩浜缁璁″煎互浣跨 + VACUUM ANALYZE锛 ANALYZE 璺寰 浣跨ㄧ昏寮锛浼邋ㄧラ琛ㄤ腑 + 驽ゅ拌★煎氨杞澶娲濂藉板ゆ姣濡濠绋绱㈠笺 + 缁璁″煎纭煎玷挎ラ『搴彖挎ユ规充瑰炬绋沐ㄨ〃珏瀹瑰珏彐讹煎哄杩 + 琛缁璁″肩娲姘娑殂 + + 绱㈠奸甯镐哥ㄤ ORDER BY + 骀ц¤挎ャ瀵逛镐釜澶ц〃玟告椤哄烘邋涓娆℃搴殄父姣绱㈠兼瑕蹇缍 + 栾煎︽灏 LIMIT ORDER BY + 缁邋ㄤ歌捣浣跨ㄧ璇锛殄父灏浼浣跨ㄧ储寮锛 涓鸿挎朵昏垮琛ㄤ腑 + 玟稿伴ㄥ璁板姐 + + 濡驿 纭俊PostgreSQL玟煎濞浣跨ㄩ『搴娅骀告g‘顼间 瀵浠ヤ娇绋SET + enable_seqscan TO 'off'驿护妤宄殚『搴娅骘 + 缍邋娆¤胯℃ヨ锛浣 灏卞互珏轰娇绋涓涓储寮娅骀︾‘瀹瑕蹇镐恒 + + 褰浣跨ㄩ殓驿斤间惧 LIKE ~ 娑锛绱㈠煎藉ㄧ瑰驽典镐娇绋锛 + * 彗涓茬寮濮楱邋块』姣娈殄绗︿覆锛涔灏辨锛 + + LIKE 妯″间歌戒互 % 驽ご + + ~ 锛妫彖〃杈惧硷兼ā寮蹇椤讳互 ^ 驽ご + * 彗涓蹭歌戒互骞殄や釜彗珂ā寮绫绘澶达间惧 [a-e] + * 澶у板 宄珂ユ撅煎 ILIKE ~* 玟镐娇绋绱㈠硷间藉互绋 4.8 + 桄杩扮琛ㄨ揪寮绱㈠笺 + * 濞 initdb 娑蹇椤婚绋缂虹珂拌缃 C + locale锛 涓虹郴缁涓瀵杞绁殄ㄩC locale驽垫朵镐镐釜驽ぇ彗姣浠涔 + 濞杩绉驽典革间 瀵浠ュ寤轰镐釜绻娈鐃ext_pattern_ops绱㈠兼ョㄤ篖IKE + 珑储寮 - 在8.0之前的版本中,除非要查询的数据类型和索引的数据类型相匹配,否则索 - 常是未被用到,特别是对int2,int8和数值型的索引。 + 濞8.0涔彗珂腑 + 锛椁殍︽ヨ珂版被邋绱㈠肩姘娈绫诲绺骞轱煎﹀绱㈠肩诲父姣妾琚ㄥ帮肩 + 瑰int2,int8彐板煎珑储寮 - 4.7)我如何才能看到查询优化器是怎样评估处理我的查询? - - 参考 EXPLAIN 手册页。 + 4.7) 驽︿芥杞珏版ヨ浼邋ㄦ 疯及澶珂珂ヨ锛 + + 彖 EXPLAIN 驽椤点 - 4.8)我怎样做正则表达式搜索和大小写无关的正则表达式查找?怎样利用索引进行大 - ⌒次薰夭檎遥 - - 操作符 ~ 处理正则表达式匹配,而 ~* - 处理大小写无关的正则表达式匹配。大写些无关的 LIKE 变种成为 ILIKE。 + 4.8) 骀 峰妫彖〃杈惧兼绱㈠澶у板 宄珂 + e琛ㄨ揪寮妤婢锛骀 峰╃ㄧ储寮杩琛澶у板 宄妤婢锛 + + 驿界 ~ 澶珂e琛ㄨ揪寮骞轱艰 ~* 澶珏ぇ灏彐 宄珂 + e琛ㄨ揪寮骞殂澶у板 宄 LIKE 彗ф涓 ILIKE - 大小写无关的等式比较通常写做: + 澶у板 宄珑寮姣杈殄父邋锛 SELECT * FROM tab WHERE lower(col) = 'abc'; - 这样将不会使用标准的索引。但是可以创建一个可被利用的函数索引: + 杩 峰颁镐间娇绋 彗绱㈠笺浣姣瀵浠ュ寤轰镐釜濞杩绉驽典镐娇绋玷〃杈惧肩 + 储寮: CREATE INDEX tabindex ON tab (lower(col)); - 4.9)在一个查询里,我怎样检测一个字段是否为 NULL - ?我如何才能准确排序而不论某字段是否含 NULL 值? - - 用 IS NULL 和 IS NOT NULL 测试这个字段,具体方法如下: + 濡驿歌堪绱㈠煎ㄥ寤烘跺 濂UNIQUE绾︽锛杞缍绱㈠煎娈佃韩邋瀵浠ュ + 濞澶у板涓殓邋锛浣濡骀UNIQUE绾︽屣艰夸哄瀹逛歌戒讳绘ぇ灏邃稿锛濡邃 + 奸 驽茬笺涓轰轰胯稿玷跨ф宓锛瀵浠ヤ娇绋CHECK绾︽妗浠舵姣瑙﹀濞濞褰 + 濂娑杩琛殄躲 + + 4.9) 濞涓涓ヨ轱兼骀 锋f典镐釜彐姣濡涓 NULL 锛驽︿芥杞彗‘驽鸿涓璁烘瀛 + 娈垫﹀ NULL 寮锛 + + 绋 IS NULL IS NOT NULL 娴璇杩涓娈碉煎蜂芥规冲︿革 SELECT * FROM tab WHERE col IS NULL; - 为了能对含 NULL字段排序,可在 ORDER BY 条件中使用 IS NULL和 IS NOT - NULL 修饰符,条件为真 true 将比条件为假false - 排在前面,下面的例子就会将含 NULL 的记录排在结果的上面部分: + 涓轰鸿藉瀚 NULL彐驽猴煎 ORDER BY 妗浠朵镐娇绋 IS NULL IS NOT + NULL 淇グ绗︼兼′欢涓虹 true 灏姣妗浠朵负錰alse 驽ㄥ棰锛涓棰玟惧 + 灏变煎板 NULL 玷褰驽ㄧ绘玟搁㈤ㄥ锛 SELECT * FROM tab ORDER BY (col IS NOT NULL) - 4.10)各种字符类型之间有什么不同? - - 类型 内部名称 说明 - VARCHAR(n) varchar - 指定了最大长度,变长字符串,不足定义长度的部分不补齐 - CHAR(n) bpchar 定长字符串,实际数据不足定义长度时,以空格补齐 - TEXT text 没有特别的上限限制(仅受行的最大长度限制) - BYTEA bytea 变长字节序列(使用NULL也是允许的) - "char" char 一个字符 - - 在系统表和在一些错误信息里你将看到内部名称。 - - 上面所列的前四种类型是"varlena"(变长)类型(也就是说,开头的四个字节 - 浅ざ龋竺娌攀鞘荩 于是实际占用的空间比声明的大小要多一些。 - 然而这些类型都可以被压缩存储,也可以用 TOAST - 脱机存储,因此磁盘空间也可能比预想的要少。 - - VARCHAR(n) 在存储限制了最大长度的变长字符串是最好的。 TEXT - 适用于存储最大可达 1G左右但未定义限制长度的字符串。 - - CHAR(n) 最适合于存储长度相同的字符串。 - CHAR(n)会根据所给定的字段长度以空格补足(不足的字段内容), 而 - VARCHAR(n) 只存储所给定的数据内容。 BYTEA - 用于存储二进制数据,尤其是包含 NULL - 字节的值。这些类型具有相似的性能特性。 - - 4.11.1)我怎样创建一个序列号/自动递增的字段? - - PostgreSQL 支持 SERIAL - 数据类型。它在字段上自动创建一个序列和索引。例如: - CREATE TABLE person ( - id SERIAL, - name TEXT - ); + 4.10) 彗у绗︾被邃归存浠涔涓屣 + + 绫诲 彘ㄥ绉 璇存 + VARCHAR(n) varchar 驽烘澶ч垮害锛彘垮 + 绗︿覆锛涓瓒冲归垮害玳ㄥ涓琛ラ + CHAR(n) bpchar 瀹榭彗涓诧煎姘娈涓瓒冲归垮害娑锛浠ョ┖ 艰ˉ榻 + TEXT text 娌℃绻瀚玟搁殄讹间诲琛珂澶ч垮害殄讹 + BYTEA bytea 彘垮桢哄锛浣跨∟ULL彗涔姣彖顼 + "char" char 邃釜彗 + + 濞绯荤昏〃邋ㄤ镐洪璇俊姣殇 灏珏板楱彗О + + 涓棰驽珏彗х被彐"varlena"锛彘匡肩被屣间瑰氨姣璇达煎煎ご珏涓 + 桄垮害锛彘㈡姣姘娈锛 浜姣瀹殄 绋珑┖榇姣澹版珏ぇ灏瑕澶涓浜 + 缍梃夸虹被邋﹀瑰鹃挎堕藉互琚缂╁濞锛 姝 + ょg绌洪翠瑰芥㈡崇瑕灏 + + VARCHAR(n) 濞邋ㄩ宥浜驽ぇ榭搴︾彘垮绗︿覆姣驽ソ玢 TEXT 殓ㄤ哄 + 濞驽ぇ瀵杈 1G宸﹀充芥归宥榭搴︾彗涓层 + + CHAR(n) 骈邃哄濞榭搴︾稿珏绗︿覆 CHAR(n)浼 规缁瀹珏 + 娈甸垮害浠ョ┖ 艰ˉ瓒筹间歌冻珏娈靛瀹癸硷 VARCHAR(n) 濯瀛 + 濞骁诲姘娈邋 BYTEA 绋浜邋ㄤ鸿垮舵版煎挨宥姣邋 NULL 瀛 + 桤寮汨夸虹被邋锋宸稿ょ妲杞 + + 4.11.1) 骀 峰寤轰镐釜搴邋锋姣瑾濞殄㈢彐锛 + + PostgreSQL 姣 SERIAL 姘娈绫诲泔煎 + 娈靛逛负SERIAL屣煎拌ㄥ寤轰镐釜搴彗驽间惧︼ + CREATE TABLE person ( + id SERIAL, + name TEXT + ); - 会自动转换为: - CREATE SEQUENCE person_id_seq; - CREATE TABLE person ( - id INT4 NOT NULL DEFAULT nextval('person_id_seq'), - name TEXT - ); + 浼瑾濞杞负浠ヤ窼QL璇濂锛 + CREATE SEQUENCE person_id_seq; + CREATE TABLE person ( + id INT4 NOT NULL DEFAULT nextval('person_id_seq'), + name TEXT + ); - 参考 create_sequence 手册页获取关于序列的更多信息。 - - 4.11.2)我如何获得一个插入的序列号的值? - - 一种方法是在插入之前先用函数 nextval() 从序列对象里检索出下一个 SERIAL - 值,然后再显式插入。使用 4.11.1 里的例表,可用伪码这样描述: - new_id = execute("SELECT nextval('person_id_seq')"); - execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')"); + 彖 create_sequence 驽椤佃峰宄浜搴彗驽ㄧ娲澶淇℃ + + 4.11.2) 驽︿借峰句镐釜驽ョ搴邋风寮锛 + + 涓绉婀娉姣濞驽ヤ瑰彗ㄥ芥 nextval() 浠搴邋璞¢妫绱㈠轰镐镐釜 SERIAL + 寮锛缍邋绋妞寮绮剧‘灏驽ャ浣跨 4.11.1 殓渚琛煎ㄤ吉 杩 锋杩帮 + new_id = execute("SELECT nextval('person_id_seq')"); + execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')"); - 这样还能在其他查询中使用存放在 new_id 里的新值(例如,作为 person - 表的外键)。 注意自动创建的 SEQUENCE 对象的名称将会是 - <table>_<serialcolumn>_seq, 这里 table 和 serialcolumn - 分别是你的表的名称和你的 SERIAL 字段的名称。 - - 类似的,在 SERIAL 对象缺省插入后你可以用函数 currval() 检索刚赋值的 - SERIAL 值,例如: - execute("INSERT INTO person (name) VALUES ('Blaise Pascal')"); - new_id = execute("SELECT currval('person_id_seq')"); + 杩 疯胯藉ㄥ朵绘ヨ涓浣跨ㄥ婢濞 new_id 殓姘寮锛渚濡锛浣涓哄绉 person + 琛ㄧ澶楫锛 娉ㄦ瑾濞邋缓 SEQUENCE 瀵硅薄珏绉板颁兼 + <table>_<serialcolumn>_seq锛 杩 table serialcolumn + 邋 玷〃珏绉板浣 SERIAL 彐珏绉般 + + 绫讳技顼煎 SERIAL 瀵硅薄缂虹驽ュ浣 瀵浠ョㄥ芥 currval() 妫绱㈠璧寮 + SERIAL 寮锛渚濡锛 + execute("INSERT INTO person (name) VALUES ('Blaise Pascal')"); + new_id = execute("SELECT currval('person_id_seq')"); - 4.11.3)使用 currval() 会导致和其他用户的冲突情况(race condition)吗? - - 不会。currval() 返回的是你本次会话进程所赋的值而不是所有用户的当前值。 - - 4.11.4)为什么不在事务异常中止后重用序列号呢?为什么在序列号字段的取值中存在 - 间断呢? - - 为了提高并发性,序列号在需要的时候赋予正在运行的事务,并且在事务结束之 - 前不进行锁定, 这就会导致异常中止的事务后,序列号会出现间隔。 - - 4.12)什么是 OID ?什么是 CTID ? - + 4.11.3) 彐朵娇绋 currval() 浼瀵艰村宥浠绋娣珏茬宓屣 + + 涓浼鉩urrval() 杩彗姣浣 娆娆′艰跨ㄦ璧珏艰涓姣骀绋娣珏藉寮 + + 4.11.4) 涓轰讳逛稿ㄤ哄″煎父涓姊彘绋搴邋峰间负浠涔濞搴邋峰娈电邋间稿濞榇姝 + 澧锛 + + 涓轰烘楂骞跺妲锛搴邋峰ㄩ瑕珂跺璧浜姝 + eㄨ胯$浜濉锛骞朵稿ㄤ哄$绘涔邃歌胯¢瀹锛 杩灏变煎璐寮甯镐腑 + 姊玟哄″锛搴邋蜂煎虹伴撮 + + 4.12) 浠涔姣 OID 锛浠涔姣 CTID 锛 + PostgreSQL - 里创建的每一行记录都会获得一个唯一的OID,除非在创建表时使用WITHOUT - OIDS选项。 OID创建时会自动生成一个4字节的整数,所有 OID 在整个 - PostgreSQL 中均是唯一的。 然而,它在超过40亿时将溢出, - OID此后会出现重复。PostgreSQL 在它的内部系统表里使用 OID - 在表之间建立联系。 - - 在用户的数据表中,最好是使用SERIAl来代替OID - 因为SERIAL只是保证在单个表中数据是唯一的,这样它溢出的可能性就非常小了 - , SERIAL8可用来保存8字节的序列号字段。 - - CTID 用于标识带着数据块(地址)和(块内)偏移的特定的物理行。 CTID - 在记录被更改或重载后发生改变。索引入口使用它们指向物理行。 - - 4.13)为什么我收到错误信息“ERROR: Memory exhausted in AllocSetAlloc()”? - - 这很可能是系统的虚拟内存用光了,或者内核对某些资源有较低的限制值。在启 - 动 postmaster 之前试试下面的命令: - ulimit -d 262144 - limit datasize 256m + 殄寤虹姣涓琛璁板介戒艰峰句镐釜瀵涓鏞ID锛椁殄ㄥ寤鸿〃娑浣跨╓ITHOUT + OIDS殚」 OID邋缓娑浼瑾濞珂涓涓4彖珂存帮兼 OID + 濞绺搴PostgreSQL驽″ㄤ稿姣瀵涓玢 缍栾煎ㄨ惰40浜挎跺版孩搴锛 OID姝 + ゅ浼搴绨殄ゃPostgreSQL 濞瀹珏楱绯荤昏〃殇娇绋 OID 濞琛ㄤ归村缓绔桤郴 + + 濞绋娣珂版〃涓锛驽ソ姣浣跨⊿ERIAl妤浠f縊ID + 涓篠ERIAL濯瑕淇璇濞邃釜琛ㄤ腑 + 珂板兼哥灏卞互浜锛杩 峰孩搴珏芥у氨殄父灏浜锛 + SERIAL8瀵绋妤淇8彖珏哄姘寮 + + CTID 绋浜 璇甯︾姘娈屣煎板锛屣煎屣煎绉荤绻瀹珑╃琛 CTID + 濞璁板借娲婀骈杞藉彗婀邈绱㈠兼版娇绋瀹浠彗╃琛 + + 4.13) 涓轰讳规娑灏殍淇℃ERROR: Memory exhausted in AllocSetAlloc()怙 + + 杩寰瀵杞姣绯荤荤桄邋绋邃猴兼桢 稿驿鸿垫烘杈浣玳宥寮沐ㄥ + postmaster 涔彖搁㈢褰浠わ + ulimit -d 262144 + limit datasize 256m - 取决于你用的 - shell,上面命令只有一条能成功,但是它将把你的进程数据段限制设得比较高 - - 因而也许能让查询完成。这条命令应用于当前进程,以及所有在这条命令运行后 - 创建的子进程。 - 如果你是在运行SQL客户端时因为后台返回了太多的数据而出现问题,请在运行 - 突Ф酥爸葱猩鲜雒睢 - - 4.14)我如何才能知道所运行的 PostgreSQL 的版本? - - 从 psql 里,输入 SELECT version();指令。 - - 4.15)我如何创建一个缺省值是当前时间的字段? - - 使用 CURRENT_TIMESTAMP: - CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); + 邋充轰 绋 + shell锛涓棰褰浠ゅ涓妗杞驽锛浣姣瀹灏驿 玷跨ㄦ版殄惰寰姣杈楂锛 + 桎硅杞璁╂ヨ瀹驺杩妗褰浠ゅ虹ㄤ哄藉杩绋锛浠ュ骀濞杩妗褰浠よ胯″邋 + 缓珏杩绋 + 濡驿 姣濞杩琛SQL瀹㈡风娑 涓哄灏杩邃哄お澶珂版搴绨楫棰锛璇峰ㄨ胯 + 瀹㈡风涔彐ц′歌堪褰浠ゃ + + 4.14) 驽︿芥杞绁殒杩琛鏟ostgreSQL珑娆锛 + + 浠 psql 轱艰惧 SELECT version();驿护 + + 4.15) 驽︿藉寤轰镐釜缂虹寮姣褰彐堕寸彐锛 + + 浣跨 CURRENT_TIMESTAMP锛 + CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); - 4.16)我怎样进行 outer join (外连接)? - - PostgreSQL 采用标准的 SQL 语法支持外连接。这里是两个例子: - SELECT * - FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col); + 4.16) 骀 疯胯 outer join 锛澶杩妤锛锛 + + PostgreSQL 殓ㄦ 彗 SQL 璇娉姣驽よ挎ャ杩殒袱涓惧锛 + SELECT * + FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col); - 或是 - SELECT * - FROM t1 LEFT OUTER JOIN t2 USING (col); + 骀 + SELECT * + FROM t1 LEFT OUTER JOIN t2 USING (col); - 这两个等价的查询在 t1.col 和 t2.col 上做连接,并且返回 t1 - 中所有未连接的行(那些在 t2 中没有匹配的行)。 右[外]连接(RIGHT OUTER - JOIN)将返回 t2 中未连接的行。 完全外连接(FULL OUTER JOIN)将返回 t1 - 和 t2 中未连接的行。 关键字 OUTER - 在左[外]连接、右[外]连接和完全[外]连接中是可选的,普通连接被称为内连接 - (INNER JOIN)。 - - 4.17)如何使用涉及多个数据库的查询? - - 没有办法查询当前数据库之外的数据库。 因为 PostgreSQL - 要加载与数据库相关的系统目录(系统表),因此跨数据库的查询如何执行是不 - 定的。 - - 附加增值模块contrib/dblink允许采用函数调用实现跨库查询。当然用户也可以 - 同时连接到不同的数据库执行查询然后在客户端合并结果。 - - 4.18)如何让函数返回多行或多列? - - 在函数中返回数据记录集的功能是很容易使用的,详情参见: + 杩涓や釜玟环珂ヨ濞 t1.col t2.col 涓彖挎ワ煎苟涓杩 t1 涓 + 骀妾杩妤玷★奸d哄 t2 涓娌℃骞殓琛锛 宄[澶]杩妤锛RIGHT OUTER + JOIN锛灏杩 t2 涓妾杩妤玷° 瀹濞澶杩妤锛FULL OUTER JOIN锛灏杩 t1 t2 + 涓妾杩妤玷° 宄楫 OUTER 濞宸澶]杩妤沐砙澶]杩妤邋╗澶]杩妤涓 + 姣瀵殓锛娈殍挎ヨ绉颁负彖挎ワ糏NNER JOIN锛 + + 4.17) 濡浣浣跨ㄦ跺澶涓版虹妤璇 + + 娌℃彐虫ヨ褰彐版轰瑰ょ姘娈搴 + 涓篜ostgreSQL瑕 杞戒告版虹稿崇绯荤荤斤肩郴缁琛硷煎 姝 + よ法姘娈搴珂ヨ濡浣妲琛姣涓瀹玢 + + 殄 澧寮妯″contrib/dblink彖殓ㄥ芥拌扮ㄥ拌法搴妤璇€褰缍绋娣涔瀵浠 + 彐惰挎ュ颁稿珂版烘ц℃ヨ缍邋ㄥ娣绔骞剁绘 + + 4.18) 濡浣璁╁芥拌垮澶琛驽ゅ姘娈锛 + + 濞褰姘涓杩彐版褰殓彖芥惧驿娇绋顼艰驽瑙锛 http://techdocs.postgresql.org/guides/SetReturningFunctions - 4.19)为什么我在使用PL/PgSQL函数存取临时表时会收到错误信息“relation with - OID ##### does not exist”? - - PL/PgSQL会缓存函数的内容,由此带来的一个不好的副作用是若一个 PL/PgSQL - 函数访问了一个临时表,然后该表被删除并重建了,则再次调用该函数将失败, - 因为缓存的函数内容仍然指向旧的临时表。解决的方法是在 PL/PgSQL - 中用EXECUTE 对临时表进行访问。这样会保证查询在执行前总会被重新解析。 - - 4.27)目前有哪些数据复制方案可用? - - “复制”只是一个术语,有好几种复制技术可使用,每种都有优点和缺点: - - 主/从复制方式是允许一个主服务器接受读/写的申请,而多个从服务器只能接受 - 读/SELECT查询的申请, 目前最流行且是免费的主/从 PostgreSQL复制方案是 - Slony-I 。 - - 多个主服务器的复制方式允许将读/写的申请发送给多台的计算机,这种方式由 - 谛枰诙嗵ǚ衿髦渫绞荼涠 - 可能会带来较严重的性能损失,Pgcluster是目前这种方案 - 中最好的,而且还可以免费下载。 - - 也有一些商业需付费和基于硬件的数据复制方案,支持上述各种复制模型。 + 4.19) 涓轰讳规濞浣跨≒L/PgSQL褰姘邋涓存惰〃娑浼娑灏殍淇℃relation with + OID ##### does not exist怙 + + PL/PgSQL浼缂邋芥扮桄瀹癸肩辨ゅ甫妤玟镐釜涓濂界瀵浣绋姣瑗涓涓 + PL/PgSQL + 褰姘璁块轰镐釜涓存惰〃锛缍彖琛ㄨ 椁骞堕寤轰猴煎彐璋绋璇ュ芥板 + 板け璐ワ 涓虹煎珏芥板瀹逛荤舵彐х涓存惰〃汨В宄珂规虫 PL/PgSQL + 涓绋EXECUTE + 瀵逛复娑琛ㄨ胯¤楫汨挎 蜂间胯ヨ濞妲琛彐讳艰殒拌В驺 + + 4.20) 绠彐濯浜姘娈澶宥婀妗瀵绋锛 + + 忮ゅ垛濯姣涓涓兼濂藉 绉澶宥骀兼ч芥浼绻彗己绻锛 + + 涓/浠澶宥婀寮姣彖涓涓富驽″ㄦュ璇/彗绯璇凤艰澶涓绘濉濞濯杞妤彖 + /SELECT妤璇㈢绯璇凤 绠彐娴琛涓彖垂玟富/浠PostgreSQL澶宥婀妗姣 + Slony-I + + 澶涓富驽″ㄧ澶宥婀寮彖灏璇/彗绯璇峰殓诲ゅ扮璁$猴艰跨ф瑰肩变洪 + 瑕濞澶灏驽″ㄤ归村妤姘娈邋 + 瀵杞浼甯︽ヨ句弗殓妲杞驽け锛Pgcluster姣绠彖跨ф规 涓 + 驽ソ顼艰涓杩瀵浠ュ璐逛歌浇 + + 涔驿镐哄涓殇昏垂邋轰虹‖浠剁姘娈澶宥婀妗锛姣驿歌堪彗уゅ舵ā邈 + + 4.21) 涓轰芥ヨ缁骀剧ず玷〃彐邋涓骁妤璇㈣ヤ哥涓屣间负浣澶у缍驿歌戒跨锛 + + 驽父瑙珏 姣濞邋缓琛ㄦ跺琛ㄥ骀邃娇绋浜邋煎封怙煎戒娇绋浜邋煎峰锛琛 + ㄥ驽屣肩О涓烘 璇绗︼煎濞娑姣搴 澶у板顼 + 杩骅扮浣 濞妤璇㈡惰〃彐邋涔搴浣跨ㄥ寮宸锛涓浜宸ュ疯蒋浠讹煎pgAdmin浼濞 + 邋哄寤鸿〃珂浠ゆ惰ㄥ板ㄦ釜 璇绗︿稿 邋煎枫 姝 + わ间负浜 璇绗︾缁涓锛浣 搴璇ワ + * 濞邋缓琛ㄦ堕垮灏 璇绗︿娇绋邋煎峰艰捣妤 + * 濞 璇绗︿稿娇绋灏邋姣 + * 锛涓轰轰稿凡邋ㄧ 璇绗︾稿锛濞妤璇镐娇绋邋煎峰版 璇绗﹀艰捣妤 diff --git a/doc/FAQ_czech b/doc/FAQ_czech index 441ef1213af..78696bad58c 100644 --- a/doc/FAQ_czech +++ b/doc/FAQ_czech @@ -145,7 +145,7 @@ PostgreSQL je p鴈dm靦em n醩leduj韈韈h autorsk齝h pr醰: - D韑桧 Copyright (c) 1996-2006, PostgreSQL Global Development Group + D韑桧 Copyright (c) 1996-2007, PostgreSQL Global Development Group D韑桧 Copyright (c) 1994-6, Regents of the University of California Ud靗uje se opr醰n靚 k u緄t, rozmno緊v醤, prov醖靚 鷓rav a diff --git a/doc/FAQ_french b/doc/FAQ_french index 69a9da82424..24b8655da56 100644 --- a/doc/FAQ_french +++ b/doc/FAQ_french @@ -171,7 +171,7 @@ PostgreSQL Data Base Management System - Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group + Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group Portions Copyright (c) 1994-6 Regents of the University of California Permission to use, copy, modify, and distribute this software and its diff --git a/doc/FAQ_german b/doc/FAQ_german index 6f70c9d1d22..24a5bf54e7a 100644 --- a/doc/FAQ_german +++ b/doc/FAQ_german @@ -172,7 +172,7 @@ PostgreSQL Data Base Management System - Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group + Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group Portions Copyright (c) 1994-6 Regents of the University of California Permission to use, copy, modify, and distribute this software and its diff --git a/doc/FAQ_japanese b/doc/FAQ_japanese index 2ca543022e1..0547c515d39 100644 --- a/doc/FAQ_japanese +++ b/doc/FAQ_japanese @@ -146,7 +146,7 @@ PostgreSQLは概くからのBSDライセンスの布で芹邵されています。それは答塑弄には、网 PostgreSQL Data Base Management System -Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group Portions +Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group Portions Copyright (c) 1994-1996 Regents of the University of California Permission to use, copy, modify, and distribute this software and its diff --git a/doc/FAQ_polish b/doc/FAQ_polish index 3f7ee4c227d..6f4f16c442c 100644 --- a/doc/FAQ_polish +++ b/doc/FAQ_polish @@ -165,7 +165,7 @@ PostgreSQL Data Base Management System - Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group + Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group Portions Copyright (c) 1994-6 Regents of the University of California Permission to use, copy, modify, and distribute this software and its diff --git a/doc/FAQ_turkish b/doc/FAQ_turkish index 9ebc5a39a60..ad1afbb378c 100644 --- a/doc/FAQ_turkish +++ b/doc/FAQ_turkish @@ -156,7 +156,7 @@ PostgreSQL Data Base Management System - Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group + Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group Portions Copyright (c) 1994-6 Regents of the University of California Permission to use, copy, modify, and distribute this software and its diff --git a/doc/src/FAQ/FAQ.html b/doc/src/FAQ/FAQ.html index 868c87e58a2..da112652aeb 100644 --- a/doc/src/FAQ/FAQ.html +++ b/doc/src/FAQ/FAQ.html @@ -10,7 +10,7 @@ alink="#0000ff"> <H1>Frequently Asked Questions (FAQ) for PostgreSQL</H1> - <P>Last updated: Fri Jan 5 15:40:20 EST 2007</P> + <P>Last updated: Tue Jan 30 17:37:01 EST 2007</P> <P>Current maintainer: Bruce Momjian (<A href= "mailto:bruce@momjian.us">bruce@momjian.us</A>) @@ -41,7 +41,9 @@ <A href="#item1.12">1.12</A>) How do I submit a patch or join the development team?<BR> <A href="#item1.13">1.13</A>) How does PostgreSQL compare to other - <SMALL>DBMS</SMALL>s?<BR> + <SMALL>DBMS</SMALL>s?<BR> + <A href="#item1.14">1.14</A>) Will PostgreSQL handle recent daylight + saving time changes in various countries?<BR> <H2 align="center">User Client Questions</H2> @@ -169,7 +171,7 @@ <P>PostgreSQL Data Base Management System</P> - <P>Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group + <P>Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group Portions Copyright (c) 1994-1996 Regents of the University of California</P> <P>Permission to use, copy, modify, and distribute this software @@ -437,6 +439,14 @@ </DD> </DL> + <H3 id="item1.14">1.14) Will PostgreSQL handle recent daylight + saving time changes in various countries?</H3> + + <P>PostgreSQL versions prior to 8.0 use the operating system's + timezone database for daylight saving information. All current + versions of PostgreSQL 8.0 and later contain up-to-date timezone + information.</P> + <HR> <H2 align="center">User Client Questions</H2> diff --git a/doc/src/FAQ/FAQ_brazilian.html b/doc/src/FAQ/FAQ_brazilian.html index 8f5094b8eed..6ada06fa238 100644 --- a/doc/src/FAQ/FAQ_brazilian.html +++ b/doc/src/FAQ/FAQ_brazilian.html @@ -139,7 +139,7 @@ <P>PostgreSQL Data Base Management System</P> - <P>Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group + <P>Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group Portions Copyright (c) 1994-1996 Regents of the University of California</P> <P>Permission to use, copy, modify, and distribute this software diff --git a/doc/src/FAQ/FAQ_chinese.html b/doc/src/FAQ/FAQ_chinese.html index d089d69eab5..5198cbf129d 100644 --- a/doc/src/FAQ/FAQ_chinese.html +++ b/doc/src/FAQ/FAQ_chinese.html @@ -1,875 +1,1006 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en" dir="ltr"> - <head> - <title> - PostgreSQL: PostgreSQL 常见问题(FAQ) - </title> - <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> - </head> - - <body> - -<h1>PostgreSQL 常见问题(FAQ)</h1> -<p> -最近更新:2005 年 06 月 02 日 星期五 22:27:35 CST -</p> -<p> - 目前维护人员:Bruce Momjian (<a href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</a>)<br/> - 中文版维护人员:doudou586 (doudou586_2005@yahoo.com.cn) -</p> -<p> - 本文档的最新版本可以在 - <a href="http://www.postgresql.org/files/documentation/faqs/FAQ.html">http://www.postgresql.org/files/documentation/faqs/FAQ.html</a>查看。 -</p> -<p> - 与操作系统平台相关的问题在<a href="http://www.postgresql.org/docs/faq/">http://www.postgresql.org/docs/faq/</a>里回答。<br/> -</p> -<hr/> - -<div><h2>常见问题</h2></div> - -<p> -<a href="#1.1">1.1</a>)PostgreSQL 是什么?该怎么发音?<br/> -<a href="#1.2">1.2</a>)PostgreSQL 的版权是什么?<br/> -<a href="#1.3">1.3</a>)PostgreSQL 可以运行在哪些操作系统平台上?<br/> -<a href="#1.4">1.4</a>)我从哪里能得到 PostgreSQL?<br/> -<a href="#1.5">1.5</a>)我从哪里能得到对 PostgreSQL 的支持?<br/> -<a href="#1.6">1.6</a>)我如何提交一个BUG报告?<br/> -<a href="#1.7">1.7</a>)最新版的PostgreSQL 是什么?<br/> -<a href="#1.8">1.8</a>)能够获取的最新文档有哪些?<br/> -<a href="#1.9">1.9</a>)我如何了解已知的 BUG 或暂缺的功能?<br/> -<a href="#1.10">1.10</a>)我应该怎样学习 SQL ?<br/> -<a href="#1.11">1.11</a>)我应该怎样加入开发队伍?<br/> -<a href="#1.12">1.12</a>)PostgreSQL 和其他数据库系统比起来如何?<br/> -<a href="#1.13">1.13</a>)谁控制和管理PostgreSQL ? -</p> - -<div><h2>用户客户端问题</h2></div> -<p> -<a href="#2.1">2.1</a>)我们可以用什么语言和 PostgreSQL 打交道?<br/> -<a href="#2.2">2.2</a>)有什么工具可以把 PostgreSQL 用于 Web 页面?<br/> -<a href="#2.3">2.3</a>)PostgreSQL 拥有图形用户界面吗?<br/> -</p> - -<div><h2>系统管理问题</h2></div> -<p> -<a href="#3.1">3.1</a>)我怎样才能把 PostgreSQL 装在 /usr/local/pgsql 以外的地方?<br/> -<a href="#3.2">3.2</a>)我如何控制来自其他主机的连接?<br/> -<a href="#3.3">3.3</a>)我怎样调整数据库引擎以获得更好的性能?<br/> -<a href="#3.4">3.4</a>)PostgreSQL 里可以获得什么样的调试特性?<br/> -<a href="#3.5">3.5</a>)为什么在试图连接登录时收到“Sorry, too many clients” 消息?<br/> -<a href="#3.6">3.6</a>)为什么要在升级 PostgreSQL 主要发布版本时做 dump 和 restore ?<br/> -<a href="#3.7">3.7</a>)(使用PostgreSQL)我需要使用什么计算机硬件 ?<br/> -</p> - -<div><h2>操作问题</h2></div> -<p> -<a href="#4.1">4.1</a>)如何只选择一个查询结果的头几行?或是随机的一行?<br/> -<a href="#4.2">4.2</a>)如何查看表、索引、数据库以及用户的定义?如何查看<i>psql</i>里用到的查询指令并显示它们?<br/> -<a href="#4.3">4.3</a>)如何更改一个字段的数据类型?<br/> -<a href="#4.4">4.4</a>)一行记录,一个表,一个库的最大尺寸是多少?<br/> -<a href="#4.5">4.5</a>)存储一个典型的文本文件里的数据需要多少磁盘空间?<br/> -<a href="#4.6">4.6</a>)为什么我的查询很慢?为什么这些查询没有利用索引?<br/> -<a href="#4.7">4.7</a>)我如何才能看到查询优化器是怎样评估处理我的查询的?<br/> -<a href="#4.8">4.8</a>)我怎样做正则表达式搜索和大小写无关的正则表达式查找?怎样利用索引进行大小写无关查找?<br/> -<a href="#4.9">4.9</a>)在一个查询里,我怎样检测一个字段是否为 NULL?我如何才能准确排序而不论某字段是否含NULL值?<br/> -<a href="#4.10">4.10</a>)各种字符类型之间有什么不同?<br/> -<a href="#4.11.1">4.11.1</a>)我怎样创建一个序列号/自动递增的字段?<br/> -<a href="#4.11.2">4.11.2</a>)我如何获得一个插入的序列号的值?<br/> -<a href="#4.11.3">4.11.3</a>)使用 currval() 会导致和其他用户的紊乱情况(race condition)吗?<br/> -<a href="#4.11.4">4.11.4</a>)为什么不在事务异常中止后重用序列号呢?为什么在序列号字段的取值中存在间断呢?<br/> -<a href="#4.12">4.12</a>)什么是 OID?什么是 CTID ?<br/> -<a href="#4.13">4.13</a>)为什么我收到错误信息“<i>ERROR: Memory exhausted in AllocSetAlloc()</i>”?<br/> -<a href="#4.14">4.14</a>)我如何才能知道所运行的 PostgreSQL 的版本?<br/> -<a href="#4.15">4.15</a>)我如何创建一个缺省值是当前时间的字段?<br/> -<a href="#4.16">4.16</a>)如何进行 outer join (外连接)?<br/> -<a href="#4.17">4.17</a>)如何使用涉及多个数据库的查询?<br/> -<a href="#4.18">4.18</a>)如何让函数返回多行或多列?<br/> -<a href="#4.19">4.19</a>)为什么我在使用PL/PgSQL函数存取临时表时会收到错误信息“relation with OID ##### does not exist”?<br/> -<a href="#4.20">4.20</a>)目前有哪些数据复制方案可用?<br/> -</p> - -<hr/> - -<div><h2>常见问题</h2></div> - -<h4><a name="1.1"></a>1.1)PostgreSQL 是什么?该怎么发音?</h4> -<p> -PostgreSQL 读作 <i>Post-Gres-Q-L</i>,有时候也简称为<i>Postgres</i> 。 -</p> -<p> - PostgreSQL 是面向目标的关系数据库系统,它具有传统商业数据库系统的所有功能,同时又含有将在下一代 DBMS 系统的使用的增强特性。 - PostgreSQL 是自由免费的,并且所有源代码都可以获得。 -</p> - -<p> - PostgreSQL 的开发队伍主要为志愿者,他们遍布世界各地并通过互联网进行联系,这是一个社区开发项目,它不被任何公司控制。 - 如想加入开发队伍,请参见开发人员常见问题(FAQ) - <a href="http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html">http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html</a> -</p> - - -<h4><a name="1.2"></a>1.2)PostgreSQL 的版权是什么?</h4> -<p> -PostgreSQL的发布遵从经典的BSD版权。关于源代码的如何使用没有任何限制,我们很喜欢这种方式并且还没有打算改变它。 -</p> -<p> -下面就是我们使用的BSD版权内容: -</p> - -<p> - 部分版权(c)1996-2005,PostgreSQL 全球开发小组,部分版权(c)1994-1996 加州大学董事 -</p> - -<p> - (Portions copyright (c) 1996-2005, PostgreSQL Global Development Group Portions Copyright (c) 1994-6 Regents of the University of California) -</p> - -<p> - 允许为任何目的使用,拷贝,修改和分发这个软件和它的文档而不收取任何费用, - 并且无须签署因此而产生的证明,前提是上面的版权声明和本段以及下面两段文字出现在所有拷贝中。 -</p> - -<p> - (Permission to use, copy, modify, and distribute this software and its - documentation for any purpose, without fee, and without a written agreement is - hereby granted, provided that the above copyright notice and this paragraph and - the following two paragraphs appear in all copies.) -</p> - -<p> - 在任何情况下,加州大学都不承担因使用此软件及其文档而导致的对任何当事人的直接的, - 间接的,特殊的,附加的或者相伴而生的损坏,包括利益损失的责任,即使加州大学已经建议了这些损失的可能性时也是如此。 -</p> - -<p> - (IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR - DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST - PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF - THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH - DAMAGE.) -</p> - -<p> - 加州大学明确放弃任何保证,包括但不局限于某一特定用途的商业和利益的隐含保证。 - 这里提供的这份软件是基于“当作是”的基础的,因而加州大学没有责任提供维护,支持,更新,增强或者修改的服务。 -</p> - -<p> - (THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT - NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND - THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, - SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.)<br/> - -</p> - -<h4><a name="1.3"></a>1.3)PostgreSQL 可以运行在哪些操作系统平台上?</h4> - -<p> - 一般说来,一个现代的 UNIX 兼容的平台都能运行 PostgreSQL 。在安装指南里列出了发布时经过明确测试的平台。 -</p> - -<p> - PostgreSQl也可以直接运行在基于微软Windows-NT的操作系统,如Win2000,WinXP 和 Win2003,已制作完成的安装包可从 - <a href="http://pgfoundry.org/projects/pginstaller">http://pgfoundry.org/projects/pginstaller</a>下载,基于MSDOS的Windows操作系统 - (Win95,Win98,WinMe)需要通过Cygwin模拟环境运行PostgreSQL。 -</p> - -<p> - 同时也有一个为Novell Netware 6开发的版本可从<a href="http://forge.novell.com"> http://forge.novell.com </a>获取,为OS/2开发的版本可从 - <a href="http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F"> - http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F</a> -</p> - -<h4><a name="1.4"></a>1.4)我从哪里能得到 PostgreSQL?</h4> - -<p> - 通过浏览器可从<a href="http://www.postgresql.org/ftp/">http://www.postgresql.org/ftp/</a>下载,也可通过FTP,从 - <a href="ftp://ftp.PostgreSQL.org/pub/">ftp://ftp.PostgreSQL.org/pub/</a>站点下载。 -</p> - - -<h4><a name="1.5"></a>1.5)我从哪里能得到对 PostgreSQL 的支持?</h4> -<p> - PostgreSQL社区通过邮件列表为其大多数用户提供帮助,加入邮件列表的主站点是<a href="http://www.postgresql.org/community/lists/"> http://www.postgresql.org/community/lists/</a>,一般情况下,先加入<i>General</i> 或 <i>Bug</i>邮件列表是一个较好的开始。 -</p> - -<p> - 主要的IRC频道是在FreeNode(<i>irc.freenode.net</i>)的<i>#postgresql</i>,为了连上此频道,可以使用UNIX程序irc,其指令格式: - irc -c '#postgresql' "$USER" irc.freenode.net ,或者使用其他IRC客户端程序。在此网络中还存在一个PostgreSQL的西班牙频道(<i>#postgersql-es</i>)和法语频道 - (<i>#postgresql-fr</i>)。同样地,在EFNET上也有一个PostgreSQL的交流频道。 -</p> - -<p> - 商业支持公司的列表在<a href=" http://techdocs.postgresql.org/companies.php"> http://techdocs.postgresql.org/companies.php</a>。 -</p> - - - -<h4><a name="1.6"></a>1.6)我如何提交一个BUG报告?</h4> -<p> - 可访问 <a href="http://www.postgresql.org/support/submitbug">http://www.postgresql.org/support/submitbug</a>,填写Bug上报表格即可。 -</p> - -<p> - 同样也可访问ftp站点<a href="ftp://ftp.PostgreSQL.org/pub/">ftp://ftp.PostgreSQL.org/pub/</a> 检查有无更新的PostgreSQL版本或补丁。 -</p> - - - -<h4><a name="1.7"></a>1.7)最新版的PostgreSQL 是什么?</h4> -<p> - PostgreSQL 最新的版本是版本 8.0.2 (译注:现最新版本为8.0.3)。 -</p> - -<p> - 我们计划每年发布一个主要版本,每几个月发布一个小版本。 -</p> - - -<h4><a name="1.8"></a>1.8)能够获取的最新文档有哪些?</h4> - -<p> - PostgreSQL包含大量的文档,主要有一些手册,手册页和一些的测试例子。参见 /doc 目录(译注:应为 $PGHOME/doc)。 - 你还可以在线浏览 PostgreSQL 的手册,其地址是:<a href="http://www.PostgreSQL.org/docs">http://www.PostgreSQL.org/docs</a>。 -</p> -<p> - 有两本关于 PostgreSQL 的书在线提供,在 - <a href="http://www.PostgreSQL.org/docs/awbook.html">http://www.PostgreSQL.org/docs/awbook.html</a> - 和 <a href="http://www.commandprompt.com/ppbook/">http://www.commandprompt.com/ppbook/</a> 。 - 也有大量的PostgreSQL书籍可供购买,其中最为流行的一本是由Korry Douglas编写的。在 - <a href="http://techdocs.PostgreSQL.org/techdocs/bookreviews.php">http://techdocs.PostgreSQL.org/techdocs/bookreviews.php</a>上 - 上有大量有关PostgreSQL书籍的简介。 - 在 <a href="http://techdocs.PostgreSQL.org/">http://techdocs.PostgreSQL.org/</a>上收集了有关 PostgreSQL 的大量技术文章。 -</p> - -<p> - 客户端的命令行程序<i>psql</i>有一些以 \d 开头的命令,可显示关于类型,操作符,函数,汇总等的信息,使用 \? 可以显示所有可用的命令。 -</p> - -<p> - 我们的 web 站点包含更多的文档。 -</p> - -<h4><a name="1.9"></a>1.9)我如何了解已知的 BUG 或暂缺的功能?</h4> -<p> - PostgreSQL 支持一个扩展了的 SQL-92 的子集。参阅我们的<a href="http://www.postgresql.org/docs/faqs.TODO.html">TODO</a> 列表,获取一个已知Bug,暂缺的功能和将来的计划。 -</p> - - -<h4><a name="1.10"></a>1.10)我应该怎样学习 SQL ?</h4> -<p> - 首先考虑上述提到的与PostgreSQL相关的书籍,另外一本是<i>Teach Yourself SQL in 21 Days, Second Edition</i>, - 我们的许多用户喜欢<i>The Practical SQL Handbook</i> Bowman, Judith S., et al., Addison-Wesley,其他的则喜欢 - <i>The Complete Reference SQL</i>, Groff et al., McGraw-Hill。 -</p> - - -<h4><a name="1.11"></a>1.11)我应该怎样加入开发队伍?</h4> -<p> - 详见<a href="http://www.postgresql.org/docs/faqs.FAQ_DEV.html"> Developer's FAQ </a>。 -</p> - - -<h4><a name="1.12"></a>1.12)PostgreSQL 和其他数据库系统比起来如何?</h4> -<p> -评价软件有好几种方法:特性,性能,可靠性,支持和价格。 -</p> -<dl> - <dt><b>特性</b></dt> - <dd> - PostgreSQL 拥有大型商用 DBMS 里大多数特性, - 例如:事务,子查询,触发器,视图,外键参考完整性和复杂的锁等。 - 我们还有一些它们没有的特性,如用户定义类型,继承,规则和多版本并行控制以减少锁的争用等。<br/> - </dd> - - <dt><b>性能</b></dt> - <dd> - PostgreSQL 和其他商用和开源的数据库具有类似的性能。 - 对某些处理它比较快,对其他一些处理它比较慢。 - 与其他数据库相比,我们的性能通常在 +/- 10%之间。<br/> - </dd> - - <dt><b>可靠性</b></dt> - <dd> - 我们知道 DBMS 必须是可靠的,否则它就一点用都没有。 - 我们努力做到发布经过认真测试的,稳定的臭虫最少的代码。每个版本至少有一个月的 beta - 测试时间,并且我们的发布历史显示我们可以提供稳定的,牢固的,可用于生产使用的版本。我们相信 - 在这方面我们与其他的数据库软件是相当的。<br/> - </dd> - - <dt><b>支持</b></dt> - <dd> - 我们的邮件列表提供一个非常大的开发人员和用户的组以帮助解决所碰到的任何问题。 - 我们不能保证肯定能解决问题,相比之下,商用 DBMS 也并不是总能够提供解决方法。 - 直接与开发人员,用户群,手册和源程序接触令 PostgreSQL 的支持比其他 DBMS - 还要好。还有一些商业性的预包装的支持,可以给提供给那些需要的人。(参阅 FAQ 条款 1.5 小节)<br/> - </dd> - - <dt><b>价格</b></dt> - <dd> - 我们对任何用途都免费,包括商用和非商用目的。 - 你可以不加限制地向你的产品里加入我们的代码,除了那些我们在上面的版权声明里声明的 BSD 风格的版权外。 - </dd> - -</dl> - - -<h4><a name="1.13"></a>1.13)谁控制PostgreSQL ?</h4> -<p> - 如果你在寻找PostgreSQL的掌门人,或是什么中央委员会,或是什么所属公司,你只能放弃了---因为一个也不存在,但我们的确有一个 - 委员会和CVS管理组,但这些工作组的设立主要是为了进行管理工作而不是对PostgreSQL进行控制,PostgreSQL项目是由任何人均 - 可参加的开发人员社区和所有用户控制的,你所需要做的就是加入邮件列表,参与讨论即可(要参与PostgreSQL的开发详见 - <a href="http://www.postgresql.org/docs/faqs.FAQ_DEV.html"> Developer's FAQ </a>获取信息)。 -</p> - -<hr/> - - -<div> <h2>用户客户端问题</h2> </div> - -<h4><a name="2.1"></a>2.1)我们可以用什么语言和 PostgreSQL 打交道?</h4> -<p> - PostgreSQL(缺省情况)只安装有C和内嵌式C的接口,其他的接口都是独立的项目,能够分别下载,这些接口项目独立的好处 - 是他们可以有各自的发布计划和各自独立的开发组。 -</p> -<p> - 一些编程语言如PHP都有访问 PostgreSQL 的接口,Perl,TCL,Python以及很多其他语言的接口在 - <a href="http://gborg.postgresql.org/"> http://gborg.postgresql.org </a>上的<i>Drivers/Interfaces</i>小节可找到, - 并且通过Internet很容易搜索到。 -</p> - - - -<h4><a name="2.2"></a>2.2)有什么工具可以把 PostgreSQL 用于 Web 页面?</h4> -<p> - 一个介绍以数据库为后台的挺不错的站点是:<a href="http://www.webreview.com">http://www.webreview.com</a>。 -</p> -<p> - 对于 Web 集成,PHP 是一个极好的接口。它在:<a href="http://www.php.net/">http://www.php.net/</a>。 -</p> -<p> - 对于复杂的任务,很多人采用 Perl 接口和 CGI.pm 或 mod_perl 。 -</p> - - -<h4><a name="2.3"></a>2.3)PostgreSQL 拥有图形用户界面吗?</h4> -<p> - 是的,在 <a href="http://techdocs.postgresql.org/guides/GUITools">http://techdocs.postgresql.org/guides/GUITools</a>有一个详细的列表。 -</p> - - - -<hr/> - -<div> <h2>系统管理问题</h2> </div> - -<h4><a name="3.1"></a>3.1)我怎样能把 PostgreSQL 装在 /usr/local/pgsql 以外的地方?</h4> -<p> - 在运行 configure 时加上 --prefix 选项。 -</p> - - -<h4><a name="3.2"></a>3.2)我如何控制来自其他主机的连接?</h4> -<p> - 缺省时,PostgreSQL 只允许通过 unix 域套接字或TCP/IP方式且来自本机的连接。 - 你只有在修改了配置文件<i>postgresql.conf</i>中的<i>listen_addresses</i>,且也在配置文件<i>pg_hba.conf</i>中打开了 - 主机为基础( host-based )的身份认证,并重新启动PostgreSQL,否则其他机器是不能与你的PostgreSQL服务器连接的。 -</p> - - -<h4><a name="3.3"></a>3.3)我怎样调整数据库引擎以获得更好的性能?</h4> -<p> - 有三个主要方面可以提升PostgreSQL的潜能。 -</p> - -<dl> - <dt><b>查询方式的变化</b></dt> - <dd> - 这主要涉及修改查询方式以获取更好的性能: - <ul> - <li>创建索引,包括表达式和部分索引;</li> - <li>使用COPY语句代替多个Insert语句;</li> - <li>将多个SQL语句组成一个事务以减少提交事务的开销;</li> - <li>从一个索引中提取多条记录时使用CLUSTER;</li> - <li>从一个查询结果中取出部分记录时使用LIMIT;</li> - <li>使用预编译式查询(Prepared Query);</li> - <li>使用ANALYZE以保持精确的优化统计;</li> - <li>定期使用 VACUUM 或 <i>pg_autovacuum</i></li> - <li>进行大量数据更改时先删除索引(然后重建索引)</li> - </ul> - </dd> - - <dt><b>服务器的配置</b></dt> - <dd> - 配置文件<i>postgres.conf</i>中的很多设置都会影响性能,所有参数的列表可见: - <a href="http://www.postgresql.org/docs/current/static/runtime.html">Administration Guide/Server Run-time Environment/Run-time Configuration</a>, - 有关参数的解释可见:<a href="http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html"> - http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html </a> 和 - <a href="http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html">http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html</a>。 - </dd> - - <dt><b>硬件的选择</b></dt> - <dd> - 计算机硬件对性能的影响可浏览 <a href="http://candle.pha.pa.us/main/writings/pgsql/hw_performance/index.html"> - http://candle.pha.pa.us/main/writings/pgsql/hw_performance/index.html</a> 和 - <a href="http://www.powerpostgresql.com/PerfList/">http://www.powerpostgresql.com/PerfList/</a>。 - </dd> - -</dl> - - -<h4><a name="3.4"></a>3.4)PostgreSQL 里可以获得什么样的调试特性?</h4> -<p> - PostgreSQL 有很多类似<i> log_* </i>的服务器配置变量可用于查询的打印和进程统计,而这些工作对调试和性能测试很有帮助。 -</p> - - - -<h4><a name="3.5"></a>3.5)为什么在试图连接时收到“Sorry, too many clients”消息?</h4> -<p> - 这表示你已达到缺省100个并发后台进程数的限制,你需要通过修改<i>postgresql.conf</i>文件中的<i>max_connections</i>值来 - 增加postmaster的后台并发处理数,修改后需重新启动<i>postmaster</i>。 -</p> - - -<h4><a name="3.6"></a>3.6)为什么要在升级 PostgreSQL 主要发布版本时做 dump 和 restore ?</h4> -<p> - PostgreSQL 开发组对每次小的升级仅做了较少的修改,因此从 7.4.0 升级到 7.4.1 不需要 dump 和 restore。 - 但是主要的升级(例如从 7.3 到 7.4)通常会修改系统表和数据表的内部格式。 - 这些变化一般比较复杂,因此我们不维数据文件的向后兼容。 - dump 将数据按照通用的格式输出,随后可以被重新加载并使用新的内部格式。 -</p> - -<h4><a name="3.7"></a>3.7)(使用PostgreSQL)我需要使用什么计算机硬件 ?</h4> -<p> - 由于计算机硬件大多数是兼容的,人们总是倾向于相信所有计算机硬件质量也是相同的。事实上不是, - ECC RAM(带奇偶校验的内存),SCSI (硬盘)和优质的主板比一些便宜货要更加可靠且具有更好的性能。PostgreSQL几乎可以运行在任何硬件上, - 但如果可靠性和性能对你的系统很重要,你就需要全面的研究一下你的硬件配置了。在我们的邮件列表上也有关于 - 硬件配置和性价比的讨论。 -</p> - - -<hr/> - -<div><h2>操作问题</h2> </div> - - -<h4><a name="4.1"></a>4.1)如何只选择一个查询结果的头几行?或是随机的一行?</h4> -<p> - 如果你只是要提取几行数据,并且你在执行查询中知道确切的行数,你可以使用LIMIT功能。 - 如果有一个索引与 <i> ORDER BY</i>中的条件匹配,PostgreSQL 可能就只处理要求的头几条记录, - (否则将对整个查询进行处理直到生成需要的行)。如果在执行查询功能时不知道确切的记录数, - 可使用游标(cursor)和FETCH功能。 -</p> -<p> - 可使用以下方法提取一行随机记录的: -</p> -<pre> - SELECT cols - FROM tab - ORDER BY random() - LIMIT 1 ; -</pre> - - - -<h4><a name="4.2"></a>4.2)如何查看表、索引、数据库以及用户的定义?如何查看<i>psql</i>里用到的查询指令并显示它们?</h4> -<p> - 在<i>psql</i>中使用 \dt 命令来显示数据表的定义,要了解<i>psql</i>中的完整命令列表可使用\? ,另外,你也可以阅读 <i>psql</i> 的源代码 - 文件<i>pgsql/src/bin/psql/describe.c</i>,它包括为生成<i>psql</i>反斜杠命令的输出的所有 SQL 命令。你还可以带 <i>-E</i> 选项启动 <i>psql</i>, - 这样它将打印出执行你在<i>psql</i>中所给出的命令的内部实际使用的SQL查询。PostgreSQL也提供了一个兼容SQL的INFORMATION SCHEMA接口, - 你可以从这里获取关于数据库的信息。 -</p> -<p> - 在系统中有一些以<i>pg_</i> 打头的系统表也描述了表的定义。 -</p> -<p> - 使用 <i>psql -l</i> 指令可以列出所有的数据库。 -</p> -<p> - 也可以浏览一下 <i>pgsql/src/tutorial/syscat.source</i>文件,它列举了很多可从数据库系统表中获取信息的SELECT语法。 -</p> - - -<h4><a name="4.3"></a>4.3)如何更改一个字段的数据类型?</h4> -<p> - 在8.0版本里更改一个字段的数据类型很容易,可使用 ALTER TABLE ALTER COLUMN TYPE 。 -</p> -<p> - 在以前的版本中,可以这样做: -</p> -<pre> - BEGIN; - ALTER TABLE tab ADD COLUMN new_col new_data_type; - UPDATE tab SET new_col = CAST(old_col AS new_data_type); - ALTER TABLE tab DROP COLUMN old_col; - COMMIT; -</pre> -<p> - 你然后可以使用<i>VACUUM FULL tab </i>指令来使系统收回无效数据所占用的空间。 -</p> - -<h4><a name="4.4"></a>4.4)一行记录,一个表,一个库的最大尺寸是多少?</h4> -<p> - 下面是一些限制: -</p> -<blockquote> - <table> - <tbody> - <tr><td>一个数据库最大尺寸?</td><td>无限制(已存在有 32TB 的数据库)</td></tr> - <tr><td>一个表的最大尺寸?</td><td>32 TB</td></tr> - <tr><td>一行记录的最大尺寸?</td><td>1.6 TB</td></tr> - <tr><td>一个字段的最大尺寸?</td><td>1 GB</td></tr> - <tr><td>一个表里最大行数?</td><td>无限制</td></tr> - <tr><td>一个表里最大列数?</td><td>250-1600 (与列类型有关)</td></tr> - <tr><td>一个表里的最大索引数量?</td><td>无限制</td></tr> - </tbody> -</table> -</blockquote> - -<p> - 当然,实际上没有真正的无限制,还是要受可用磁盘空间、可用内存/交换区的制约。 - 事实上,当这些数值变得异常地大时,系统性能也会受很大影响。 -</p> - -<p> - 表的最大尺寸 32 TB 不需要操作系统对大文件的支持。大表用多个 1 GB 的文件存储,因此文件系统尺寸的限制是不重要的。 -</p> -<p> - 如果缺省的块大小增长到 32K ,最大的表尺寸和最大列数还可以增加到四倍。 -</p> - - -<h4><a name="4.5"></a>4.5)存储一个典型的文本文件里的数据需要多少磁盘空间?</h4> -<p> - 一个 Postgres 数据库(存储一个文本文件)所占用的空间最多可能需要相当于这个文本文件自身大小5倍的磁盘空间。 -</p> -<p> - 例如,假设有一个 100,000 行的文件,每行有一个整数和一个文本描述。 - 假设文本串的平均长度为20字节。文本文件占用 2.8 MB。存放这些数据的 PostgreSQL 数据库文件大约是 6.4 MB: -</p> -<pre> - 32 字节: 每行的头(估计值) - 24 字节: 一个整数型字段和一个文本型字段 - + 4 字节: 页面内指向元组的指针 - ---------------------------------------- - 60 字节每行 - - PostgreSQL 数据页的大小是 8192 字节 (8 KB),则: - - 8192 字节每页 - ------------------- = 136 行/数据页(向下取整) - 60 字节每行 - - 100000 数据行 - -------------------- = 735 数据页(向上取整) - 128 行每页 - - 735 数据页 * 8192 字节/页 = 6,021,120 字节(6 MB) -</pre> - -<p> - 索引不需要这么多的额外消耗,但也确实包括被索引的数据,因此它们也可能很大。 -</p> -<p> - 空值<i>NULL</i>存放在位图中,因此占用很少的空间。 -</p> - -<h4><a name="4.6"></a>4.6)为什么我的查询很慢?为什么这些查询没有利用索引?</h4> -<p> - 并非每个查询都会自动使用索引。只有在表的大小超过一个最小值,并且查询只会选中表中较小比例的记录时才会采用索引。 - 这是因为索引扫描引起的随即磁盘存取可能比直接地读取表(顺序扫描)更慢。 -</p> -<p> - 为了判断是否使用索引,PostgreSQL必须获得有关表的统计值。这些统计值可以使用 VACUUM ANALYZE,或 ANALYZE 获得。 - 使用统计值,优化器知道表中有多少行,就能够更好地判断是否利用索引。 - 统计值对确定优化的连接顺序和连接方法也很有用。在表的内容发生变化时,应定期进行统计值的更新收集。 -</p> -<p> - 索引通常不用于 ORDER BY 或执行连接。对一个大表的一次顺序扫描,再做一个显式的排序通常比索引扫描要快。 -</p> - -<p> - 但是,在 LIMIT 和 ORDER BY 结合使用时经常会使用索引,因为这只会返回表的一小部分。 - 实际上,虽然 MAX() 和 MIN() 并不使用索引,通过对 - ORDER BY 和 LLIMIT 使用索引取得最大值和最小值也是可以的: -</p> -<pre> - SELECT col - FROM tab - ORDER BY col [ DESC ] - LIMIT 1; -</pre> -<p> - 如果你确信PostgreSQL的优化器使用顺序扫描是不正确的,你可以使用<code>SET enable_seqscan TO 'off'</code>指令, - 然后再次运行查询,你就可以看出使用一个索引扫描是否确实要快一些。 -</p> - -<p> - 当使用通配符操作,例如 <i>LIKE</i> 或 <i>~</i> 时,索引只能在特定的情况下使用: -</p> -<ul> - <li>字符串的开始部分必须是普通字符串,也就是说: - <ul> - <li> <i>LIKE</i> 模式不能以 <i>%</i> 打头。</li> - <li> <i>~</i> (正则表达式)模式必须以 <i>^</i> 打头。</li> - </ul> - </li> - <li>字符串不能以匹配多个字符的模式类打头,例如 [a-e]。</li> - <li>大小写无关的查找,如 ILIKE 和 ~* 等不使用索引,但可以用 <a href="#4.8">4.8</a> 节描述的函数索引。</li> - <li>在做 initdb 时必须采用缺省的本地设置 C locale,因为系统不可能知道在非C locale情况时下一个最大字符是什么。 - 在这种情况下,你可以创建一个特殊的<code>text_pattern_ops</code>索引来用于<small>LIKE</small>的索引。 - </li> -</ul> -<p> - 在8.0之前的版本中,除非要查询的数据类型和索引的数据类型相匹配,否则索引经常是未被用到,特别是对int2,int8和数值型的索引。 -</p> - -<h4><a name="4.7"></a>4.7)我如何才能看到查询优化器是怎样评估处理我的查询?</h4> -<p> - 参考 <small>EXPLAIN</small> 手册页。 -</p> - -<h4><a name="4.8"></a>4.8)我怎样做正则表达式搜索和大小写无关的正则表达式查找?怎样利用索引进行大小写无关查找?</h4> -<p> - 操作符 <i> ~ </i> 处理正则表达式匹配,而 <i>~*</i> 处理大小写无关的正则表达式匹配。大写些无关的 LIKE 变种成为 ILIKE。 -</p> -<p> - 大小写无关的等式比较通常写做: -</p> -<pre> SELECT * - FROM tab - WHERE lower(col) = 'abc'; -</pre> -<p> - 这样将不会使用标准的索引。但是可以创建一个可被利用的函数索引: -</p> -<pre> CREATE INDEX tabindex ON tab (lower(col)); -</pre> - -<h4><a name="4.9"></a>4.9)在一个查询里,我怎样检测一个字段是否为 <i>NULL</i> ?我如何才能准确排序而不论某字段是否含 <i>NULL</i> 值?</h4> -<p> - 用 <small>IS NULL</small> 和 <small>IS NOT NULL</small> 测试这个字段,具体方法如下: -</p> -<pre> SELECT * - FROM tab - WHERE col IS NULL; -</pre> - -<p>为了能对含 <small>NULL</small>字段排序,可在 <small>ORDER BY</small> 条件中使用 <small>IS NULL</small>和 - <small>IS NOT NULL</small> 修饰符,条件为真 <i>true</i> 将比条件为假<i>false</i> 排在前面,下面的例子就会将含 - NULL 的记录排在结果的上面部分: -</p> -<pre> SELECT * - FROM tab - ORDER BY (col IS NOT NULL) -</pre> - -<h4><a name="4.10"></a>4.10)各种字符类型之间有什么不同?</h4> -<blockquote> - <table> - <tbody> - <tr><th>类型</th><th>内部名称</th><th>说明</th></tr> - <tr><td>VARCHAR(n)</td><td>varchar</td><td>指定了最大长度,变长字符串,不足定义长度的部分不补齐</td></tr> - <tr><td>CHAR(n)</td><td>bpchar</td><td>定长字符串,实际数据不足定义长度时,以空格补齐</td></tr> - <tr><td>TEXT</td><td>text</td><td>没有特别的上限限制(仅受行的最大长度限制)</td></tr> - <tr><td>BYTEA</td><td>bytea</td><td>变长字节序列(使用NULL也是允许的)</td></tr> - <tr><td>"char"</td><td>char</td><td>一个字符</td></tr> - </tbody> - </table> -</blockquote> - -<p> - 在系统表和在一些错误信息里你将看到内部名称。 -</p> -<p> - 上面所列的前四种类型是"varlena"(变长)类型(也就是说,开头的四个字节是长度,后面才是数据)。 - 于是实际占用的空间比声明的大小要多一些。 - 然而这些类型都可以被压缩存储,也可以用 TOAST 脱机存储,因此磁盘空间也可能比预想的要少。 -</p> -<p> - <small>VARCHAR(n)</small> 在存储限制了最大长度的变长字符串是最好的。 - <small>TEXT</small> 适用于存储最大可达 1G左右但未定义限制长度的字符串。 -</p> -<p> - <small>CHAR(n)</small> 最适合于存储长度相同的字符串。 <small>CHAR(n)</small>会根据所给定的字段长度以空格补足(不足的字段内容), - 而 <small>VARCHAR(n)</small> 只存储所给定的数据内容。 - <small>BYTEA</small> 用于存储二进制数据,尤其是包含 NULL 字节的值。这些类型具有相似的性能特性。 -</p> - - - -<h4><a name="4.11.1"></a>4.11.1)我怎样创建一个序列号/自动递增的字段?</h4> -<p> - PostgreSQL 支持 SERIAL 数据类型。它在字段上自动创建一个序列和索引。例如: -</p> -<pre> - CREATE TABLE person ( - id SERIAL, - name TEXT - ); -</pre> -<p> - 会自动转换为: -</p> -<pre> - CREATE SEQUENCE person_id_seq; - CREATE TABLE person ( - id INT4 NOT NULL DEFAULT nextval('person_id_seq'), - name TEXT - ); -</pre> -<p> - 参考 create_sequence 手册页获取关于序列的更多信息。 -</p> - - -<h4><a name="4.11.2"></a>4.11.2)我如何获得一个插入的序列号的值?</h4> -<p> - 一种方法是在插入之前先用函数 nextval() 从序列对象里检索出下一个 SERIAL 值,然后再显式插入。使用 - <a href="#4.11.1"> 4.11.1</a> 里的例表,可用伪码这样描述: -</p> -<pre> - new_id = execute("SELECT nextval('person_id_seq')"); - execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')"); -</pre> -<p> - 这样还能在其他查询中使用存放在 new_id 里的新值(例如,作为 person 表的外键)。 - 注意自动创建的 SEQUENCE 对象的名称将会是 <<i>table</i>>_<<i>serialcolumn</i>>_<i>seq</i>, - 这里 table 和 serialcolumn 分别是你的表的名称和你的 SERIAL 字段的名称。 -</p> -<p> - 类似的,在 SERIAL 对象缺省插入后你可以用函数 currval() 检索刚赋值的 SERIAL 值,例如: -</p> -<pre> - execute("INSERT INTO person (name) VALUES ('Blaise Pascal')"); - new_id = execute("SELECT currval('person_id_seq')"); -</pre> - -<h4><a name="4.11.3"></a>4.11.3)使用 <i>currval()</i> 会导致和其他用户的冲突情况(race condition)吗?</h4> -<p> - 不会。<i>currval()</i> 返回的是你本次会话进程所赋的值而不是所有用户的当前值。<br/> -</p> - -<h4><a name="4.11.4"></a>4.11.4)为什么不在事务异常中止后重用序列号呢?为什么在序列号字段的取值中存在间断呢?</h4> -<p> - 为了提高并发性,序列号在需要的时候赋予正在运行的事务,并且在事务结束之前不进行锁定, - 这就会导致异常中止的事务后,序列号会出现间隔。 -</p> - -<h4><br/><a name="4.12"></a>4.12)什么是 <small>OID</small> ?什么是 <small>CTID</small> ?</h4> -<p> - PostgreSQL 里创建的每一行记录都会获得一个唯一的<small>OID</small>,除非在创建表时使用<small>WITHOUT OIDS</small>选项。 - <small>OID</small>创建时会自动生成一个4字节的整数,所有 OID 在整个 PostgreSQL 中均是唯一的。 然而,它在超过40亿时将溢出, - <small>OID</small>此后会出现重复。PostgreSQL 在它的内部系统表里使用 OID 在表之间建立联系。 -</p> -<p> - 在用户的数据表中,最好是使用<small>SERIAl</small>来代替<small>OID</small> - 因为<small>SERIAL</small>只是保证在单个表中数据是唯一的,这样它溢出的可能性就非常小了, - <small>SERIAL8</small>可用来保存8字节的序列号字段。 -</p> - -<p> - <small>CTID</small> 用于标识带着数据块(地址)和(块内)偏移的特定的物理行。 - <small>CTID</small> 在记录被更改或重载后发生改变。索引入口使用它们指向物理行。 -</p> - - -<h4><a name="4.13"></a>4.13)为什么我收到错误信息“<i>ERROR: Memory exhausted in AllocSetAlloc()</i>”?</h4> -<p> - 这很可能是系统的虚拟内存用光了,或者内核对某些资源有较低的限制值。在启动 postmaster 之前试试下面的命令: -</p> -<pre> - ulimit -d 262144 - limit datasize 256m -</pre> -<p> - 取决于你用的 shell,上面命令只有一条能成功,但是它将把你的进程数据段限制设得比较高, - 因而也许能让查询完成。这条命令应用于当前进程,以及所有在这条命令运行后创建的子进程。 - 如果你是在运行SQL客户端时因为后台返回了太多的数据而出现问题,请在运行客户端之前执行上述命令。 -</p> - -<h4><a name="4.14"></a>4.14)我如何才能知道所运行的 PostgreSQL 的版本?</h4> -<p> - 从 psql 里,输入 <code>SELECT version();</code>指令。 -</p> - -<h4><a name="4.15"></a>4.15)我如何创建一个缺省值是当前时间的字段?</h4> -<p> - 使用 CURRENT_TIMESTAMP: -</p> -<pre> - CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -</pre> - - -<h4><a name="4.16"></a>4.16)我怎样进行 outer join (外连接)?</h4> -<p> - PostgreSQL 采用标准的 SQL 语法支持外连接。这里是两个例子: -</p> -<pre> - SELECT * - FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col); -</pre> -<p>或是</p> -<pre> - SELECT * - FROM t1 LEFT OUTER JOIN t2 USING (col); -</pre> -<p> - 这两个等价的查询在 t1.col 和 t2.col 上做连接,并且返回 t1 中所有未连接的行(那些在 t2 中没有匹配的行)。 - 右[外]连接(RIGHT OUTER JOIN)将返回 t2 中未连接的行。 - 完全外连接(FULL OUTER JOIN)将返回 t1 和 t2 中未连接的行。 - 关键字 OUTER 在左[外]连接、右[外]连接和完全[外]连接中是可选的,普通连接被称为内连接(INNER JOIN)。 -</p> - - -<h4><a name="4.17"></a>4.17)如何使用涉及多个数据库的查询?</h4> -<p> - 没有办法查询当前数据库之外的数据库。 - 因为 PostgreSQL 要加载与数据库相关的系统目录(系统表),因此跨数据库的查询如何执行是不定的。 -</p> -<p> - 附加增值模块contrib/dblink允许采用函数调用实现跨库查询。当然用户也可以同时连接到不同的数据库执行查询然后在客户端合并结果。 -</p> - -<h4><a name="4.18"></a>4.18)如何让函数返回多行或多列?</h4> -<p> - 在函数中返回数据记录集的功能是很容易使用的,详情参见: - <a href="http://techdocs.postgresql.org/guides/SetReturningFunctions">http://techdocs.postgresql.org/guides/SetReturningFunctions</a> -</p> - -<h4><a name="4.19"></a>4.19)为什么我在使用PL/PgSQL函数存取临时表时会收到错误信息“relation with OID ##### does not exist”?</h4> -<p> - PL/PgSQL会缓存函数的内容,由此带来的一个不好的副作用是若一个 PL/PgSQL - 函数访问了一个临时表,然后该表被删除并重建了,则再次调用该函数将失败, - 因为缓存的函数内容仍然指向旧的临时表。解决的方法是在 PL/PgSQL 中用<small>EXECUTE</small> - 对临时表进行访问。这样会保证查询在执行前总会被重新解析。 -</p> - -<h4><a name="4.27"></a>4.27)目前有哪些数据复制方案可用?</h4> -<p> - “复制”只是一个术语,有好几种复制技术可使用,每种都有优点和缺点: -</p> -<p> - 主/从复制方式是允许一个主服务器接受读/写的申请,而多个从服务器只能接受读/<small>SELECT</small>查询的申请, - 目前最流行且是免费的主/从 PostgreSQL复制方案是 - <a href="http://gborg.postgresql.org/project/slony1/projdisplay.php">Slony-I </a>。 -</p> -<p> - 多个主服务器的复制方式允许将读/写的申请发送给多台的计算机,这种方式由于需要在多台服务器之间同步数据变动 - 可能会带来较严重的性能损失,<a href="http://pgfoundry.org/projects/pgcluster/">Pgcluster</a>是目前这种方案 - 中最好的,而且还可以免费下载。 -</p> -<p> - 也有一些商业需付费和基于硬件的数据复制方案,支持上述各种复制模型。 -</p> - - - -</body> -</html> - +<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html>
+<head>
+
+ <title>PostgreSQL 甯歌闂锛團AQ锛</title>
+</head>
+
+
+
+<body>
+
+<h1> PostgreSQL 甯歌闂锛團AQ锛 </h1>
+
+
+<p> 鏈杩戞洿鏂帮細2007 骞 1 鏈 5 鏃 鏄熸湡浜 15:40:20 EST <br/>
+ 涓枃鐗堟渶杩戞洿鏂帮細2007 骞 1 鏈 29 鏃 鏄熸湡涓 22:48:04 CST
+</p>
+<p> 鐩墠缁存姢浜哄憳锛欱ruce Momjian (<a href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</a>)<br/>
+ 涓枃鐗堢淮鎶や汉鍛橈細Daojing.Zhou锛<a href="mailto:doudou586@gmail.com">doudou586@gmail.com</a>锛
+</p>
+
+<p>
+ 鏈枃妗g殑鏈鏂扮増鏈彲浠ュ湪
+ <a href="http://www.postgresql.org/files/documentation/faqs/FAQ.html">http://www.postgresql.org/files/documentation/faqs/FAQ.html</a>鏌ョ湅銆
+</p>
+<p>
+ 涓庢搷浣滅郴缁熷钩鍙扮浉鍏崇殑闂鍙湪<a href="http://www.postgresql.org/docs/faq/">http://www.postgresql.org/docs/faq/</a>閲屾壘鍒扮瓟妗堛<br/>
+</p>
+<hr/>
+
+<h2><a name="甯歌闂"></a> 甯歌闂 </h2>
+
+
+<p>
+<a href="#1.1">1.1</a>)PostgreSQL 鏄粈涔堬紵璇ユ庝箞鍙戦煶锛<br/>
+<a href="#1.2">1.2</a>)璋佹帶鍒跺拰绠$悊PostgreSQL 锛<br/>
+<a href="#1.3">1.3</a>)PostgreSQL鐨勭増鏉冩槸浠涔堬紵<br/>
+<a href="#1.4">1.4</a>)PostgreSQL鍙互杩愯鍦ㄥ摢浜涙搷浣滅郴缁熷钩鍙颁笂锛<br/>
+<a href="#1.5">1.5</a>)鎴戜粠鍝噷鑳藉緱鍒癙ostgreSQL锛<br/>
+
+<a href="#1.6">1.6</a>)鏈鏂扮増鐨凱ostgreSQL 鏄粈涔堬紵<br/>
+<a href="#1.7">1.7</a>)鎴戜粠鍝噷鑳藉緱鍒板PostgreSQL 鐨勬敮鎸侊紵<br/>
+<a href="#1.8">1.8</a>)鎴戝浣曟彁浜や竴涓狟UG鎶ュ憡锛<br/>
+<a href="#1.9">1.9</a>)鎴戝浣曚簡瑙e凡鐭ョ殑 BUG 鎴栨殏缂虹殑鍔熻兘锛<br/>
+<a href="#1.10">1.10</a>)鑳藉鑾峰彇鐨勬渶鏂版枃妗f湁鍝簺锛<br/>
+<a href="#1.11">1.11</a>)鎴戝簲璇ユ庢牱瀛︿範 SQL 锛<br/>
+
+<a href="#1.12">1.12</a>)濡備綍鎻愪氦琛ヤ竵鎴栨槸鍔犲叆寮鍙戦槦浼嶏紵<br/>
+<a href="#1.13">1.13</a>)PostgreSQL 鍜屽叾浠栨暟鎹簱绯荤粺姣旇捣鏉ュ浣曪紵<br/>
+</p>
+
+<h2><a name="鐢ㄦ埛瀹㈡埛绔棶棰"></a> 鐢ㄦ埛瀹㈡埛绔棶棰 </h2>
+<p>
+<a href="#2.1">2.1</a>)鎴戜滑鍙互鐢ㄤ粈涔堣瑷鍜孭ostgreSQL 鎵撲氦閬擄紵<br/>
+<a href="#2.2">2.2</a>)鏈変粈涔堝伐鍏峰彲浠ユ妸PostgreSQL 鐢ㄤ簬 Web 椤甸潰锛<br/>
+
+<a href="#2.3">2.3</a>)PostgreSQL 鎷ユ湁鍥惧舰鐢ㄦ埛鐣岄潰鍚楋紵<br/>
+</p>
+
+<h2><a name="绯荤粺绠$悊闂"></a> 绯荤粺绠$悊闂 </h2>
+<p>
+<a href="#3.1">3.1</a>)鎴戞庢牱鎵嶈兘鎶奝ostgreSQL 瑁呭湪 /usr/local/pgsql 浠ュ鐨勫湴鏂癸紵<br/>
+<a href="#3.2">3.2</a>)鎴戝浣曟帶鍒舵潵鑷叾浠栫數鑴戠殑杩炴帴锛<br/>
+<a href="#3.3">3.3</a>)鎴戞庢牱璋冩暣鏁版嵁搴撴湇鍔″櫒浠ヨ幏寰楁洿濂界殑鎬ц兘锛<br/>
+
+<a href="#3.4">3.4</a>)PostgreSQL 閲屽彲浠ヨ幏寰椾粈涔堟牱鐨勮皟璇曠壒鎬э紵<br/>
+<a href="#3.5">3.5</a>)涓轰粈涔堝湪璇曞浘杩炴帴鐧诲綍鏃舵敹鍒扳淪orry, too many clients鈥 娑堟伅锛<br/>
+<a href="#3.6">3.6</a>)PostgreSQL鐨勫崌绾ц繃绋嬫湁鍝簺鍐呭锛<br/>
+<a href="#3.7">3.7</a>)(浣跨敤PostgreSQL)鎴戦渶瑕佷娇鐢ㄤ粈涔堣绠楁満纭欢 锛<br/>
+</p>
+
+<h2><a name="鎿嶄綔闂"></a> 鎿嶄綔闂 </h2>
+
+<p>
+<a href="#4.1">4.1</a>) 濡備綍鍙夋嫨涓涓煡璇㈢粨鏋滅殑澶村嚑琛岋紵鎴栨槸闅忔満鐨勪竴琛岋紵<br/>
+<a href="#4.2">4.2</a>) 濡備綍鏌ョ湅琛ㄣ佺储寮曘佹暟鎹簱浠ュ強鐢ㄦ埛鐨勫畾涔夛紵濡備綍鏌ョ湅<i>psql</i>閲岀敤鍒扮殑鏌ヨ鎸囦护骞舵樉绀哄畠浠紵<br/>
+<a href="#4.3">4.3</a>) 濡備綍鏇存敼涓涓瓧娈电殑鏁版嵁绫诲瀷锛<br/>
+<a href="#4.4">4.4</a>) 鍗曟潯璁板綍锛屽崟涓〃锛屼竴涓暟鎹簱鐨勬渶澶ч檺鍒舵槸澶氬皯锛<br/>
+<a href="#4.5">4.5</a>) 瀛樺偍涓涓吀鍨嬬殑鏂囨湰鏂囦欢閲岀殑鏁版嵁闇瑕佸灏戠鐩樼┖闂达紵<br/>
+
+<a href="#4.6">4.6</a>) 涓轰粈涔堟垜鐨勬煡璇㈠緢鎱紵涓轰粈涔堣繖浜涙煡璇㈡病鏈夊埄鐢ㄧ储寮曪紵<br/>
+<a href="#4.7">4.7</a>) 鎴戝浣曟墠鑳界湅鍒版煡璇紭鍖栧櫒鏄庢牱璇勪及澶勭悊鎴戠殑鏌ヨ鐨勶紵<br/>
+<a href="#4.8">4.8</a>) 鎴戞庢牱鍋氭鍒欒〃杈惧紡鎼滅储鍜屽ぇ灏忓啓鏃犲叧鐨勬鍒欒〃杈惧紡鏌ユ壘锛熸庢牱鍒╃敤绱㈠紩杩涜澶у皬鍐欐棤鍏虫煡鎵撅紵<br/>
+<a href="#4.9">4.9</a>) 鍦ㄤ竴涓煡璇㈤噷锛屾垜鎬庢牱妫娴嬩竴涓瓧娈垫槸鍚︿负 NULL锛熸垜濡備綍鎵嶈兘鍑嗙‘鎺掑簭鑰屼笉璁烘煇瀛楁鏄惁鍚玁ULL鍊硷紵<br/>
+<a href="#4.10">4.10</a>) 鍚勭瀛楃绫诲瀷涔嬮棿鏈変粈涔堜笉鍚岋紵<br/>
+<a href="#4.11.1">4.11.1</a>) 鎴戞庢牱鍒涘缓涓涓簭鍒楀彿鍨嬫垨鏄嚜鍔ㄩ掑鐨勫瓧娈碉紵<br/>
+
+<a href="#4.11.2">4.11.2</a>) 鎴戝浣曡幏寰椾竴涓彃鍏ョ殑搴忓垪鍙风殑鍊硷紵<br/>
+<a href="#4.11.3">4.11.3</a>) 鍚屾椂浣跨敤 currval() 浼氬鑷村拰鍏朵粬鐢ㄦ埛鐨勫啿绐佹儏鍐靛悧锛<br/>
+<a href="#4.11.4">4.11.4</a>) 涓轰粈涔堜笉鍦ㄤ簨鍔″紓甯镐腑姝㈠悗閲嶇敤搴忓垪鍙峰憿锛熶负浠涔堝湪搴忓垪鍙峰瓧娈电殑鍙栧间腑瀛樺湪闂存柇鍛紵<br/>
+<a href="#4.12">4.12</a>) 浠涔堟槸 OID锛熶粈涔堟槸 CTID 锛<br/>
+<a href="#4.13">4.13</a>) 涓轰粈涔堟垜鏀跺埌閿欒淇℃伅鈥<i>ERROR: Memory exhausted in AllocSetAlloc()</i>鈥濓紵<br/>
+
+<a href="#4.14">4.14</a>) 鎴戝浣曟墠鑳界煡閬撴墍杩愯鐨 PostgreSQL 鐨勭増鏈紵<br/>
+<a href="#4.15">4.15</a>) 鎴戝浣曞垱寤轰竴涓己鐪佸兼槸褰撳墠鏃堕棿鐨勫瓧娈碉紵<br/>
+<a href="#4.16">4.16</a>) 濡備綍鎵ц澶栬繛鎺ワ紙outer join锛夋煡璇紵<br/>
+<a href="#4.17">4.17</a>) 濡備綍鎵ц娑夊強澶氫釜鏁版嵁搴撶殑鏌ヨ锛<br/>
+<a href="#4.18">4.18</a>) 濡備綍璁╁嚱鏁拌繑鍥炲琛屾垨澶氬垪鏁版嵁锛<br/>
+<a href="#4.19">4.19</a>) 涓轰粈涔堟垜鍦ㄤ娇鐢≒L/PgSQL鍑芥暟瀛樺彇涓存椂琛ㄦ椂浼氭敹鍒伴敊璇俊鎭渞elation with OID ##### does not exist鈥濓紵<br/>
+
+<a href="#4.20">4.20</a>) 鐩墠鏈夊摢浜涙暟鎹鍒舵柟妗堝彲鐢紵<br/>
+<a href="#4.21">4.21</a>) 涓轰綍鏌ヨ缁撴灉鏄剧ず鐨勮〃鍚嶆垨鍒楀悕涓庢垜鐨勬煡璇㈣鍙ヤ腑鐨勪笉鍚岋紵涓轰綍澶у啓鐘舵佷笉鑳戒繚鐣欙紵<br/>
+</p>
+
+<hr/>
+
+<h2><a name="甯歌闂"></a> 甯歌闂 </h2>
+
+<h3> <a name="1.1"></a>1.1)PostgreSQL 鏄粈涔堬紵璇ユ庝箞鍙戦煶锛 </h3>
+
+
+<p>PostgreSQL 璇讳綔 <i>Post-Gres-Q-L</i>锛屾湁鏃跺欎篃绠绉颁负<i>Postgres</i> 銆傛兂鍚竴涓嬪叾鍙戦煶鐨勪汉鍛樺彲浠庤繖閲屼笅杞藉0闊虫枃浠讹細
+ <a href="http://www.postgresql.org/files/postgresql.mp3">MP3 鏍煎紡</a> 銆
+</p>
+
+<p>PostgreSQL 鏄潰鍚戠洰鏍囩殑鍏崇郴鏁版嵁搴撶郴缁燂紝瀹冨叿鏈変紶缁熷晢涓氭暟鎹簱绯荤粺鐨勬墍鏈夊姛鑳斤紝鍚屾椂鍙堝惈鏈夊皢鍦ㄤ笅涓浠 DBMS 绯荤粺鐨勪娇鐢ㄧ殑澧炲己鐗规с侾ostgreSQL 鏄嚜鐢卞厤璐圭殑锛屽苟涓旀墍鏈夋簮浠g爜閮藉彲浠ヨ幏寰椼
+</p>
+
+<p>PostgreSQL 鐨勫紑鍙戦槦浼嶄富瑕佷负蹇楁効鑰咃紝浠栦滑閬嶅竷涓栫晫鍚勫湴骞堕氳繃浜掕仈缃戣繘琛岃仈绯伙紝杩欐槸涓涓ぞ鍖哄紑鍙戦」鐩紝瀹冧笉琚换浣曞叕鍙告帶鍒躲
+ 濡傛兂鍔犲叆寮鍙戦槦浼嶏紝璇峰弬瑙佸紑鍙戜汉鍛樺父瑙侀棶棰橈紙FAQ锛
+ <a href="http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html">http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html</a>
+
+</p>
+
+<h3> <a name="1.2"></a>1.2) 璋佹帶鍒禤ostgreSQL 锛 </h3>
+<p>
+ 濡傛灉浣犲湪瀵绘壘PostgreSQL鐨勬帉闂ㄤ汉锛屾垨鏄粈涔堜腑澶鍛樹細锛屾垨鏄粈涔堟墍灞炲叕鍙革紝浣犲彧鑳芥斁寮冧簡---鍥犱负涓涓篃涓嶅瓨鍦紝浣嗘垜浠殑纭湁涓涓
+ 鏍稿績濮斿憳浼氬拰CVS绠$悊缁勶紝浣嗚繖浜涘伐浣滅粍鐨勮绔嬩富瑕佹槸涓轰簡杩涜绠$悊宸ヤ綔鑰屼笉鏄PostgreSQL杩涜鐙崰寮忔帶鍒讹紝PostgreSQL椤圭洰鏄敱浠讳綍浜哄潎
+ 鍙弬鍔犵殑寮鍙戜汉鍛樼ぞ鍖哄拰鎵鏈夌敤鎴锋帶鍒剁殑锛屼綘鎵闇瑕佸仛鐨勫氨鏄闃呴偖浠跺垪琛紝鍙備笌璁ㄨ鍗冲彲锛堣鍙備笌PostgreSQL鐨勫紑鍙戣瑙
+ <a href="http://www.postgresql.org/docs/faqs.FAQ_DEV.html"> 寮鍙戜汉鍛樺父闂 (Developer's FAQ) </a>鑾峰彇淇℃伅锛夈
+</p>
+
+
+<h3> <a name="1.3"></a>1.3)PostgreSQL鐨勭増鏉冩槸浠涔? </h3>
+
+
+<p>PostgreSQL鐨勫彂甯冮伒浠庣粡鍏哥殑BSD鐗堟潈銆傚畠鍏佽鐢ㄦ埛涓嶉檺鐩殑鍦颁娇鐢≒ostgreSQL锛岀敋鑷充綘鍙互閿鍞甈ostgreSQL鑰屼笉鍚簮浠g爜涔熷彲浠ワ紝鍞竴鐨勯檺鍒跺氨鏄綘涓嶈兘鍥犺蒋浠惰嚜韬棶棰樿屽悜鎴戜滑杩借瘔娉曞緥璐d换锛屽彟澶栧氨鏄姹傛墍鏈夌殑杞欢鎷疯礉涓』鍖呮嫭浠ヤ笅鐗堟潈澹版槑銆備笅闈㈠氨鏄垜浠墍浣跨敤鐨凚SD鐗堟潈澹版槑鍐呭锛</p>
+
+<p>PostgreSQL鏁版嵁搴撶鐞嗙郴缁</p>
+
+<p> 閮ㄥ垎鐗堟潈锛坈锛1996-2005锛孭ostgreSQL 鍏ㄧ悆寮鍙戝皬缁勶紝閮ㄥ垎鐗堟潈锛坈锛1994-1996 鍔犲窞澶у钁d簨</p>
+
+<p> 锛圥ortions copyright (c) 1996-2005,PostgreSQL Global Development Group Portions Copyright (c) 1994-6 Regents of the University of California锛</p>
+
+<p>
+ 鍏佽涓轰换浣曠洰鐨勪娇鐢紝鎷疯礉锛屼慨鏀瑰拰鍒嗗彂杩欎釜杞欢鍜屽畠鐨勬枃妗h屼笉鏀跺彇浠讳綍璐圭敤锛
+ 骞朵笖鏃犻』绛剧讲鍥犳鑰屼骇鐢熺殑璇佹槑锛屽墠鎻愭槸涓婇潰鐨勭増鏉冨0鏄庡拰鏈浠ュ強涓嬮潰涓ゆ鏂囧瓧鍑虹幇鍦ㄦ墍鏈夋嫹璐濅腑銆
+
+</p>
+
+<p>
+ 锛圥ermission to use, copy, modify, and distribute this software and its
+ documentation for any purpose, without fee, and without a written agreement is
+ hereby granted, provided that the above copyright notice and this paragraph and
+ the following two paragraphs appear in all copies.锛
+</p>
+
+<p>
+ 鍦ㄤ换浣曟儏鍐典笅锛屽姞宸炲ぇ瀛﹂兘涓嶆壙鎷呭洜浣跨敤姝よ蒋浠跺強鍏舵枃妗h屽鑷寸殑瀵逛换浣曞綋浜嬩汉鐨勭洿鎺ョ殑锛
+ 闂存帴鐨勶紝鐗规畩鐨勶紝闄勫姞鐨勬垨鑰呯浉浼磋岀敓鐨勬崯鍧忥紝鍖呮嫭鍒╃泭鎹熷け鐨勮矗浠伙紝鍗充娇鍔犲窞澶у宸茬粡寤鸿浜嗚繖浜涙崯澶辩殑鍙兘鎬ф椂涔熸槸濡傛銆
+</p>
+
+<p>
+ 锛圛N NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
+ DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST
+ PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
+ THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.锛
+</p>
+
+
+<p>
+ 鍔犲窞澶у鏄庣‘鏀惧純浠讳綍淇濊瘉锛屽寘鎷絾涓嶅眬闄愪簬鏌愪竴鐗瑰畾鐢ㄩ旂殑鍟嗕笟鍜屽埄鐩婄殑闅愬惈淇濊瘉銆
+ 杩欓噷鎻愪緵鐨勮繖浠借蒋浠舵槸鍩轰簬鈥滃綋浣滄槸鈥濈殑鍩虹鐨勶紝鍥犺屽姞宸炲ぇ瀛︽病鏈夎矗浠绘彁渚涚淮鎶わ紝鏀寔锛屾洿鏂帮紝澧炲己鎴栬呬慨鏀圭殑鏈嶅姟銆
+</p>
+
+<p>
+ 锛圱HE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT
+ NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND
+ THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE,
+ SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.锛<br/>
+
+</p>
+
+<h3> <a name="1.4"></a>1.4)PostgreSQL 鍙互杩愯鍦ㄥ摢浜涙搷浣滅郴缁熷钩鍙颁笂锛 </h3>
+
+<p> 涓鑸鏉ワ紝浠讳綍鐜板湪瀵 UNIX 鍏煎鐨勬搷浣滅郴缁熶箣涓婇兘鑳借繍琛孭ostgreSQL 銆傚湪瀹夎鎸囧崡閲屽垪鍑轰簡鍙戝竷鏃剁粡杩囨槑纭祴璇曠殑骞冲彴銆</p>
+
+
+<p>PostgreSQl涔熷彲浠ョ洿鎺ヨ繍琛屽湪鍩轰簬寰蒋Windows-NT鐨勬搷浣滅郴缁燂紝濡俉in2000 SP4锛學inXP 鍜 Win2003锛屽凡鍒朵綔瀹屾垚鐨勫畨瑁呭寘鍙粠
+ <a href="http://pgfoundry.org/projects/pginstaller">http://pgfoundry.org/projects/pginstaller</a>涓嬭浇锛屽熀浜嶮SDOS鐨刉indows鎿嶄綔绯荤粺
+ 锛圵in95锛學in98锛學inMe锛夐渶瑕侀氳繃Cygwin妯℃嫙鐜杩愯PostgreSQL銆
+</p>
+
+<p>
+ 鍚屾椂涔熸湁涓涓负Novell Netware 6寮鍙戠殑鐗堟湰鍙粠 <a href="http://forge.novell.com" target="_top">http://forge.novell.com</a>鑾峰彇锛屼负OS/2(eComStation)寮鍙戠殑鐗堟湰鍙粠
+ <a href="http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F" target="_top">http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F</a> 涓嬭浇銆
+
+</p>
+
+<h3> <a name="1.5"></a>1.5) 鎴戜粠鍝噷鑳藉緱鍒癙ostgreSQL锛 </h3>
+
+<p>
+ 閫氳繃娴忚鍣ㄥ彲浠<a href="http://www.postgresql.org/ftp/">http://www.postgresql.org/ftp/</a>涓嬭浇锛屼篃鍙氳繃FTP锛屼粠
+ <a href="ftp://ftp.PostgreSQL.org/pub/">ftp://ftp.PostgreSQL.org/pub/</a>绔欑偣涓嬭浇銆
+</p>
+
+<h3> <a name="1.6"></a>1.6) 鏈鏂扮増鐨凱ostgreSQL鏄粈涔堬紵 </h3>
+
+
+<p>PostgreSQL 鏈鏂扮殑鐗堟湰鏄増鏈 8.2.1 銆</p>
+
+<p>鎴戜滑璁″垝姣忓勾鍙戝竷涓涓富瑕佸崌绾х増鏈紝姣忓嚑涓湀鍙戝竷涓涓皬鐗堟湰銆</p>
+
+
+<h3> <a name="1.7"></a>1.7) 鎴戜粠鍝噷鑳藉緱鍒板PostgreSQL鐨勬敮鎸侊紵 </h3>
+
+<p>PostgreSQL绀惧尯閫氳繃閭欢鍒楄〃涓哄叾澶у鏁扮敤鎴锋彁渚涘府鍔╋紝璁㈤槄閭欢鍒楄〃鐨勪富绔欑偣鏄 <a href="http://www.postgresql.org/community/lists/" target="_top">http://www.postgresql.org/community/lists/</a>锛屼竴鑸儏鍐典笅锛屽厛鍔犲叆<i>General</i> 鎴 <i>Bug</i>閭欢鍒楄〃鏄竴涓緝濂界殑寮濮嬨
+</p>
+
+<p>
+ 涓昏鐨処RC棰戦亾鏄湪FreeNode(<i>irc.freenode.net</i>)鐨<i>#postgresql</i>锛屼负浜嗚繛涓婃棰戦亾锛屽彲浠ヤ娇鐢║NIX绋嬪簭irc锛屽叾鎸囦护鏍煎紡锛
+ irc -c '#postgresql' "$USER" irc.freenode.net 锛屾垨鑰呬娇鐢ㄥ叾浠朓RC瀹㈡埛绔▼搴忋傚湪姝ょ綉缁滀腑杩樺瓨鍦ㄤ竴涓狿ostgreSQL鐨勮タ鐝墮棰戦亾(<i>#postgersql-es</i>)鍜屾硶璇閬
+ (<i>#postgresql-fr</i>)銆傚悓鏍峰湴锛屽湪EFNET涓婁篃鏈変竴涓狿ostgreSQL鐨勪氦娴侀閬撱
+</p>
+
+<p>
+ 鍙彁渚涘晢涓氭敮鎸佺殑鍏徃鍒楄〃鍙湪<a href="http://techdocs.postgresql.org/companies.php" target="_top">http://techdocs.postgresql.org/companies.php</a>娴忚銆
+
+</p>
+
+
+
+<h3> <a name="1.8"></a>1.8) 鎴戝浣曟彁浜や竴涓狟UG鎶ュ憡锛 </h3>
+
+<p>
+ 鍙闂 <a href="http://www.postgresql.org/support/submitbug">http://www.postgresql.org/support/submitbug</a>锛屽~鍐橞ug涓婃姤琛ㄦ牸鍗冲彲锛屽悓鏍蜂篃鍙闂甪tp绔欑偣<a href="ftp://ftp.PostgreSQL.org/pub/">ftp://ftp.PostgreSQL.org/pub/</a> 妫鏌ユ湁鏃犳洿鏂扮殑PostgreSQL鐗堟湰鎴栬ˉ涓併
+</p>
+
+
+<p>
+閫氳繃浣跨敤Bug鎻愪氦琛ㄦ牸鎴栨槸鍙戝線PostgreSQL閭欢鍒楄〃鐨凚ug閫氬父浼氭湁浠ヤ笅涔嬩竴鍥炲锛
+</p>
+
+<ul>
+<li>鎵鎻愪氦鍐呭涓嶆槸涓涓狟ug鍙婂叾涓嶆槸Bug鐨勫師鍥犮</li>
+<li>鎵鎻愪氦鍐呭鏄竴涓凡鐭ョ殑Bug骞朵笖宸茬粡鍔犲叆TODO寰呭鐞嗕换鍔″垪琛ㄣ</li>
+<li>鎵鎻愪氦鐨凚ug宸插湪褰撳墠鐗堟湰涓淇銆</li>
+<li>鎵鎻愪氦鐨凚ug宸蹭慨姝d絾灏氭湭灏嗚ˉ涓佸姞鍏ョ幇鍦ㄧ殑鍙戝竷杞欢鍖呫</li>
+<li>璇锋眰鎻愪氦鑰呮彁渚涙洿璇︾粏鐨勪俊鎭細
+ <ul>
+ <li>鎿嶄綔绯荤粺</li>
+
+ <li>PostgreSQL鐗堟湰</li>
+ <li>鍙噸鐜癇ug鐨勬祴璇曟渚</li>
+ <li>璋冭瘯淇℃伅</li>
+ <li>璋冭瘯璺熻釜杈撳嚭</li>
+ </ul>
+</li>
+<li>鎵鎻愪氦鍐呭鏄竴涓柊Bug锛屽皢鎵ц浠ヤ笅宸ヤ綔锛
+ <ul>
+
+ <li>鍒涘缓涓涓柊琛ヤ竵骞跺皢鍏跺姞鍏ヤ笅涓涓富瑕佺増鏈垨鏄皬鐨勬敼杩涚増鏈腑銆</li>
+ <li>姝ug鏆傛椂涓嶈兘淇锛屽皢琚姞鑷砊ODO寰呭鐞嗕换鍔″垪琛ㄣ</li>
+ </ul>
+</li>
+</ul>
+
+
+<h3> <a name="1.9"></a>1.9) 鎴戝浣曚簡瑙e凡鐭ョ殑 BUG 鎴栨殏缂虹殑鍔熻兘锛 </h3>
+<p>PostgreSQL 鏀寔涓涓墿灞曠殑 SQL:2003 鐨勫瓙闆嗐傚弬闃呮垜浠殑<a href="http://www.postgresql.org/docs/faqs.TODO.html">TODO</a> 鍒楄〃锛屼簡瑙e凡鐭ug鍒楄〃銆佹殏缂虹殑鍔熻兘鍜屽皢鏉ョ殑寮鍙戣鍒掋
+
+</p>
+
+<p>瑕佹眰澧炲姞鏂板姛鑳界殑鐢宠閫氬父浼氭敹鍒颁互涓嬩箣涓鐨勫洖澶嶏細</p>
+
+<ul>
+<li>璇ュ姛鑳藉凡鍔犲叆TODO寰呭鐞嗕换鍔″垪琛ㄣ</li>
+<li>璇ュ姛鑳戒笉鏄繀椤荤殑锛屽洜涓猴細
+ <ul>
+ <li>瀹冩槸鐜版湁鐨勪笖绗﹀悎SQL鏍囧噯鐨勬煇鍔熻兘鐨勯噸澶嶃</li>
+ <li>璇ュ姛鑳芥т細澶уぇ澧炲姞浠g爜鐨勫鏉傜▼搴忥紝鑰屽甫鏉ョ殑濂藉鏄井涓嶈冻閬撶殑銆</li>
+ <li>璇ュ姛鑳芥槸涓嶅畨鍏ㄦ垨鏄笉鍙潬鐨勩</li>
+
+ </ul>
+</li>
+<li>璇ュ姛鑳藉皢琚姞鍏ODO寰呭鐞嗕换鍔″垪琛ㄣ</li>
+</ul>
+
+<p>
+PostgreSQL涓嶄娇鐢˙ug璺熻釜绯荤粺锛屽洜涓烘垜浠彂鐜板湪閭欢鍒楄〃涓洿鎺ュ洖澶嶄互鍙婁繚璇乀ODO浠诲姟鍒楄〃鎬绘槸澶勪簬鏈鏂扮姸鎬佺殑鏂瑰紡宸ヤ綔鏁堢巼浼氭洿楂樹竴浜涖備簨瀹炰笂锛孊ug涓嶄細鍦ㄦ垜浠殑杞欢涓瓨鍦ㄥ緢闀挎椂闂达紝
+瀵瑰奖鍝嶅緢澶氱敤鎴风殑Bug涔熸绘槸寰堝揩浼氳淇銆傚敮涓鑳芥壘鍒版墍鏈夋敼杩涖佹彁楂樺拰淇鐨勫湴鏂规槸CVS鐨勬棩蹇椾俊鎭紝鍗充娇鏄湪杞欢鏂扮増鏈殑鍙戝竷淇℃伅涓篃涓嶄細鍒楀嚭姣忎竴澶勭殑杞欢鏇存柊銆
+</p>
+
+
+
+<h3> <a name="1.10"></a>1.10) 鑳藉鑾峰彇鐨勬渶鏂版枃妗f湁鍝簺锛 </h3>
+
+
+<p>PostgreSQL鍖呭惈澶ч噺鐨勬枃妗o紝涓昏鏈夎缁嗙殑鍙傝冩墜鍐岋紝鎵嬪唽椤靛拰涓浜涚殑娴嬭瘯渚嬪瓙銆傚弬瑙 /doc 鐩綍锛堣瘧娉細搴斾负 $PGHOME/doc锛夈
+ 浣犺繕鍙互鍦ㄧ嚎娴忚PostgreSQL鐨勬墜鍐岋紝鍏剁綉鍧鏄細<a href="http://www.PostgreSQL.org/docs">http://www.PostgreSQL.org/docs</a>銆
+</p>
+
+<p>
+ 鏈変袱鏈叧浜嶱ostgreSQL鐨勪功鍦ㄧ嚎鎻愪緵锛屽湪
+ <a href="http://www.PostgreSQL.org/docs/awbook.html">http://www.PostgreSQL.org/docs/awbook.html</a>
+ 鍜 <a href="http://www.commandprompt.com/ppbook/">http://www.commandprompt.com/ppbook/</a> 銆
+ 涔熸湁澶ч噺鐨凱ostgreSQL涔︾睄鍙緵璐拱锛屽叾涓渶涓烘祦琛岀殑涓鏈槸鐢盞orry Douglas缂栧啓鐨勩傚湪
+ <a href="http://techdocs.PostgreSQL.org/techdocs/bookreviews.php">http://techdocs.PostgreSQL.org/techdocs/bookreviews.php</a>涓
+ 涓婃湁澶ч噺鏈夊叧PostgreSQL涔︾睄鐨勭畝浠嬨
+ 鍦 <a href="http://techdocs.PostgreSQL.org/">http://techdocs.PostgreSQL.org/</a>涓婃敹闆嗕簡鏈夊叧PostgreSQL鐨勫ぇ閲忔妧鏈枃绔犮
+
+</p>
+
+<p>
+ 瀹㈡埛绔殑鍛戒护琛岀▼搴<i>psql</i>鏈変竴浜涗互 \d 寮澶寸殑鍛戒护锛屽彲鏄剧ず鍏充簬绫诲瀷锛屾搷浣滅锛屽嚱鏁帮紝鑱氬悎绛変俊鎭紝浣跨敤 \? 鍙互鏄剧ず鎵鏈夊彲鐢ㄧ殑鍛戒护銆
+</p>
+
+<p>
+ 鎴戜滑鐨 web 绔欑偣鍖呭惈鏇村鐨勬枃妗c
+</p>
+
+
+
+<h3> <a name="1.11"></a>1.11) 鎴戝簲璇ユ庢牱瀛︿範 SQL 锛 </h3>
+
+<p>
+ 棣栧厛鑰冭檻涓婅堪鎻愬埌鐨勪笌PostgreSQL鐩稿叧鐨勪功绫嶏紝鍙﹀涓鏈槸<i>Teach Yourself SQL in 21 Days, Second Edition</i>锛屽叾璇︾粏浠嬬粛鐨勭綉鍧鏄
+ <a href="http://members.tripod.com/er4ebus/sql/index.htm">http://members.tripod.com/er4ebus/sql/index.htm</a>锛
+ 鎴戜滑鐨勮澶氱敤鎴峰枩娆<i>The Practical SQL Handbook</i>锛 Bowman, Judith S. 缂栧啓锛孉ddison-Wesley鍏徃鍑虹増锛屽叾浠栫殑鍒欏枩娆
+ <i>The Complete Reference SQL</i>, Groff 缂栧啓锛孧cGraw-Hill鍏徃鍑虹増銆
+</p>
+
+<p>鍦ㄤ笅鍒楃綉鍧涓婁篃鏈夊緢濂界殑鏁欑▼锛屼粬浠槸</p>
+<ul>
+<li><a href="http://www.intermedia.net/support/sql/sqltut.shtm">http://www.intermedia.net/support/sql/sqltut.shtm</a></li>
+<li><a href="http://sqlcourse.com/">http://sqlcourse.com.</a></li>
+<li><a href="http://www.w3schools.com/sql/default.asp">http://www.w3schools.com/sql/default.asp</a></li>
+<li><a href="http://mysite.verizon.net/Graeme_Birchall/id1.html">http://mysite.verizon.net/Graeme_Birchall/id1.html</a></li>
+</ul>
+
+
+
+<h3> <a name="1.12"></a>1.12)濡備綍鎻愪氦琛ヤ竵鎴栨槸鍔犲叆寮鍙戦槦浼嶏紵 </h3>
+<p>
+ 璇﹁<a href="http://www.postgresql.org/docs/faqs.FAQ_DEV.html"> 寮鍙戜汉鍛樺父瑙侀棶棰 (Developer's FAQ) </a>銆
+
+</p>
+
+
+<h3> <a name="1.13"></a>1.13)PostgreSQL鍜屽叾浠栨暟鎹簱绯荤粺姣旇捣鏉ュ浣曪紵 </h3>
+
+<p>
+璇勪环杞欢鏈夊ソ鍑犵鏂规硶锛氬姛鑳斤紝鎬ц兘锛屽彲闈犳э紝鏀寔鍜屼环鏍笺
+</p>
+
+<dl>
+ <dt><b>鍔熻兘</b></dt>
+ <dd>PostgreSQL 鎷ユ湁澶у瀷鍟嗙敤鏁版嵁搴撴渶澶氱殑鍔熻兘锛屼緥濡傦細浜嬪姟锛屽瓙鏌ヨ锛岃Е鍙戝櫒锛岃鍥撅紝澶栭敭鍙傝冨畬鏁存у拰澶嶆潅鐨勯攣瀹氱瓑銆
+ 鎴戜滑杩樻湁涓浜涘畠浠病鏈夌殑鐗规э紝濡傜敤鎴峰畾涔夌被鍨嬶紝缁ф壙锛岃鍒欏拰澶氱増鏈苟琛屾帶鍒朵互鍑忓皯閿佺殑浜夌敤绛夈<br/>
+
+ </dd>
+
+ <dt><b>鎬ц兘</b></dt>
+ <dd>PostgreSQL鍜屽叾浠栧晢鐢ㄥ拰寮婧愮殑鏁版嵁搴撳叿鏈夌被浼肩殑鎬ц兘銆傚鏌愪簺澶勭悊瀹冩瘮杈冨揩锛屽鍏朵粬涓浜涘鐞嗗畠姣旇緝鎱€
+ 涓庡叾浠栨暟鎹簱鐩告瘮锛屾垜浠殑鎬ц兘浼樺姡閫氬父鍦 +/- 10%涔嬮棿銆<br/>
+ </dd>
+
+ <dt><b>鍙潬鎬</b></dt>
+ <dd>
+
+ 鎴戜滑閮界煡閬撴暟鎹簱蹇呴』鏄彲闈犵殑锛屽惁鍒欏畠灏变竴鐐圭敤閮芥病鏈夈傛垜浠姫鍔涘仛鍒板彂甯冪粡杩囪鐪熸祴璇曠殑锛岀己闄锋渶灏戠殑绋冲畾浠g爜銆傛瘡涓増鏈嚦灏戞湁涓涓湀鐨 beta
+ 娴嬭瘯鏃堕棿锛屽苟涓旀垜浠殑鍙戝竷鍘嗗彶鏄剧ず鎴戜滑鍙互鎻愪緵绋冲畾鐨勶紝鐗㈠浐鐨勶紝鍙敤浜庣敓浜т娇鐢ㄧ殑鐗堟湰銆傛垜浠浉淇″湪杩欐柟闈㈡垜浠笌鍏朵粬鐨勬暟鎹簱杞欢鏄浉褰撶殑銆<br/>
+ </dd>
+
+ <dt><b>鏀寔</b></dt>
+ <dd>
+ 鎴戜滑鐨勯偖浠跺垪琛ㄦ彁渚涗竴涓潪甯稿ぇ鐨勫紑鍙戜汉鍛樺拰鐢ㄦ埛鐨勭粍浠ュ府鍔╄В鍐虫墍纰板埌鐨勪换浣曢棶棰樸傛垜浠笉鑳戒繚璇佹绘槸鑳借В鍐抽棶棰橈紝鐩告瘮涔嬩笅锛屽晢鐢ㄦ暟鎹簱杞欢涔熷苟涓嶆槸鎬昏兘澶熸彁渚涜В鍐虫柟娉曘
+ 鐩存帴涓庡紑鍙戜汉鍛橈紝鐢ㄦ埛缇わ紝鎵嬪唽鍜屾簮绋嬪簭鎺ヨЕ浣縋ostgreSQL鐨勬敮鎸佹瘮鍏朵粬鏁版嵁搴撹繕瑕佸ソ銆傝繕鏈変竴浜涘晢涓氭х殑鍏ㄩ潰鎶鏈敮鎸侊紝鍙互缁欐彁渚涚粰閭d簺闇瑕佺殑浜恒傦紙鍙傞槄1.7 灏忚妭锛<br/>
+ </dd>
+
+
+ <dt><b>浠锋牸</b></dt>
+ <dd>
+ 鎴戜滑瀵逛换浣曠敤閫旈兘鍏嶈垂锛屽寘鎷晢鐢ㄥ拰闈炲晢鐢ㄧ洰鐨勩
+ 浣犲彲浠ヤ笉鍔犻檺鍒跺湴鍚戜綘鐨勪骇鍝侀噷鍔犲叆鎴戜滑鐨勪唬鐮侊紝闄や簡閭d簺鎴戜滑鍦ㄤ笂闈㈢殑鐗堟潈澹版槑閲屽0鏄庣殑 BSD鐗堟潈涔嬪鐨勫唴瀹广
+ </dd>
+
+</dl>
+
+
+
+<hr/>
+
+
+<h2><a name="鐢ㄦ埛瀹㈡埛绔棶棰"></a> 鐢ㄦ埛瀹㈡埛绔棶棰 </h2>
+
+
+<h3> <a name="2.1"></a>2.1) 鎴戜滑鍙互鐢ㄤ粈涔堣瑷鍜孭ostgreSQL鎵撲氦閬擄紵 </h3>
+
+<p>PostgreSQL(缂虹渷鎯呭喌)鍙畨瑁呮湁C鍜屽唴宓屽紡C鐨勬帴鍙o紝鍏朵粬鐨勬帴鍙i兘鏄嫭绔嬬殑椤圭洰锛岃兘澶熷垎鍒笅杞斤紝杩欎簺鎺ュ彛椤圭洰鐙珛鐨勫ソ澶
+ 鏄粬浠彲浠ユ湁鍚勮嚜鐨勫彂甯冭鍒掑拰鍚勮嚜鐙珛鐨勫紑鍙戠粍銆
+</p>
+<p>
+ 涓浜涚紪绋嬭瑷濡侾HP閮芥湁璁块棶PostgreSQL鐨勬帴鍙o紝Perl銆乀CL銆丳ython浠ュ強寰堝鍏朵粬璇█鐨勬帴鍙e湪
+ <a href="http://gborg.postgresql.org" target="_top">http://gborg.postgresql.org</a>缃戠珯涓婄殑<i>Drivers/Interfaces</i>灏忚妭鍙壘鍒帮紝
+ 骞朵笖閫氳繃Internet寰堝鏄撴悳绱㈠埌銆
+</p>
+
+
+
+
+<h3> <a name="2.2"></a>2.2) 鏈変粈涔堝伐鍏峰彲浠ユ妸PostgreSQL鐢ㄤ簬 Web 椤甸潰锛 </h3>
+<p>
+ 涓涓粙缁嶄互鏁版嵁搴撲负鍚庡彴鐨勬尯涓嶉敊鐨勭珯鐐规槸锛<a href="http://www.webreview.com">http://www.webreview.com</a>銆
+</p>
+<p>
+ 瀵逛簬 Web 闆嗘垚锛孭HP 鏄竴涓瀬濂界殑鎺ュ彛銆傚畠鍦<a href="http://www.php.net/">http://www.php.net/</a>銆
+
+</p>
+<p>
+ 瀵逛簬澶嶆潅鐨勪换鍔★紝寰堝浜洪噰鐢 Perl 鎺ュ彛鍜 浣跨敤CGI.pm鐨凞BD::Pg 鎴 mod_perl 銆
+</p>
+
+
+<h3> <a name="2.3"></a>2.3)PostgreSQL鎷ユ湁鍥惧舰鐢ㄦ埛鐣岄潰鍚楋紵 </h3>
+<p>
+ 鍟嗕笟鐢ㄦ埛鎴栨槸寮婧愬紑鍙戜汉鍛樿兘鎵惧埌寰堝鐨勬湁鍏砅ostgreSQL鐨凣UI鍥惧舰宸ュ叿杞欢锛屽湪 <a href="http://www.postgresql.org/docs/techdocs.54">PostgreSQL绀惧尯鏂囨。</a>鏈変竴涓缁嗙殑鍒楄〃銆
+</p>
+
+
+<hr/>
+
+
+
+<h2><a name="绯荤粺绠$悊闂"></a> 绯荤粺绠$悊闂 </h2>
+
+<h3> <a name="3.1"></a>3.1)鎴戞庢牱鑳芥妸PostgreSQL瑁呭湪 /usr/local/pgsql 浠ュ鐨勫湴鏂癸紵 </h3>
+<p>
+ 鍦ㄨ繍琛 configure 鏃跺姞涓 --prefix 閫夐」銆
+</p>
+
+
+
+<h3> <a name="3.2"></a>3.2) 鎴戝浣曟帶鍒舵潵鑷叾浠栫數鑴戠殑杩炴帴锛 </h3>
+<p>
+ 缂虹渷鎯呭喌涓嬶紝PostgreSQL鍙厑璁告潵鑷湰鏈轰笖閫氳繃 unix 鍩熷鎺ュ瓧鎴朤CP/IP鏂瑰紡鐨勮繛鎺ャ
+ 浣犲彧鏈夊湪淇敼浜嗛厤缃枃浠<i>postgresql.conf</i>涓殑<i>listen_addresses</i>锛屼笖涔熷湪閰嶇疆鏂囦欢<i>$PGDATA/pg_hba.conf</i>涓墦寮浜
+ 鍩轰簬杩滅▼鐢佃剳锛 host-based 锛夌殑韬唤璁よ瘉锛屽苟閲嶆柊鍚姩PostgreSQL锛屽惁鍒欏叾浠栫數鑴戞槸涓嶈兘涓庝綘鐨凱ostgreSQL鏈嶅姟鍣ㄨ繘琛岃繛鎺ョ殑銆
+</p>
+
+
+<h3> <a name="3.3"></a>3.3) 鎴戞庢牱璋冩暣鏁版嵁搴撳紩鎿庝互鑾峰緱鏇村ソ鐨勬ц兘锛 </h3>
+
+
+<p>
+ 鏈変笁涓富瑕佹柟闈㈠彲浠ユ彁鍗嘝ostgreSQL鐨勬綔鑳姐
+</p>
+
+<dl>
+ <dt><b>鏌ヨ鏂瑰紡鐨勫彉鍖</b></dt>
+ <dd>
+ 杩欎富瑕佹秹鍙婁慨鏀规煡璇㈡柟寮忎互鑾峰彇鏇村ソ鐨勬ц兘:
+ <ul>
+ <li>鍒涘缓绱㈠紩锛屽寘鎷〃杈惧紡鍜岄儴鍒嗙储寮曪紱</li>
+
+ <li>浣跨敤COPY璇彞浠f浛澶氫釜Insert璇彞锛</li>
+ <li>灏嗗涓猄QL璇彞缁勬垚涓涓簨鍔′互鍑忓皯鎻愪氦浜嬪姟鐨勫紑閿锛</li>
+ <li>浠庝竴涓储寮曚腑鎻愬彇澶氭潯璁板綍鏃朵娇鐢–LUSTER锛</li>
+ <li>浠庝竴涓煡璇㈢粨鏋滀腑鍙栧嚭閮ㄥ垎璁板綍鏃朵娇鐢↙IMIT锛</li>
+ <li>浣跨敤棰勭紪璇戝紡鏌ヨ锛圥repared Query)锛</li>
+ <li>浣跨敤ANALYZE浠ヤ繚鎸佺簿纭殑浼樺寲缁熻锛</li>
+
+ <li>瀹氭湡浣跨敤 VACUUM 鎴 <i>pg_autovacuum</i></li>
+ <li>杩涜澶ч噺鏁版嵁鏇存敼鏃跺厛鍒犻櫎绱㈠紩锛堢劧鍚庨噸寤虹储寮曪級</li>
+ </ul>
+ </dd>
+
+ <dt><b>鏈嶅姟鍣ㄧ殑閰嶇疆</b></dt>
+ <dd>
+
+ 閰嶇疆鏂囦欢<i>postgres.conf</i>涓殑寰堝璁剧疆閮戒細褰卞搷鎬ц兘锛屾墍鏈夊弬鏁扮殑鍒楄〃鍙锛
+ <a href="http://www.postgresql.org/docs/current/static/runtime.html">绠$悊鍛樻寚鍗/鏁版嵁搴撴湇鍔″櫒杩愯鐜/鏁版嵁搴撴湇鍔″櫒杩愯閰嶇疆</a>锛
+ 鏈夊叧鍙傛暟鐨勮В閲婂彲瑙侊細<a href="http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html" target="_top">http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html</a> 鍜
+ <a href="http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html">http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html</a>銆
+ </dd>
+
+ <dt><b>纭欢鐨勯夋嫨</b></dt>
+
+ <dd>
+ 璁$畻鏈虹‖浠跺鎬ц兘鐨勫奖鍝嶅彲娴忚
+ <a href="http://candle.pha.pa.us/main/writings/pgsql/hw_performance/index.html" target="_top">http://candle.pha.pa.us/main/writings/pgsql/hw_performance/index.html</a> 鍜
+ <a href="http://www.powerpostgresql.com/PerfList/">http://www.powerpostgresql.com/PerfList/</a>銆
+ </dd>
+
+</dl>
+
+
+<h3> <a name="3.4"></a>3.4)PostgreSQL閲屽彲浠ヨ幏寰椾粈涔堟牱鐨勮皟璇曠壒鎬э紵 </h3>
+
+
+<p>PostgreSQL 鏈夊緢澶氱被浼<code> log_* </code>鐨勬湇鍔″櫒閰嶇疆鍙橀噺鍙敤浜庢煡璇㈢殑鎵撳嵃鍜岃繘绋嬬粺璁★紝鑰岃繖浜涘伐浣滃璋冭瘯鍜屾ц兘娴嬭瘯寰堟湁甯姪銆
+</p>
+
+
+
+<h3> <a name="3.5"></a>3.5) 涓轰粈涔堝湪璇曞浘杩炴帴鏃舵敹鍒扳淪orry, too many clients锛堝凡鏈夊お澶氱敤鎴疯繛鎺ワ級鈥濇秷鎭紵 </h3>
+<p>
+ 杩欒〃绀轰綘宸茶揪鍒扮己鐪100涓苟鍙戝悗鍙拌繘绋嬫暟鐨勯檺鍒讹紝浣犻渶瑕侀氳繃淇敼<i>postgresql.conf</i>鏂囦欢涓殑<i>max_connections</i>鍊兼潵
+ 澧炲姞postmaster鐨勫悗鍙板苟鍙戝鐞嗘暟锛屼慨鏀瑰悗闇閲嶆柊鍚姩<i>postmaster</i>銆
+
+</p>
+
+
+<h3> <a name="3.6"></a>3.6)PostgreSQL鐨勫崌绾ц繃绋嬫湁鍝簺鍐呭 锛 </h3>
+<p>
+ PostgreSQL 寮鍙戠粍瀵规瘡娆″皬鐗堟湰鐨勫崌绾т富瑕佸彧鍋氫簡涓浜汢ug淇宸ヤ綔锛屽洜姝や粠 7.4.8 鍗囩骇鍒 7.4.9 涓嶉渶瑕 dump 鍜 restore锛屼粎闇瑕佸仠姝㈡暟鎹簱鏈嶅姟鍣紝瀹夎鏇存柊鍚庣殑杞欢鍖咃紝鐒跺悗閲嶅惎鏈嶅姟鍣ㄥ嵆鍙
+</p>
+<p>
+ 鎵鏈塒ostgreSQL鐨勭敤鎴峰簲璇ュ湪鏈鎺ヨ繎锛堜綘鎵浣跨敤鐨勪富鐗堟湰锛夌殑灏忔敼杩涚増鏈彂甯冨敖蹇崌绾с傚敖绠℃瘡娆″崌绾у彲鑳介兘鏈変竴鐐归闄╋紝PostgreSQL鐨勫皬鏀硅繘鐗堜粎浠呮槸璁捐鐢ㄦ潵淇涓浜汢ug鐨勶紝浠g爜鏀瑰姩杈冨皯锛屾墍浠ラ闄╄繕鏄緢灏忕殑銆侾ostgreSQL绀惧尯璁や负涓鑸儏鍐典笅涓嶅崌绾х殑椋庨櫓杩樻槸澶氫簬鍗囩骇鐨勩
+</p>
+<p>
+ 涓荤増鏈殑鍗囩骇锛堜緥濡備粠 7.3 鍒 7.4锛夐氬父浼氫慨鏀圭郴缁熻〃鍜屾暟鎹〃鐨勫唴閮ㄦ牸寮忋
+ 杩欎簺鏀瑰彉涓鑸瘮杈冨鏉傦紝鍥犳鎴戜滑涓嶇淮鎸佹暟鎹枃浠剁殑鍚戝悗鍏煎鎬с傚洜姝や粠鑰佺増鏈腑杩涜鏁版嵁瀵煎嚭锛坉ump锛/鐒跺悗鍦ㄦ柊鐗堟湰涓繘琛屾暟鎹鍏ワ紙reload锛夊涓荤増鏈殑鍗囩骇鏄繀椤荤殑銆
+
+</p>
+
+<h3> <a name="3.7"></a>3.7)(浣跨敤PostgreSQL)鎴戦渶瑕佷娇鐢ㄤ粈涔堣绠楁満纭欢 锛 </h3>
+<p>
+ 鐢变簬璁$畻鏈虹‖浠跺ぇ澶氭暟鏄吋瀹圭殑锛屼汉浠绘槸鍊惧悜浜庣浉淇℃墍鏈夎绠楁満纭欢璐ㄩ噺涔熸槸鐩稿悓鐨勩備簨瀹炰笂涓嶆槸锛
+ ECC RAM锛堝甫濂囧伓鏍¢獙鐨勫唴瀛橈級锛孲CSI 锛堢‖鐩橈級鍜屼紭璐ㄧ殑涓绘澘姣斾竴浜涗究瀹滆揣瑕佹洿鍔犲彲闈犱笖鍏锋湁鏇村ソ鐨勬ц兘銆侾ostgreSQL鍑犱箮鍙互杩愯鍦ㄤ换浣曠‖浠朵笂锛
+ 浣嗗鏋滃彲闈犳у拰鎬ц兘瀵逛綘鐨勭郴缁熷緢閲嶈锛屼綘灏遍渶瑕佸叏闈㈢殑鐮旂┒涓涓嬩綘鐨勭‖浠堕厤缃簡銆傚湪鎴戜滑鐨勯偖浠跺垪琛ㄤ笂涔熸湁鍏充簬
+ 纭欢閰嶇疆鍜屾т环姣旂殑璁ㄨ銆
+</p>
+
+
+<hr/>
+
+<h2><a name="鎿嶄綔闂"></a> 鎿嶄綔闂 </h2>
+
+
+
+<h3> <a name="4.1"></a>4.1) 濡備綍鍙夋嫨涓涓煡璇㈢粨鏋滅殑澶村嚑琛岋紵鎴栨槸闅忔満鐨勪竴琛岋紵 </h3>
+<p>
+ 濡傛灉浣犲彧鏄鎻愬彇鍑犺鏁版嵁锛屽苟涓斾綘鍦ㄦ墽琛屾煡璇腑鐭ラ亾纭垏鐨勮鏁帮紝浣犲彲浠ヤ娇鐢↙IMIT鍔熻兘銆
+ 濡傛灉鏈変竴涓储寮曚笌 <i> ORDER BY</i>涓殑鏉′欢鍖归厤锛孭ostgreSQL 鍙兘灏卞彧澶勭悊瑕佹眰鐨勫ご鍑犳潯璁板綍锛
+ 锛堝惁鍒欏皢瀵规暣涓煡璇㈣繘琛屽鐞嗙洿鍒扮敓鎴愰渶瑕佺殑琛岋級銆傚鏋滃湪鎵ц鏌ヨ鍔熻兘鏃朵笉鐭ラ亾纭垏鐨勮褰曟暟锛
+ 鍙娇鐢ㄦ父鏍(cursor)鍜孎ETCH鍔熻兘銆
+</p>
+<p>
+ 鍙娇鐢ㄤ互涓嬫柟娉曟彁鍙栦竴琛岄殢鏈鸿褰曠殑锛
+</p>
+<pre>
+ SELECT cols
+ FROM tab
+ ORDER BY random()
+ LIMIT 1 ;
+
+</pre>
+
+
+
+<h3> <a name="4.2"></a>4.2) 濡備綍鏌ョ湅琛ㄣ佺储寮曘佹暟鎹簱浠ュ強鐢ㄦ埛鐨勫畾涔夛紵濡備綍鏌ョ湅<i>psql</i>閲岀敤鍒扮殑鏌ヨ鎸囦护骞舵樉绀哄畠浠紵 </h3>
+<p>
+ 鍦<i>psql</i>涓娇鐢 \dt 鍛戒护鏉ユ樉绀烘暟鎹〃鐨勫畾涔夛紝瑕佷簡瑙<i>psql</i>涓殑瀹屾暣鍛戒护鍒楄〃鍙娇鐢╘? 锛屽彟澶栵紝浣犱篃鍙互闃呰 <i>psql</i> 鐨勬簮浠g爜
+ 鏂囦欢<i>pgsql/src/bin/psql/describe.c</i>锛屽畠鍖呮嫭涓虹敓鎴<i>psql</i>鍙嶆枩鏉犲懡浠ょ殑杈撳嚭鐨勬墍鏈 SQL 鍛戒护銆備綘杩樺彲浠ュ甫 <i>-E</i> 閫夐」鍚姩 <i>psql</i>锛
+ 杩欐牱瀹冨皢鎵撳嵃鍑轰綘鍦<i>psql</i>涓墍缁欏嚭鐨勫懡浠ゆ墽琛屾椂鐨勫唴閮ㄥ疄闄呬娇鐢ㄧ殑SQL鏌ヨ璇彞銆侾ostgreSQL涔熸彁渚涗簡涓涓吋瀹筍QL鐨処NFORMATION SCHEMA鎺ュ彛锛
+ 浣犲彲浠ヤ粠杩欓噷鑾峰彇鍏充簬鏁版嵁搴撶殑淇℃伅銆
+
+</p>
+<p>
+ 鍦ㄧ郴缁熶腑涔熸湁涓浜涗互<i>pg_</i> 鎵撳ご鐨勭郴缁熻〃涔熸弿杩颁簡琛ㄧ殑瀹氫箟銆
+</p>
+<p>
+ 浣跨敤 <i>psql -l</i> 鎸囦护鍙互鍒楀嚭鎵鏈夌殑鏁版嵁搴撱
+</p>
+<p>
+ 涔熷彲浠ユ祻瑙堜竴涓 <i>pgsql/src/tutorial/syscat.source</i>鏂囦欢锛屽畠鍒椾妇浜嗗緢澶氬彲浠庢暟鎹簱绯荤粺琛ㄤ腑鑾峰彇淇℃伅鐨凷ELECT璇硶銆
+
+</p>
+
+
+<h3> <a name="4.3"></a>4.3) 濡備綍鏇存敼涓涓瓧娈电殑鏁版嵁绫诲瀷锛 </h3>
+<p>
+ 鍦8.0鐗堟湰閲屾洿鏀逛竴涓瓧娈电殑鏁版嵁绫诲瀷寰堝鏄擄紝鍙娇鐢 ALTER TABLE ALTER COLUMN TYPE 銆
+</p>
+<p>
+ 鍦ㄤ互鍓嶇殑鐗堟湰涓紝鍙互杩欐牱鍋氾細
+</p>
+<pre>
+ BEGIN;
+ ALTER TABLE tab ADD COLUMN new_col new_data_type;
+ UPDATE tab SET new_col = CAST(old_col AS new_data_type);
+ ALTER TABLE tab DROP COLUMN old_col;
+ COMMIT;
+
+</pre>
+<p>
+ 浣犵劧鍚庡彲浠ヤ娇鐢<i>VACUUM FULL tab </i>鎸囦护鏉ヤ娇绯荤粺鏀跺洖鏃犳晥鏁版嵁鎵鍗犵敤鐨勭┖闂淬
+</p>
+
+<h3> <a name="4.4"></a>4.4) 鍗曟潯璁板綍锛屽崟涓〃锛屽崟涓暟鎹簱鐨勬渶澶ч檺鍒舵槸澶氬皯锛 </h3>
+<p>
+ 涓嬮潰鏄竴浜涢檺鍒讹細
+</p>
+<blockquote>
+ <table>
+
+ <tbody>
+ <tr><td>鍗曚釜鏁版嵁搴撴渶澶у昂瀵革紵</td><td>鏃犻檺鍒讹紙宸插瓨鍦ㄦ湁 32TB 鐨勬暟鎹簱锛</td></tr>
+ <tr><td>鍗曚釜琛ㄧ殑鏈澶у昂瀵革紵</td><td>32 TB</td></tr>
+ <tr><td>涓琛岃褰曠殑鏈澶у昂瀵革紵</td><td>1.6 TB</td></tr>
+ <tr><td>涓涓瓧娈电殑鏈澶у昂瀵?</td><td>1 GB</td></tr>
+
+ <tr><td>涓涓〃閲屾渶澶ц鏁帮紵</td><td>鏃犻檺鍒</td></tr>
+ <tr><td>涓涓〃閲屾渶澶у垪鏁帮紵</td><td>250-1600 锛堜笌鍒楃被鍨嬫湁鍏筹級</td></tr>
+ <tr><td>涓涓〃閲岀殑鏈澶х储寮曟暟閲忥紵</td><td>鏃犻檺鍒</td></tr>
+ </tbody>
+</table>
+</blockquote>
+
+
+<p>
+ 褰撶劧锛屽疄闄呬笂娌℃湁鐪熸鐨勬棤闄愬埗锛岃繕鏄鍙楀彲鐢ㄧ鐩樼┖闂淬佸彲鐢ㄥ唴瀛/浜ゆ崲鍖虹殑鍒剁害銆
+ 浜嬪疄涓婏紝褰撲笂杩拌繖浜涙暟鍊煎彉寰楀紓甯稿湴澶ф椂锛岀郴缁熸ц兘涔熶細鍙楀緢澶у奖鍝嶃
+</p>
+
+<p>
+ 鍗曡〃鐨勬渶澶уぇ灏 32 TB 涓嶉渶瑕佹搷浣滅郴缁熷鍗曚釜鏂囦欢涔熼渶杩欎箞澶х殑鏀寔銆傚ぇ琛ㄧ敤澶氫釜 1 GB 鐨勬枃浠跺瓨鍌紝鍥犳鏂囦欢绯荤粺澶у皬鐨勯檺鍒舵槸涓嶉噸瑕佺殑銆
+</p>
+<p>
+ 濡傛灉缂虹渷鐨勫潡澶у皬澧為暱鍒 32K 锛屾渶澶х殑鍗曡〃澶у皬鍜屾渶澶у垪鏁拌繕鍙互澧炲姞鍒板洓鍊嶃
+</p>
+<p>
+ 鏈変竴涓檺鍒跺氨鏄笉鑳藉澶у皬澶氫簬2000瀛楄妭鐨勫垪鍒涘缓绱㈠紩銆傚垢杩愬湴鏄繖鏍风殑绱㈠紩寰堝皯鐢ㄥ埌銆傞氳繃瀵瑰瀛楄妭鍒楃殑鍐呭杩涜MD5鍝堢█杩愮畻缁撴灉杩涜鍑芥暟绱㈠紩鍙鍒楃殑鍞竴鎬у緱鍒颁繚璇侊紝
+ 骞朵笖鍏ㄦ枃妫绱㈠厑璁稿鍒椾腑鐨勫崟璇嶈繘琛屾悳绱€
+</p>
+
+
+<h3> <a name="4.5"></a>4.5) 瀛樺偍涓涓吀鍨嬬殑鏂囨湰鏂囦欢閲岀殑鏁版嵁闇瑕佸灏戠鐩樼┖闂达紵 </h3>
+<p>
+ 涓涓 Postgres 鏁版嵁搴擄紙瀛樺偍涓涓枃鏈枃浠讹級鎵鍗犵敤鐨勭┖闂存渶澶氬彲鑳介渶瑕佺浉褰撲簬杩欎釜鏂囨湰鏂囦欢鑷韩澶у皬5鍊嶇殑纾佺洏绌洪棿銆
+</p>
+<p>
+ 渚嬪锛屽亣璁炬湁涓涓 100,000 琛岀殑鏂囦欢锛屾瘡琛屾湁涓涓暣鏁板拰涓涓枃鏈弿杩般
+ 鍋囪鏂囨湰涓茬殑骞冲潎闀垮害涓20瀛楄妭銆傛枃鏈枃浠跺崰鐢 2.8 MB銆傚瓨鏀捐繖浜涙暟鎹殑PostgreSQL鏁版嵁搴撴枃浠跺ぇ绾︽槸 6.4 MB:
+</p>
+<pre>
+ 28 瀛楄妭: 姣忚鐨勫ご锛堝ぇ绾﹀硷級
+ 24 瀛楄妭: 涓涓暣鏁板瀷瀛楁鍜屼竴涓枃鏈瀷瀛楁
+ + 4 瀛楄妭: 椤甸潰鍐呮寚鍚戝厓缁勭殑鎸囬拡
+ ----------------------------------------
+ 56 瀛楄妭姣忚
+
+ PostgreSQL 鏁版嵁椤电殑澶у皬鏄 8192 瀛楄妭 (8 KB)锛屽垯锛
+
+ 8192 瀛楄妭姣忛〉
+ ------------------- = 146 琛/鏁版嵁椤碉紙鍚戜笅鍙栨暣锛
+ 56 瀛楄妭姣忚
+
+ 100000 鏁版嵁琛
+ -------------------- = 685 鏁版嵁椤碉紙鍚戜笂鍙栨暣锛
+ 146 琛/鏁版嵁椤
+
+ 685 鏁版嵁椤 * 8192 瀛楄妭/椤 = 5,611,520 瀛楄妭锛5.6 MB锛
+</pre>
+
+
+<p>
+ 绱㈠紩涓嶉渶瑕佽繖涔堝鐨勯澶栨秷鑰楋紝浣嗕篃纭疄鍖呮嫭琚储寮曠殑鏁版嵁锛屽洜姝ゅ畠浠篃鍙兘寰堝ぇ銆
+</p>
+<p>
+ 绌哄<i>NULL</i>瀛樻斁鍦ㄤ綅鍥句腑锛屽洜姝ゅ崰鐢ㄥ緢灏戠殑绌洪棿銆
+</p>
+
+<h3> <a name="4.6"></a>4.6) 涓轰粈涔堟垜鐨勬煡璇㈠緢鎱紵涓轰粈涔堣繖浜涙煡璇㈡病鏈夊埄鐢ㄧ储寮曪紵 </h3>
+<p>
+ 骞堕潪姣忎釜鏌ヨ閮戒細鑷姩浣跨敤绱㈠紩銆傚彧鏈夊湪琛ㄧ殑澶у皬瓒呰繃涓涓渶灏忓硷紝骞朵笖鏌ヨ鍙細閫変腑琛ㄤ腑杈冨皬姣斾緥鐨勮褰曟椂鎵嶄細閲囩敤绱㈠紩銆
+ 杩欐槸鍥犱负绱㈠紩鎵弿寮曡捣鐨勯殢鍗崇鐩樺瓨鍙栧彲鑳芥瘮鐩存帴鍦拌鍙栬〃锛堥『搴忔壂鎻忥級鏇存參銆
+
+</p>
+<p>
+ 涓轰簡鍒ゆ柇鏄惁浣跨敤绱㈠紩锛孭ostgreSQL蹇呴』鑾峰緱鏈夊叧琛ㄧ殑缁熻鍊笺傝繖浜涚粺璁″煎彲浠ヤ娇鐢 VACUUM ANALYZE锛屾垨 ANALYZE 鑾峰緱銆
+ 浣跨敤缁熻鍊硷紝浼樺寲鍣ㄧ煡閬撹〃涓湁澶氬皯琛岋紝灏辫兘澶熸洿濂藉湴鍒ゆ柇鏄惁鍒╃敤绱㈠紩銆
+ 缁熻鍊煎纭畾浼樺寲鐨勮繛鎺ラ『搴忓拰杩炴帴鏂规硶涔熷緢鏈夌敤銆傚湪琛ㄧ殑鍐呭鍙戠敓鍙樺寲鏃讹紝搴斿畾鏈熻繘琛岀粺璁″肩殑鏇存柊鏀堕泦銆
+</p>
+<p>
+ 绱㈠紩閫氬父涓嶇敤浜 ORDER BY 鎴栨墽琛岃繛鎺ャ傚涓涓ぇ琛ㄧ殑涓娆¢『搴忔壂鎻忓啀鍋氫竴娆℃帓搴忛氬父姣旂储寮曟壂鎻忚蹇傜劧鑰岋紝濡傛灉灏 LIMIT 鍜 ORDER BY
+ 缁撳悎鍦ㄤ竴璧蜂娇鐢ㄧ殑璇濓紝閫氬父灏嗕細浣跨敤绱㈠紩锛屽洜涓鸿繖鏃朵粎杩斿洖琛ㄤ腑鐨勪竴灏忛儴鍒嗚褰曘
+</p>
+<p>
+ 濡傛灉浣犵‘淇ostgreSQL鐨勪紭鍖栧櫒浣跨敤椤哄簭鎵弿鏄笉姝g‘鐨勶紝浣犲彲浠ヤ娇鐢<code>SET enable_seqscan TO 'off'</code>鎸囦护鏉ュ叧闂『搴忔壂鎻忥紝
+ 鐒跺悗鍐嶆杩愯鏌ヨ锛屼綘灏卞彲浠ョ湅鍑轰娇鐢ㄤ竴涓储寮曟壂鎻忔槸鍚︾‘瀹炶蹇竴浜涖
+</p>
+
+<p>
+
+ 褰撲娇鐢ㄩ氶厤绗︽搷浣滐紝渚嬪 <i>LIKE</i> 鎴 <i>~</i> 鏃讹紝绱㈠紩鍙兘鍦ㄧ壒瀹氱殑鎯呭喌涓嬩娇鐢細
+</p>
+<ul>
+ <li>瀛楃涓茬殑寮濮嬮儴鍒嗗繀椤绘槸鏅氬瓧绗︿覆锛屼篃灏辨槸璇达細
+ <ul>
+ <li> <i>LIKE</i> 妯″紡涓嶈兘浠 <i>%</i> 鎵撳ご銆</li>
+
+ <li> <i>~</i> 锛堟鍒欒〃杈惧紡锛夋ā寮忓繀椤讳互 <i>^</i> 鎵撳ご銆</li>
+ </ul>
+ </li>
+ <li>瀛楃涓蹭笉鑳戒互鍖归厤澶氫釜瀛楃鐨勬ā寮忕被鎵撳ご锛屼緥濡 [a-e]銆</li>
+ <li>澶у皬鍐欐棤鍏崇殑鏌ユ壘锛屽 ILIKE 鍜 ~* 绛変笉浣跨敤绱㈠紩锛屼絾鍙互鐢 <a href="#4.8">4.8</a> 鑺傛弿杩扮殑琛ㄨ揪寮忕储寮曘</li>
+
+ <li>鍦ㄥ仛 initdb 鏃跺繀椤婚噰鐢ㄧ己鐪佺殑鏈湴璁剧疆 C locale锛屽洜涓虹郴缁熶笉鍙兘鐭ラ亾鍦ㄩ潪C locale鎯呭喌鏃朵笅涓涓渶澶у瓧绗︽槸浠涔堛
+ 鍦ㄨ繖绉嶆儏鍐典笅锛屼綘鍙互鍒涘缓涓涓壒娈婄殑<code>text_pattern_ops</code>绱㈠紩鏉ョ敤浜<small>LIKE</small>鐨勭储寮曘
+ </li>
+</ul>
+<p>
+ 鍦8.0涔嬪墠鐨勭増鏈腑锛岄櫎闈炶鏌ヨ鐨勬暟鎹被鍨嬪拰绱㈠紩鐨勬暟鎹被鍨嬬浉鍖归厤锛屽惁鍒欑储寮曠粡甯告槸鏈鐢ㄥ埌锛岀壒鍒槸瀵筰nt2,int8鍜屾暟鍊煎瀷鐨勭储寮曘
+</p>
+
+<h3> <a name="4.7"></a>4.7) 鎴戝浣曟墠鑳界湅鍒版煡璇紭鍖栧櫒鏄庢牱璇勪及澶勭悊鎴戠殑鏌ヨ锛 </h3>
+
+
+<p>鍙傝 <small>EXPLAIN</small> 鎵嬪唽椤点</p>
+
+<h3> <a name="4.8"></a>4.8) 鎴戞庢牱鍋氭鍒欒〃杈惧紡鎼滅储鍜屽ぇ灏忓啓鏃犲叧鐨勬鍒欒〃杈惧紡鏌ユ壘锛熸庢牱鍒╃敤绱㈠紩杩涜澶у皬鍐欐棤鍏虫煡鎵撅紵 </h3>
+<p>
+ 鎿嶄綔绗 <i> ~ </i> 澶勭悊姝e垯琛ㄨ揪寮忓尮閰嶏紝鑰 <i>~*</i> 澶勭悊澶у皬鍐欐棤鍏崇殑姝e垯琛ㄨ揪寮忓尮閰嶃傚ぇ灏忓啓鏃犲叧鐨 LIKE 鍙樼鎴愪负 ILIKE銆
+
+</p>
+<p>
+ 澶у皬鍐欐棤鍏崇殑绛夊紡姣旇緝閫氬父鍐欏仛锛
+</p>
+<pre>
+ SELECT *
+ FROM tab
+ WHERE lower(col) = 'abc';
+</pre>
+
+<p>
+ 杩欐牱灏嗕笉浼氫娇鐢ㄦ爣鍑嗙殑绱㈠紩銆備絾鏄彲浠ュ垱寤轰竴涓湪杩欑鎯呭喌涓嬩娇鐢ㄧ殑琛ㄨ揪寮忕储寮:
+</p>
+<pre>
+ CREATE INDEX tabindex ON tab (lower(col));
+
+</pre>
+<p>
+ 濡傛灉涓婅堪绱㈠紩鍦ㄥ垱寤烘椂鍔犲叆UNIQUE绾︽潫锛岃櫧鐒剁储寮曞瓧娈佃嚜韬唴瀹瑰彲浠ュ瓨鍌ㄥぇ灏忓啓涓嶉檺鐨勫唴瀹癸紝浣嗗鏋滄湁UNIQUE绾︽潫鍚庯紝杩欎簺鍐呭涓嶈兘浠呬粎鏄ぇ灏忓啓涓嶅悓锛堝惁鍒欎細閫犳垚鍐茬獊锛夈備负浜嗕繚璇佷笉鍙戠敓杩欑鎯呭喌锛屽彲浠ヤ娇鐢–HECK绾︽潫鏉′欢鎴栨槸瑙﹀彂鍣ㄥ湪褰曞叆鏃惰繘琛岄檺鍒躲
+</p>
+
+
+<h3> <a name="4.9"></a>4.9) 鍦ㄤ竴涓煡璇㈤噷锛屾垜鎬庢牱妫娴嬩竴涓瓧娈垫槸鍚︿负 <i>NULL</i> 锛熸垜濡備綍鎵嶈兘鍑嗙‘鎺掑簭鑰屼笉璁烘煇瀛楁鏄惁鍚 <i>NULL</i> 鍊硷紵 </h3>
+<p>
+
+ 鐢 <small>IS NULL</small> 鍜 <small>IS NOT NULL</small> 娴嬭瘯杩欎釜瀛楁锛屽叿浣撴柟娉曞涓嬶細
+</p>
+<pre> SELECT *
+ FROM tab
+ WHERE col IS NULL;
+</pre>
+
+<p>涓轰簡鑳藉鍚 <small>NULL</small>瀛楁鎺掑簭锛屽彲鍦 <small>ORDER BY</small> 鏉′欢涓娇鐢 <small>IS NULL</small>鍜
+ <small>IS NOT NULL</small> 淇グ绗︼紝鏉′欢涓虹湡 <i>true</i> 灏嗘瘮鏉′欢涓哄亣<i>false</i> 鎺掑湪鍓嶉潰锛屼笅闈㈢殑渚嬪瓙灏变細灏嗗惈
+ NULL 鐨勮褰曟帓鍦ㄧ粨鏋滅殑涓婇潰閮ㄥ垎锛
+
+</p>
+<pre> SELECT *
+ FROM tab
+ ORDER BY (col IS NOT NULL)
+</pre>
+
+<h3> <a name="4.10"></a>4.10) 鍚勭瀛楃绫诲瀷涔嬮棿鏈変粈涔堜笉鍚岋紵 </h3>
+<blockquote>
+ <table>
+ <tbody>
+ <tr><th>绫诲瀷</th><th>鍐呴儴鍚嶇О</th><th>璇存槑</th></tr>
+
+ <tr><td>VARCHAR(n)</td><td>varchar</td><td>鎸囧畾浜嗘渶澶ч暱搴︼紝鍙橀暱瀛楃涓诧紝涓嶈冻瀹氫箟闀垮害鐨勯儴鍒嗕笉琛ラ綈</td></tr>
+ <tr><td>CHAR(n)</td><td>bpchar</td><td>瀹氶暱瀛楃涓诧紝瀹為檯鏁版嵁涓嶈冻瀹氫箟闀垮害鏃讹紝浠ョ┖鏍艰ˉ榻</td></tr>
+ <tr><td>TEXT</td><td>text</td><td>娌℃湁鐗瑰埆鐨勪笂闄愰檺鍒讹紙浠呭彈琛岀殑鏈澶ч暱搴﹂檺鍒讹級</td></tr>
+ <tr><td>BYTEA</td><td>bytea</td><td>鍙橀暱瀛楄妭搴忓垪锛堜娇鐢∟ULL瀛楃涔熸槸鍏佽鐨勶級</td></tr>
+
+ <tr><td>"char"</td><td>char</td><td>鍗曚釜瀛楃</td></tr>
+ </tbody>
+ </table>
+</blockquote>
+
+<p>
+ 鍦ㄧ郴缁熻〃鍜屽湪涓浜涢敊璇俊鎭噷浣犲皢鐪嬪埌鍐呴儴鍚嶇О銆
+</p>
+<p>
+ 涓婇潰鎵鍒楃殑鍓嶅洓绉嶇被鍨嬫槸"varlena"锛堝彉闀匡級绫诲瀷锛堜篃灏辨槸璇达紝寮澶寸殑鍥涗釜瀛楄妭鏄暱搴︼紝鍚庨潰鎵嶆槸鏁版嵁锛夈
+ 浜庢槸瀹為檯鍗犵敤鐨勭┖闂存瘮澹版槑鐨勫ぇ灏忚澶氫竴浜涖
+ 鐒惰岃繖浜涚被鍨嬪瀹氫箟寰堥暱鏃堕兘鍙互琚帇缂╁瓨鍌紝鍥犳纾佺洏绌洪棿涔熷彲鑳芥瘮棰勬兂鐨勮灏戙
+
+</p>
+<p>
+ <small>VARCHAR(n)</small> 鍦ㄥ瓨鍌ㄩ檺鍒朵簡鏈澶ч暱搴︾殑鍙橀暱瀛楃涓叉槸鏈濂界殑銆
+ <small>TEXT</small> 閫傜敤浜庡瓨鍌ㄦ渶澶у彲杈 1G宸﹀彸浣嗘湭瀹氫箟闄愬埗闀垮害鐨勫瓧绗︿覆銆
+</p>
+<p>
+ <small>CHAR(n)</small> 鏈閫傚悎浜庡瓨鍌ㄩ暱搴︾浉鍚岀殑瀛楃涓层 <small>CHAR(n)</small>浼氭牴鎹墍缁欏畾鐨勫瓧娈甸暱搴︿互绌烘牸琛ヨ冻锛堜笉瓒崇殑瀛楁鍐呭锛夛紝
+ 鑰 <small>VARCHAR(n)</small> 鍙瓨鍌ㄦ墍缁欏畾鐨勬暟鎹唴瀹广
+ <small>BYTEA</small> 鐢ㄤ簬瀛樺偍浜岃繘鍒舵暟鎹紝灏ゅ叾鏄寘鍚 NULL 瀛楄妭鐨勫笺傝繖浜涚被鍨嬪叿鏈夊樊涓嶅鐨勬ц兘銆
+
+</p>
+
+
+
+<h3> <a name="4.11.1"></a>4.11.1) 鎴戞庢牱鍒涘缓涓涓簭鍒楀彿鎴栨槸鑷姩閫掑鐨勫瓧娈碉紵 </h3>
+<p>PostgreSQL 鏀寔 SERIAL 鏁版嵁绫诲瀷銆傦紙瀛楁瀹氫箟涓篠ERIAL鍚庯級灏嗚嚜鍔ㄥ垱寤轰竴涓簭鍒楃敓鎴愬櫒锛屼緥濡傦細
+</p>
+<pre>
+ CREATE TABLE person (
+ id SERIAL,
+ name TEXT
+ );
+</pre>
+<p>
+ 浼氳嚜鍔ㄨ浆鎹负浠ヤ笅SQL璇彞锛
+</p>
+
+<pre>
+ CREATE SEQUENCE person_id_seq;
+ CREATE TABLE person (
+ id INT4 NOT NULL DEFAULT nextval('person_id_seq'),
+ name TEXT
+ );
+</pre>
+<p>
+ 鍙傝 create_sequence 鎵嬪唽椤佃幏鍙栧叧浜庡簭鍒楃敓鎴愬櫒鐨勬洿澶氫俊鎭
+</p>
+
+
+<h3> <a name="4.11.2"></a>4.11.2) 鎴戝浣曡幏寰椾竴涓彃鍏ョ殑搴忓垪鍙风殑鍊硷紵 </h3>
+<p>
+ 涓绉嶆柟娉曟槸鍦ㄦ彃鍏ヤ箣鍓嶅厛鐢ㄥ嚱鏁 nextval() 浠庡簭鍒楀璞¢噷妫绱㈠嚭涓嬩竴涓 SERIAL 鍊硷紝鐒跺悗鍐嶇敤姝ゅ肩簿纭湴鎻掑叆銆備娇鐢
+ <a href="#4.11.1"> 4.11.1</a> 閲岀殑渚嬭〃锛屽彲鐢ㄤ吉鐮佽繖鏍锋弿杩帮細
+
+</p>
+<pre>
+ new_id = execute("SELECT nextval('person_id_seq')");
+ execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");
+</pre>
+<p>
+ 杩欐牱杩樿兘鍦ㄥ叾浠栨煡璇腑浣跨敤瀛樻斁鍦 new_id 閲岀殑鏂板硷紙渚嬪锛屼綔涓哄弬鐓 person 琛ㄧ殑澶栭敭锛夈
+ 娉ㄦ剰鑷姩鍒涘缓鐨 SEQUENCE 瀵硅薄鐨勫悕绉板皢浼氭槸 <<i>table</i>>_<<i>serialcolumn</i>>_<i>seq</i>锛
+ 杩欓噷 table 鍜 serialcolumn 鍒嗗埆鏄綘鐨勮〃鐨勫悕绉板拰浣犵殑 SERIAL 瀛楁鐨勫悕绉般
+</p>
+<p>
+ 绫讳技鐨勶紝鍦 SERIAL 瀵硅薄缂虹渷鎻掑叆鍚庝綘鍙互鐢ㄥ嚱鏁 currval() 妫绱㈠垰璧嬪肩殑 SERIAL 鍊硷紝渚嬪锛
+
+</p>
+<pre>
+ execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");
+ new_id = execute("SELECT currval('person_id_seq')");
+</pre>
+
+<h3> <a name="4.11.3"></a>4.11.3) 鍚屾椂浣跨敤 <i>currval()</i> 浼氬鑷村拰鍏朵粬鐢ㄦ埛鐨勫啿绐佹儏鍐靛悧锛 </h3>
+<p>
+ 涓嶄細銆<i>currval()</i> 杩斿洖鐨勬槸浣犳湰娆′細璇濊繘绋嬫墍璧嬬殑鍊艰屼笉鏄墍鏈夌敤鎴风殑褰撳墠鍊笺<br/>
+
+</p>
+
+<h3> <a name="4.11.4"></a>4.11.4) 涓轰粈涔堜笉鍦ㄤ簨鍔″紓甯镐腑姝㈠悗閲嶇敤搴忓垪鍙峰憿锛熶负浠涔堝湪搴忓垪鍙峰瓧娈电殑鍙栧间腑瀛樺湪闂存柇鍛紵 </h3>
+<p>
+ 涓轰簡鎻愰珮骞跺彂鎬э紝搴忓垪鍙峰湪闇瑕佺殑鏃跺欒祴浜堟鍦ㄨ繍琛岀殑浜嬪姟锛屽苟涓斿湪浜嬪姟缁撴潫涔嬪墠涓嶈繘琛岄攣瀹氾紝
+ 杩欏氨浼氬鑷村紓甯镐腑姝㈢殑浜嬪姟鍚庯紝搴忓垪鍙蜂細鍑虹幇闂撮殧銆
+</p>
+
+<h3> <a name="4.12"></a>4.12) 浠涔堟槸 <small>OID</small> 锛熶粈涔堟槸 <small>CTID</small> 锛 </h3>
+
+
+<p>PostgreSQL 閲屽垱寤虹殑姣忎竴琛岃褰曢兘浼氳幏寰椾竴涓敮涓鐨<small>OID</small>锛岄櫎闈炲湪鍒涘缓琛ㄦ椂浣跨敤<small>WITHOUT OIDS</small>閫夐」銆
+ <small>OID</small>鍒涘缓鏃朵細鑷姩鐢熸垚涓涓4瀛楄妭鐨勬暣鏁帮紝鎵鏈 OID 鍦ㄧ浉搴擯ostgreSQL鏈嶅姟鍣ㄤ腑鍧囨槸鍞竴鐨勩 鐒惰岋紝瀹冨湪瓒呰繃40浜挎椂灏嗘孩鍑猴紝
+ <small>OID</small>姝ゅ悗浼氬嚭鐜伴噸澶嶃侾ostgreSQL 鍦ㄥ畠鐨勫唴閮ㄧ郴缁熻〃閲屼娇鐢 OID 鍦ㄨ〃涔嬮棿寤虹珛鑱旂郴銆
+</p>
+<p>
+ 鍦ㄧ敤鎴风殑鏁版嵁琛ㄤ腑锛屾渶濂芥槸浣跨敤<small>SERIAl</small>鏉ヤ唬鏇<small>OID</small>
+
+ 鍥犱负<small>SERIAL</small>鍙淇濊瘉鍦ㄥ崟涓〃涓殑鏁板兼槸鍞竴鐨勫氨鍙互浜嗭紝杩欐牱瀹冩孩鍑虹殑鍙兘鎬у氨闈炲父灏忎簡锛
+ <small>SERIAL8</small>鍙敤鏉ヤ繚瀛8瀛楄妭鐨勫簭鍒楁暟鍊笺
+</p>
+
+<p>
+ <small>CTID</small> 鐢ㄤ簬鏍囪瘑甯︾潃鏁版嵁鍧楋紙鍦板潃锛夊拰锛堝潡鍐咃級鍋忕Щ鐨勭壒瀹氱殑鐗╃悊琛屻
+ <small>CTID</small> 鍦ㄨ褰曡鏇存敼鎴栭噸杞藉悗鍙戠敓鏀瑰彉銆傜储寮曟暟鎹娇鐢ㄥ畠浠寚鍚戠墿鐞嗚銆
+</p>
+
+
+
+<h3> <a name="4.13"></a>4.13) 涓轰粈涔堟垜鏀跺埌閿欒淇℃伅鈥<i>ERROR: Memory exhausted in AllocSetAlloc()</i>鈥濓紵 </h3>
+<p>
+ 杩欏緢鍙兘鏄郴缁熺殑铏氭嫙鍐呭瓨鐢ㄥ厜浜嗭紝鎴栬呭唴鏍稿鏌愪簺璧勬簮鏈夎緝浣庣殑闄愬埗鍊笺傚湪鍚姩 postmaster 涔嬪墠璇曡瘯涓嬮潰鐨勫懡浠わ細
+</p>
+<pre>
+ ulimit -d 262144
+ limit datasize 256m
+</pre>
+<p>
+ 鍙栧喅浜庝綘鐢ㄧ殑 shell锛屼笂闈㈠懡浠ゅ彧鏈変竴鏉¤兘鎴愬姛锛屼絾鏄畠灏嗘妸浣犵殑杩涚▼鏁版嵁娈甸檺鍒惰寰楁瘮杈冮珮锛
+ 鍥犺屼篃璁歌兘璁╂煡璇㈠畬鎴愩傝繖鏉″懡浠ゅ簲鐢ㄤ簬褰撳墠杩涚▼锛屼互鍙婃墍鏈夊湪杩欐潯鍛戒护杩愯鍚庡垱寤虹殑瀛愯繘绋嬨
+ 濡傛灉浣犳槸鍦ㄨ繍琛孲QL瀹㈡埛绔椂鍥犱负鍚庡彴杩斿洖浜嗗お澶氱殑鏁版嵁鑰屽嚭鐜伴棶棰橈紝璇峰湪杩愯瀹㈡埛绔箣鍓嶆墽琛屼笂杩板懡浠ゃ
+
+</p>
+
+<h3> <a name="4.14"></a>4.14) 鎴戝浣曟墠鑳界煡閬撴墍杩愯鐨凱ostgreSQL鐨勭増鏈紵 </h3>
+<p>
+ 浠 psql 閲岋紝杈撳叆 <code>SELECT version();</code>鎸囦护銆
+</p>
+
+<h3> <a name="4.15"></a>4.15) 鎴戝浣曞垱寤轰竴涓己鐪佸兼槸褰撳墠鏃堕棿鐨勫瓧娈碉紵 </h3>
+<p>
+ 浣跨敤 CURRENT_TIMESTAMP锛
+
+</p>
+<pre>
+ CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
+</pre>
+
+
+<h3> <a name="4.16"></a>4.16) 鎴戞庢牱杩涜 outer join 锛堝杩炴帴锛夛紵 </h3>
+<p>PostgreSQL 閲囩敤鏍囧噯鐨 SQL 璇硶鏀寔澶栬繛鎺ャ傝繖閲屾槸涓や釜渚嬪瓙锛</p>
+<pre>
+ SELECT *
+ FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
+</pre>
+<p>鎴栨槸</p>
+
+<pre>
+ SELECT *
+ FROM t1 LEFT OUTER JOIN t2 USING (col);
+</pre>
+<p>
+ 杩欎袱涓瓑浠风殑鏌ヨ鍦 t1.col 鍜 t2.col 涓婂仛杩炴帴锛屽苟涓旇繑鍥 t1 涓墍鏈夋湭杩炴帴鐨勮锛堥偅浜涘湪 t2 涓病鏈夊尮閰嶇殑琛岋級銆
+ 鍙砙澶朷杩炴帴锛圧IGHT OUTER JOIN锛夊皢杩斿洖 t2 涓湭杩炴帴鐨勮銆
+ 瀹屽叏澶栬繛鎺ワ紙FULL OUTER JOIN锛夊皢杩斿洖 t1 鍜 t2 涓湭杩炴帴鐨勮銆
+ 鍏抽敭瀛 OUTER 鍦ㄥ乏[澶朷杩炴帴銆佸彸[澶朷杩炴帴鍜屽畬鍏╗澶朷杩炴帴涓槸鍙夌殑锛屾櫘閫氳繛鎺ヨ绉颁负鍐呰繛鎺ワ紙INNER JOIN锛夈
+</p>
+
+
+<h3> <a name="4.17"></a>4.17) 濡備綍浣跨敤娑夊強澶氫釜鏁版嵁搴撶殑鏌ヨ锛 </h3>
+<p>
+ 娌℃湁鍔炴硶鏌ヨ褰撳墠鏁版嵁搴撲箣澶栫殑鏁版嵁搴撱
+ 鍥犱负PostgreSQL瑕佸姞杞戒笌鏁版嵁搴撶浉鍏崇殑绯荤粺鐩綍锛堢郴缁熻〃锛夛紝鍥犳璺ㄦ暟鎹簱鐨勬煡璇㈠浣曟墽琛屾槸涓嶅畾鐨勩
+</p>
+
+<p>
+ 闄勫姞澧炲兼ā鍧梒ontrib/dblink鍏佽閲囩敤鍑芥暟璋冪敤瀹炵幇璺ㄥ簱鏌ヨ銆傚綋鐒剁敤鎴蜂篃鍙互鍚屾椂杩炴帴鍒颁笉鍚岀殑鏁版嵁搴撴墽琛屾煡璇㈢劧鍚庡湪瀹㈡埛绔悎骞剁粨鏋溿
+</p>
+
+<h3> <a name="4.18"></a>4.18) 濡備綍璁╁嚱鏁拌繑鍥炲琛屾垨澶氬垪鏁版嵁锛 </h3>
+<p>
+ 鍦ㄥ嚱鏁颁腑杩斿洖鏁版嵁璁板綍闆嗙殑鍔熻兘鏄緢瀹规槗浣跨敤鐨勶紝璇︽儏鍙傝锛
+ <a href="http://techdocs.postgresql.org/guides/SetReturningFunctions">http://techdocs.postgresql.org/guides/SetReturningFunctions</a>
+</p>
+
+<h3> <a name="4.19"></a>4.19) 涓轰粈涔堟垜鍦ㄤ娇鐢≒L/PgSQL鍑芥暟瀛樺彇涓存椂琛ㄦ椂浼氭敹鍒伴敊璇俊鎭渞elation with OID ##### does not exist鈥濓紵 </h3>
+
+<p>
+ PL/PgSQL浼氱紦瀛樺嚱鏁扮殑鑴氭湰鍐呭锛岀敱姝ゅ甫鏉ョ殑涓涓笉濂界殑鍓綔鐢ㄦ槸鑻ヤ竴涓 PL/PgSQL
+ 鍑芥暟璁块棶浜嗕竴涓复鏃惰〃锛岀劧鍚庤琛ㄨ鍒犻櫎骞堕噸寤轰簡锛屽垯鍐嶆璋冪敤璇ュ嚱鏁板皢澶辫触锛
+ 鍥犱负缂撳瓨鐨勫嚱鏁板唴瀹逛粛鐒舵寚鍚戞棫鐨勪复鏃惰〃銆傝В鍐崇殑鏂规硶鏄湪 PL/PgSQL 涓敤<small>EXECUTE</small>
+ 瀵逛复鏃惰〃杩涜璁块棶銆傝繖鏍蜂細淇濊瘉鏌ヨ鍦ㄦ墽琛屽墠鎬讳細琚噸鏂拌В鏋愩
+</p>
+
+<h3> <a name="4.20"></a>4.20) 鐩墠鏈夊摢浜涙暟鎹鍒舵柟妗堝彲鐢紵 </h3>
+<p>
+ 鈥滃鍒垛濆彧鏄竴涓湳璇紝鏈夊ソ鍑犵澶嶅埗鎶鏈彲鐢紝姣忕閮芥湁浼樼偣鍜岀己鐐癸細
+</p>
+<p>
+
+ 涓/浠庡鍒舵柟寮忔槸鍏佽涓涓富鏈嶅姟鍣ㄦ帴鍙楄/鍐欑殑鐢宠锛岃屽涓粠鏈嶅姟鍣ㄥ彧鑳芥帴鍙楄/<small>SELECT</small>鏌ヨ鐨勭敵璇凤紝
+ 鐩墠鏈娴佽涓斿厤璐圭殑涓/浠嶱ostgreSQL澶嶅埗鏂规鏄
+ <a href="http://gborg.postgresql.org/project/slony1/projdisplay.php">Slony-I </a>銆
+</p>
+<p>
+ 澶氫釜涓绘湇鍔″櫒鐨勫鍒舵柟寮忓厑璁稿皢璇/鍐欑殑鐢宠鍙戦佺粰澶氬彴鐨勮绠楁満锛岃繖绉嶆柟寮忕敱浜庨渶瑕佸湪澶氬彴鏈嶅姟鍣ㄤ箣闂村悓姝ユ暟鎹彉鍔
+ 鍙兘浼氬甫鏉ヨ緝涓ラ噸鐨勬ц兘鎹熷け锛<a href="http://pgfoundry.org/projects/pgcluster/">Pgcluster</a>鏄洰鍓嶈繖绉嶆柟妗
+ 涓渶濂界殑锛岃屼笖杩樺彲浠ュ厤璐逛笅杞姐
+</p>
+<p>
+ 涔熸湁涓浜涘晢涓氶渶浠樿垂鍜屽熀浜庣‖浠剁殑鏁版嵁澶嶅埗鏂规锛屾敮鎸佷笂杩板悇绉嶅鍒舵ā鍨嬨
+</p>
+
+
+<h3> <a name="4.21">4.21</a>) 涓轰綍鏌ヨ缁撴灉鏄剧ず鐨勮〃鍚嶆垨鍒楀悕涓庢垜鐨勬煡璇㈣鍙ヤ腑鐨勪笉鍚岋紵涓轰綍澶у啓鐘舵佷笉鑳戒繚鐣欙紵 </h3>
+
+<p>
+ 鏈甯歌鐨勫師鍥犳槸鍦ㄥ垱寤鸿〃鏃跺琛ㄥ悕鎴栨槸鍒楀悕浣跨敤浜嗗弻寮曞彿鈥溾濓紝褰撲娇鐢ㄤ簡鍙屽紩鍙峰悗锛岃〃鍚嶆垨鍒楀悕锛堢О涓烘爣璇嗙锛夊瓨鍌ㄦ椂鏄尯鍒
+<a href="http://www.postgresql.org/docs/8.0/static/sql-syntax.html#SQL-SYNTAX-IDENTIFIERS">澶у皬鍐欑殑</a>锛
+ 杩欐剰璋撶潃浣犲湪鏌ヨ鏃惰〃鍚嶆垨鍒楀悕涔熷簲浣跨敤鍙屽紩鍙凤紝涓浜涘伐鍏疯蒋浠讹紝鍍弍gAdmin浼氬湪鍙戝嚭鍒涘缓琛ㄧ殑鎸囦护鏃惰嚜鍔ㄥ湴鍦ㄦ瘡涓爣璇嗙涓婂姞鍙屽紩鍙枫
+ 鍥犳锛屼负浜嗘爣璇嗙鐨勭粺涓锛屼綘搴旇锛
+</p>
+<ul>
+<li>鍦ㄥ垱寤鸿〃鏃堕伩鍏嶅皢鏍囪瘑绗︿娇鐢ㄥ弻寮曞彿寮曡捣鏉ャ</li>
+<li>鍦ㄦ爣璇嗙涓彧浣跨敤灏忓啓瀛楁瘝銆</li>
+
+<li>锛堜负浜嗕笌宸插瓨鍦ㄧ殑鏍囪瘑绗︾浉鍚岋級鍦ㄦ煡璇腑浣跨敤鍙屽紩鍙峰皢鏍囪瘑绗﹀紩璧锋潵銆</li>
+</ul>
+
+</body>
+
+</html>
\ No newline at end of file diff --git a/doc/src/FAQ/FAQ_czech.html b/doc/src/FAQ/FAQ_czech.html index 9eea7cee0ea..7baa4c0dea9 100644 --- a/doc/src/FAQ/FAQ_czech.html +++ b/doc/src/FAQ/FAQ_czech.html @@ -163,7 +163,7 @@ <P>PostgreSQL je p鴈dm靦em n醩leduj韈韈h autorsk齝h pr醰:</P> - <P>D韑桧 Copyright (c) 1996-2006, PostgreSQL Global Development Group + <P>D韑桧 Copyright (c) 1996-2007, PostgreSQL Global Development Group D韑桧 Copyright (c) 1994-6, Regents of the University of California</P> <P>Ud靗uje se opr醰n靚 k u緄t, rozmno緊v醤, prov醖靚 鷓rav a diff --git a/doc/src/FAQ/FAQ_french.html b/doc/src/FAQ/FAQ_french.html index d34953b5222..e615e6d7a0e 100644 --- a/doc/src/FAQ/FAQ_french.html +++ b/doc/src/FAQ/FAQ_french.html @@ -193,7 +193,7 @@ <P>PostgreSQL Data Base Management System</P> - <P>Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group + <P>Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group Portions Copyright (c) 1994-6 Regents of the University of California</P> <P>Permission to use, copy, modify, and distribute this software diff --git a/doc/src/FAQ/FAQ_german.html b/doc/src/FAQ/FAQ_german.html index c5a865d8792..1b7c161965b 100644 --- a/doc/src/FAQ/FAQ_german.html +++ b/doc/src/FAQ/FAQ_german.html @@ -161,7 +161,7 @@ href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</a>).</p> <p>PostgreSQL Data Base Management System</p> - <P>Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group + <P>Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group Portions Copyright (c) 1994-6 Regents of the University of California</P> <p>Permission to use, copy, modify, and distribute this software diff --git a/doc/src/FAQ/FAQ_japanese.html b/doc/src/FAQ/FAQ_japanese.html index ed98d9fff36..a2ed05b6571 100644 --- a/doc/src/FAQ/FAQ_japanese.html +++ b/doc/src/FAQ/FAQ_japanese.html @@ -167,7 +167,7 @@ href="mailto:juk at PostgreSQL.jp">juk at PostgreSQL.jp</a>)<br /></p> </pre></small> <p>PostgreSQL Data Base Management System</p> <p> - Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group + Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group Portions Copyright (c) 1994-1996 Regents of the University of California</p> <p> Permission to use, copy, modify, and distribute this software and its diff --git a/doc/src/FAQ/FAQ_polish.html b/doc/src/FAQ/FAQ_polish.html index c7387c39de9..1f12fc51d3c 100644 --- a/doc/src/FAQ/FAQ_polish.html +++ b/doc/src/FAQ/FAQ_polish.html @@ -213,7 +213,7 @@ <P>PostgreSQL Data Base Management System</P> - <P>Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group + <P>Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group Portions Copyright (c) 1994-6 Regents of the University of California</P> <P>Permission to use, copy, modify, and distribute this software diff --git a/doc/src/FAQ/FAQ_turkish.html b/doc/src/FAQ/FAQ_turkish.html index 41f90ba4947..0a59b441630 100644 --- a/doc/src/FAQ/FAQ_turkish.html +++ b/doc/src/FAQ/FAQ_turkish.html @@ -159,7 +159,7 @@ adreslerinde g鰎黮ebilir.</p> <h4><a name="1.2">1.2</a>) PostgreSQL'in haklar nedir?</h4> <p>PostgreSQL Data Base Management System</p> - <P>Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group + <P>Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group Portions Copyright (c) 1994-6 Regents of the University of California</P> <p>Permission to use, copy, modify, and distribute this software |