-
Bruce Momjian authored
and a Simplified version (China (PRC)). Backpatch to 8.2.X. Daojing.Zhou
Bruce Momjian authoredand a Simplified version (China (PRC)). Backpatch to 8.2.X. Daojing.Zhou
FAQ_chinese_simp 29.10 KiB
PostgreSQL 常FAQ
2007 年 1 30 17:37:01 EST
2007 年 2 1 12:55:04 CST
维人Bruce Momjian (pgman@candle.pha.pa.us)
维人Daojing.Zhoudoudou586@gmail.com
档以
http://www.postgresql.org/files/documentation/faqs/FAQ.html
系平http://www.postgresql.org/docs/faq/
_________________________________________________________________
常
1.1)PostgreSQL 该
1.2)管PostgreSQL
1.3)PostgreSQL
1.4)PostgreSQL以系平
1.5)PostgreSQL
1.6)PostgreSQL
1.7)对PostgreSQL
1.8)交个BUG
1.9)解已 BUG 缺
1.10)档
1.11)该 SQL
1.12)交补
1.13)PostgreSQL 系起
1.14)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级容
3.7)(使PostgreSQL)使计硬件
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() 导
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.21) 为询示表询中
为大
_________________________________________________________________
常
1.1)PostgreSQL 该
PostgreSQL 读 Post-Gres-Q-L称为Postgres
人载声件 MP3
PostgreSQL
系系 系
代 DBMS 系使强PostgreSQL
费并代 以
PostgreSQL
主为们并系个社
项被任
请人常FAQ
http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html
1.2) PostgreSQL
寻PostgreSQL人中
央 --- 为个
们确个
CVS管工设主为管工
对PostgreSQL PostgreSQL项任人
人社 就订件表讨论
PostgreSQL详 人常 (Developer's FAQ)
信
1.3)PostgreSQL?
PostgreSQLBSD许使PostgreSQL
以PostgreSQL代 以就 软件
们追责任就软件中
须以声就们使BSD声容
PostgreSQL管系
c1996-2005PostgreSQL c1994-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
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.
任 大 使
软件档导对任人
伴失责任使 大
已建议失
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.
大确任
份软件 大
没责任维强修
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.
1.4)PostgreSQL 以系平
说任对 UNIX 容系PostgreSQL
确平
PostgreSQl以微软Windows-NT系Win2000
SP4WinXP Win2003已
http://pgfoundry.org/projects/pginstaller载MSDOSWindows
Win95Win98WinMeCygwin模PostgreSQL
个为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.5) PostgreSQL
http://www.postgresql.org/ftp/载FTP
ftp://ftp.PostgreSQL.org/pub/载
1.6) PostgreSQL
PostgreSQL 8.2.1
们计年个主级 个个
1.7) 对PostgreSQL
PostgreSQL社件表为大帮订件表主
http://www.postgresql.org/community/lists/ General
Bug件表个好
主IRCFreeNode(irc.freenode.net)#postgresql为
以使UNIXirc令 irc -c '#postgresql'
"$USER" irc.freenode.net 使IRC客端
个PostgreSQL西(#postgersql-es)
(#postgresql-fr) EFNET个PostgreSQL交
表http://techdocs.postgresql.org/companies.php
1.8) 交个BUG
访
http://www.postgresql.org/support/submitbug填Bug表
访ftpftp://ftp.PostgreSQL.org/pub/
PostgreSQL补
使Bug交表 PostgreSQL件表Bug常以
* 交容个BugBug
* 交容个已Bug并已 TODO任表
* 交Bug已被修
* 交Bug已修补 软件
* 请交详信
+ 系
+ PostgreSQL
+ Bug
+ 信
+ 踪
* 交容个Bug以工
+ 建个补并 个主
+ Bug修被 TODO任表
1.9) 解已 BUG 缺
PostgreSQL 个 SQL:2003 们TODO
表解已Bug表缺计
请常以
* 该已 TODO任表
* 该须 为
+ 符SQL
+ 该大大 代 带好微足
+ 该
* 该被 TODO任表
PostgreSQL使Bug踪系 为们件表中
以TODO任表工
Bug们软件
对影Bug快被修修
CVS信使软件信中
软件
1.10) 档
PostgreSQL大档主详页 /doc
注为 $PGHOME/doc
以线PostgreSQLhttp://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.
Addison-Wesley欢 The Complete Reference SQL,
Groff McGraw-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 大
询触
们们没类继并
以
PostgreSQL类似对快
对 们常
+/- 10%
们须 就没们
认缺稳代 个个 beta
并们示们以稳
产使们信们软件
们件表个常大人以帮解碰
任们解软
件并解
人群触使PostgreSQL
好以人
1.7
价
们对任费
以 产 们代 们
声声 BSD容
1.14) PostgreSQL以个家?
PostgreSQL 8.0使系中
信8.0以PostgreSQL身
信
_________________________________________________________________
客端
2.1) 们以PostgreSQL交
PostgreSQL(缺)CC项
载项好
们以计
语
PHP访PostgreSQLPerlTCLPython以
http://gborg.postgresql.orgDrivers/Interfaces
并Internet容索
2.2) 工以PostgreSQL Web 页
个以为http://www.webreview.com
对 Web PHP 个好http://www.php.net/
对任人 Perl 使CGI.pmDBD::Pg mod_perl
2.3)PostgreSQL形
人PostgreSQLGUI形工软件
PostgreSQL社档个详表
_________________________________________________________________
系管
3.1) PostgreSQL /usr/local/pgsql 以
configure --prefix 项
3.2)
缺PostgreSQL许 unix TCP/IP
修置件postgresql.conf中
listen_addresses置件$PGDATA/pg_hba.conf
host-based
身份认并PostgreSQL PostgreSQL
3.3) 以好
个主以PostgreSQL
询
主修询以好:
+ 建索表达索
+ 使COPY代个Insert
+ 个SQL个以交
+ 个索记使CLUSTER
+ 个询记使LIMIT
+ 使询Prepared Query)
+ 使ANALYZE以精确计
+ 使 VACUUM pg_autovacuum
+ 大 索建索
置
置件postgres.conf中
设置影表
管//置
解http://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/
3.4)PostgreSQL以
PostgreSQL 类似 log_*
置询计工对
3.5) 为Sorry, too many
clients已太
表示 已达缺100个并 修postgres
ql.conf件max_connections
postmaster并修postmaster
3.6)PostgreSQL级容
PostgreSQL 对次级主Bug修工
7.4.8 级 7.4.9 dump restore
软件
PostgreSQL该 使主尽快
尽管次级PostgreSQL设计
Bug代 以PostgreSQL社认为
级级
主级 7.3 7.4常修系表表
们维件容 中
导dump/中
导reload对主级须
3.7)(使PostgreSQL)使计硬件
计硬件大容人们信计硬件
ECC RAM带 SCSI
硬质主便货 好PostgreSQL
以任硬件
对 系 就 究 硬件
们件表 硬件置价讨论
_________________________________________________________________
4.1) 个询头
并 询中
确 以使LIMIT 个索 ORDER BY中
件PostgreSQL 就头 记
对个询询确
记 使游 (cursor)FETCH
使以记
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询语
PostgreSQL个容SQLINFORMATION SCHEMA
以信
系以pg_ 头系表述表
使 psql -l 令以
以
pgsql/src/tutorial/syscat.source件举系表
信SELECT
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 大表大大以
个就对大2000
建索幸 索对
容MD5索对
并索许对索
4.5) 个件空
个 Postgres
个件 空个件身大5
空
设个 100,000 件个个述
设串平度为20件 2.8 MB
PostgreSQL件大约 6.4 MB:
28 : 头大约
24 : 个段个段
+ 4 : 页
----------------------------------------
56
PostgreSQL 页大 8192 (8 KB)
8192 页
------------------- = 146 /页
56
100000
-------------------- = 685 页
146 /页
685 页 * 8192 /页 = 5,611,520 5.6 MB
索确被索
们大
空NULL 空
4.6) 为询为询没索
并个询使索表大个并
询表记索
为索起读表顺
为
使索PostgreSQL须表计计以使
VACUUM ANALYZE ANALYZE 使计表中
就好索
计对确顺表容
计
索常 ORDER BY
对个大表次顺次常索快
LIMIT ORDER BY
起使常使索 为表中
记
确信PostgreSQL使顺确 以使SET
enable_seqscan TO 'off'令顺
次询 就以使个索确快
使符 LIKE ~ 索使
* 符串须符串就说
+ LIKE 模以 % 头
+ ~ 表达模须以 ^ 头
* 符串以个符模类头 [a-e]
* 大 ILIKE ~* 使索以 4.8
述表达索
* initdb 须缺设置 C
locale 为系C locale个大符
以建个text_pattern_ops索LIKE
索
8.0中
询类索类索常被
对int2,int8索
4.7) 询 估询
EXPLAIN 页
4.8) 表达索大
表达 索大
符 ~ 表达 ~* 大
表达大 LIKE 为 ILIKE
大 常
SELECT *
FROM tab
WHERE lower(col) = 'abc';
使 索以建个使表达
:
CREATE INDEX tabindex ON tab (lower(col));
述索建 UNIQUE约索段身容以
大容UNIQUE约容大
为以使CHECK约件触
4.9) 个询 个段为 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 记
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"类就说头个
度 空声大
类以被缩
空
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
);
转为以SQL
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')");
询使 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() 导
currval() 次
4.11.4) 为常为段
为并
并 就导常中
4.12) OID CTID
PostgreSQL
建记个OID建表使WITHOUT
OIDS项 OID建个4 OID
PostgreSQL 40亿溢 OID
PostgreSQL 系表使 OID 表建系
表好使SERIAl代OID
为SERIAL个表中
就以 溢就常
SERIAL88
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 );
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);
两个价询 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) 让
记容使详
http://techdocs.postgresql.org/guides/SetReturningFunctions
4.19) 为使PL/PgSQL临表误信relation with
OID ##### does not exist
PL/PgSQL容带个好个
PL/PgSQL
访个临表该表被 并建次该
失败 为容临表解 PL/PgSQL
EXECUTE
对临表访 询被解
4.20)
个好 缺
主/许个主读/请个
/SELECT询请 费主/PostgreSQL
Slony-I
个主许读/请计
带严失Pgcluster 中
好以费载
费硬件述模
4.21) 为询示表询为大
常 建表对表使使
称为 符 大
询表使工软件pgAdmin
建表令个 符
为 符 该
* 建表 符使起
* 符使
* 为已 符询使 符起