head	1.7;
access;
symbols
	REL8_0_25:1.1.2.5
	REL8_1_21:1.5
	REL8_0_24:1.1.2.5
	REL8_1_20:1.5
	REL8_0_23:1.1.2.5
	REL8_1_19:1.5
	REL8_0_22:1.1.2.5
	REL8_1_18:1.5
	REL8_0_21:1.1.2.5
	REL8_1_17:1.5
	REL8_0_20:1.1.2.5
	REL8_1_16:1.5
	REL8_0_19:1.1.2.5
	REL8_1_15:1.5
	REL8_0_18:1.1.2.5
	REL8_1_14:1.5
	REL8_0_17:1.1.2.5
	REL8_1_13:1.5
	REL8_0_16:1.1.2.5
	REL8_1_12:1.5
	REL8_0_15:1.1.2.5
	REL8_1_11:1.5
	REL8_0_14:1.1.2.5
	REL8_1_10:1.5
	REL8_0_13:1.1.2.5
	REL8_1_9:1.5
	REL8_0_12:1.1.2.5
	REL8_1_8:1.5
	REL8_2_3:1.5.4.1
	REL8_0_11:1.1.2.5
	REL8_1_7:1.5
	REL8_2_2:1.5.4.1
	REL8_0_10:1.1.2.5
	REL8_1_6:1.5
	REL8_2_1:1.5
	REL8_2_STABLE:1.5.0.4
	REL8_2_0:1.5
	REL8_2_RC1:1.5
	REL8_2_BETA3:1.5
	REL8_2_BETA2:1.5
	REL8_1_5:1.5
	REL8_0_9:1.1.2.5
	REL8_2_BETA1:1.5
	REL8_0_8:1.1.2.5
	REL8_1_4:1.5
	REL8_0_7:1.1.2.5
	REL8_1_3:1.5
	REL8_0_6:1.1.2.5
	REL8_1_2:1.5
	REL8_0_5:1.1.2.5
	REL8_1_1:1.5
	REL8_1_STABLE:1.5.0.2
	REL8_1_0:1.5
	REL8_1_0RC1:1.5
	REL8_1_0BETA4:1.5
	REL8_1_0BETA3:1.5
	REL8_0_4:1.1.2.5
	REL8_1_0BETA2:1.5
	REL8_1_0BETA1:1.5
	REL8_0_STABLE:1.1.0.2;
locks; strict;
comment	@# @;


1.7
date	2007.02.21.16.42.35;	author momjian;	state dead;
branches;
next	1.6;

1.6
date	2007.02.01.04.55.53;	author momjian;	state Exp;
branches;
next	1.5;

1.5
date	2005.06.04.03.28.33;	author momjian;	state Exp;
branches
	1.5.4.1;
next	1.4;

1.4
date	2005.05.17.04.17.47;	author momjian;	state Exp;
branches;
next	1.3;

1.3
date	2005.05.16.02.50.20;	author momjian;	state Exp;
branches;
next	1.2;

1.2
date	2005.05.11.13.36.13;	author momjian;	state Exp;
branches;
next	1.1;

1.1
date	2005.05.11.02.11.05;	author momjian;	state Exp;
branches
	1.1.2.1;
next	;

1.1.2.1
date	2005.05.11.02.13.21;	author momjian;	state Exp;
branches;
next	1.1.2.2;

1.1.2.2
date	2005.05.11.13.36.53;	author momjian;	state Exp;
branches;
next	1.1.2.3;

1.1.2.3
date	2005.05.16.02.50.58;	author momjian;	state Exp;
branches;
next	1.1.2.4;

1.1.2.4
date	2005.05.17.04.18.29;	author momjian;	state Exp;
branches;
next	1.1.2.5;

1.1.2.5
date	2005.06.04.03.33.04;	author momjian;	state Exp;
branches;
next	;

1.5.4.1
date	2007.02.01.04.56.41;	author momjian;	state Exp;
branches;
next	1.5.4.2;

1.5.4.2
date	2007.02.21.16.42.43;	author momjian;	state dead;
branches;
next	;


desc
@@


1.7
log
@Update Chinese FAQs to have two versions, a traditional Chinese version (Taiwan)
and a Simplified version (China (PRC)).

Backpatch to 8.2.X.

Daojing.Zhou
@
text
@
                          PostgreSQL 常FAQ
                                       
   2007 年 1  5   15:40:20 EST
   2007 年 1  29   22:48: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 系起
   
客端

   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容
     _________________________________________________________________
   
客端

  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
   建表令个 符   
   为 符 该
     * 建表 符使起
     *  符使
     * 为已 符询使 符起
@


1.6
log
@Chinese FAQ update

Daojing.Zhou
@
text
@@


1.5
log
@Update Chinese FAQ to fix XHTML format.

Weiping (Laser)
@
text
@d2 1
a2 1
                          PostgreSQL ⣨FAQ
d4 2
a5 1
   £2005  06  02   22:27:35 CST
d7 2
a8 2
   ĿǰάԱBruce Momjian (pgman@@candle.pha.pa.us)
   İάԱdoudou586 doudou586_2005@@yahoo.com.cn
d10 2
a11 2
   ĵ°汾
   http://www.postgresql.org/files/documentation/faqs/FAQ.html鿴
d13 2
a14 1
   ϵͳƽ̨صhttp://www.postgresql.org/docs/faq/ش
d17 1
a17 1

d19 64
a82 61
   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)˿ƺ͹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)ҪʹʲôӲ 
   


   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)ĿǰЩݸƷã
d85 1
a85 1

d87 4
a90 3
    1.1)PostgreSQL ʲôô
    
   PostgreSQL  Post-Gres-Q-LʱҲΪPostgres 
d93 3
a95 3
   ĿĹϵݿϵͳдͳҵݿϵͳйܣͬʱ
   нһ DBMS ϵͳʹõǿԡ PostgreSQL
   ѵģԴ붼Իá
d98 3
a100 3
   ĿҪΪ־ԸߣǱ鲼زͨϵһ
   Ŀκι˾ơ
   뿪飬μԱ⣨FAQ
d103 30
a132 19
    1.2)PostgreSQL İȨʲô?
    
   PostgreSQLķӾ
   BSDȨԴʹûκƣǺϲַʽһ
   ûдı
   
   ʹõBSDȨݣ
   
   ְȨc1996-2005PostgreSQL
   ȫ򿪷С飬ְȨc1994-1996 ݴѧ
   
   Portions copyright (c) 1996-2005, PostgreSQL Global Development
   Group Portions Copyright (c) 1994-6 Regents of the University of
   California
   
   ΪκĿʹã޸ĺͷַĵȡκη
   
   ǩ˶֤ǰİȨͱԼ
   ֳпС
d134 1
a134 1
   Permission to use, copy, modify, and distribute this software and
d138 1
a138 1
   copies.
d140 4
a143 4
   κ£ݴѧеʹôĵµĶκε
   ֱӵģ
   ӵģģӵĻ𻵣ʧΣʹ
   ѧѾЩʧĿʱҲˡ
d145 1
a145 1
   IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY
d149 1
a149 1
   HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
d151 3
a153 4
   ݴѧȷκα֤ĳһض;ҵ
   ֤
   ṩǻڡǡĻģݴѧûṩά
   ֧֣£ǿ޸ĵķ
d155 1
a155 1
   THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
d160 1
a160 1
   UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
d162 9
a170 9
    1.3)PostgreSQL Щϵͳƽ̨ϣ
    
   һ˵һִ UNIX ݵƽ̨ PostgreSQL
   ڰװָг˷ʱȷԵƽ̨
   
   PostgreSQlҲֱڻ΢Windows-NTĲϵͳWin2000Win
   XP  Win2003ɵİװɴ
   http://pgfoundry.org/projects/pginstallerأMSDOSWindows
   ͳ Win95Win98WinMeҪͨCygwinģ⻷PostgreSQL
d172 2
a173 2
   ͬʱҲһΪNovell Netware 6İ汾ɴ http://forge.novell.com
   ȡΪOS/2İ汾ɴ
d175 1
a175 1
   SQL&stype=all&sort=type&dir=%2F
d177 119
a295 82
    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ΪϴƵ
   ʹUNIXircָʽ 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 ԣ
          磺ӲѯͼοԺ͸ӵȡ
          ǻһЩûеԣû̳ͣУͶ汾
          пԼõȡ
d297 4
a300 4
   
          PostgreSQL úͿԴݿƵܡ
          ĳЩȽϿ죬һЩȽ
          ݿȣǵͨ +/- 10%֮䡣
d302 5
a306 7
   ɿ
          ֪ DBMS ǿɿģһöûС
          Ŭ
          ԵģȶĳٵĴ롣ÿ汾һµ beta
          ʱ䣬ǵķʷʾǿṩȶģι̵ģ
          ʹõİ汾
          ⷽݿ൱ġ
d308 7
a314 8
   ֧
          ǵʼбṩһǳĿԱû԰
          κ⡣ ǲܱ֤϶ܽ⣬֮£ DBMS
          Ҳܹṩ
          ֱ뿪ԱûȺֲԴӴ PostgreSQL
          ֱ֧ DBMS
          ҪáһЩҵԵԤװ֧֣ԸṩЩҪˡ
           FAQ  1.5 Сڣ
d316 4
a319 13
   ۸
          Ƕκ;ѣúͷĿġ
          ԲƵĲƷǵĴ룬Щ
          İȨ BSD İȨ⡣
          
    1.13)˿PostgreSQL 
    
   ѰPostgreSQLˣʲôίԱᣬʲô˾
   ֻܷ---ΪһҲڣǵȷһ
   ίԱCVS飬ЩҪΪ˽йǶPos
   tgreSQLпƣPostgreSQLĿκ˾
   ɲμӵĿԱûƵģҪľǼʼб
   ۼɣҪPostgreSQLĿ Developer's FAQ ȡϢ
d322 1
a322 1
ûͻ
d324 23
a346 23
    2.1)ǿʲôԺ PostgreSQL 򽻵
    
   PostgreSQL(ȱʡ)ֻװCǶʽCĽӿڣĽӿڶǶĿ
   ֱܹأЩӿĿĺô
   ǿиԵķƻ͸ԶĿ顣
   
   һЩPHPз PostgreSQL
   ĽӿڣPerl,TCL,PythonԼܶԵĽӿ
   http://gborg.postgresql.org ϵDrivers/InterfacesСڿҵ
   ͨInternet
   
    2.2)ʲô߿԰ PostgreSQL  Web ҳ棿
    
   һݿΪ̨ͦվǣhttp://www.webreview.com
   
    Web ɣPHP һõĽӿڡڣhttp://www.php.net/
   
   ڸӵ񣬺ܶ˲ Perl ӿں CGI.pm  mod_perl 
   
    2.3)PostgreSQL ӵͼû
    
   ǵģ
   http://techdocs.postgresql.org/guides/GUIToolsһϸб
d349 1
a349 1
ϵͳ
d351 16
a366 16
    3.1)ܰ PostgreSQL װ /usr/local/pgsql ĵط
    
    configure ʱ --prefix ѡ
   
    3.2)οӣ
    
   ȱʡʱPostgreSQL ֻͨ unix
   ׽ֻTCP/IPʽԱӡ
   ֻ޸ļpostgresql.confеlisten_addressesҲ
   ļpg_hba.confд Ϊ host-based
   ֤PostgreSQLǲPostgreSQL
   ӵġ
   
    3.3)ݿԻøõܣ
    
   ҪPostgreSQLǱܡ
d368 2
a369 2
   ѯʽı仯
          Ҫ漰޸ĲѯʽԻȡõ:
d371 9
a379 9
          + ʽͲ
          + ʹCOPYInsert䣻
          + SQLһԼύĿ
          + һȡ¼ʱʹCLUSTER
          + һѯȡּ¼ʱʹLIMIT
          + ʹԤʽѯPrepared Query)
          + ʹANALYZEԱ־ȷŻͳƣ
          + ʹ VACUUM  pg_autovacuum
          + дݸʱɾȻؽ
d381 7
a387 7
   
          ļ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
d389 2
a390 2
   Ӳѡ
          ӲܵӰ
d392 1
a392 1
          x.html  http://www.powerpostgresql.com/PerfList/
d394 38
a431 28
    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
   κӲϣ
   ɿԺܶϵͳҪҪȫоһӲ
   ˡǵʼбҲй ӲúԼ۱ȵۡ
d434 1
a434 1

d436 38
a473 38
    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ѯPostg
   reSQLҲṩһSQLINFORMATION SCHEMAӿڣ
   ԴȡݿϢ
   
   ϵͳһЩpg_ ͷϵͳҲ˱Ķ塣
   
   ʹ psql -l ָгеݿ⡣
   
   Ҳһ
   pgsql/src/tutorial/syscat.sourceļо˺ܶɴݿϵͳл
   ȡϢSELECT﷨
   
    4.3)θһֶεͣ
    
   8.0汾һֶεͺףʹ ALTER TABLE ALTER
   COLUMN TYPE 
d475 2
a476 2
   ǰİ汾У
        BEGIN;
d482 1
a482 1
   ȻʹVACUUM FULL tab ָʹϵͳջЧռõĿռ䡣
d484 38
a521 32
    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 ֽ: ҳָԪָ
d523 1
a523 1
     60 ֽÿ
d525 1
a525 1
   PostgreSQL ҳĴС 8192 ֽ (8 KB)
d527 49
a575 55
   8192 ֽÿҳ
   -------------------   =  136 /ҳȡ
     60 ֽÿ

   100000 
   --------------------  =  735 ҳȡ
      128 ÿҳ

   735 ҳ * 8192 ֽ/ҳ  =  6,021,120 ֽڣ6 MB

   ҪôĶģҲȷʵݣҲܺ
   
   
   ֵ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;

   ȷPostgreSQLŻʹ˳ɨǲȷģʹSET
   enable_seqscan TO 'off'ָ
   ȻٴвѯͿԿʹһɨǷȷʵҪһЩ
   
   ʹͨ LIKE  ~ ʱֻضʹã
     * ַĿʼֱַͨҲ˵
          + LIKE ģʽ % ͷ
          + ~ ʽģʽ ^ ͷ
     * ַƥַģʽͷ [a-e]
     * Сд޹صĲң ILIKE  ~* Ȳʹ 4.8
       ĺ
     *  initdb ʱȱʡı C
       localeΪϵͳ֪ڷC localeʱһַʲô
       £Դһtext_pattern_opsLIKE
       
d577 13
a589 12
   8.0֮ǰİ汾УҪѯͺƥ䣬
   δõرǶint2,int8ֵ͵
   
    4.7)βܿѯŻҵĲѯ
    
   ο EXPLAIN ֲҳ
   
    4.8)ʽʹСд޹صʽңд
    д޹زң
    
    ~ ʽƥ䣬 ~*
   Сд޹صʽƥ䡣дЩ޹ص LIKE ֳΪ ILIKE
d591 1
a591 1
   Сд޹صĵʽȽͨд
d596 2
a597 1
   ʹñ׼ǿԴһɱõĺ:
d600 9
a608 4
    4.9)һѯһֶǷΪ NULL
    β׼ȷĳֶǷ NULL ֵ
    
    IS NULL  IS NOT NULL ֶΣ巽£
d613 3
a615 3
   ΪܶԺ NULLֶ򣬿 ORDER BY ʹ IS NULL IS NOT
   NULL ηΪ true Ϊfalse
   ǰ棬ӾͻὫ NULL ļ¼ڽ沿֣
d620 70
a689 70
    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
        );

   ԶתΪ
        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() ᵼºûĳͻrace condition
    
   ᡣcurrval() ص㱾λỰֵûĵǰֵ
   
    4.11.4)Ϊʲô쳣ֹкأΪʲôкֶεȡֵд
    أ
    
   Ϊ߲ԣкҪʱе񣬲֮
   ǰ ͻᵼ쳣ֹкŻּ
d691 2
a692 2
    4.12)ʲô OID ʲô CTID 
    
d694 64
a757 66
   ﴴÿһм¼һΨһOIDڴʱʹWITHOUT
   OIDSѡ OIDʱԶһ4ֽڵ OID 
   PostgreSQL оΨһġ Ȼڳ40ʱ
   OID˺ظPostgreSQL ڲϵͳʹ OID
   ڱ֮佨ϵ
   
   ûݱУʹSERIAlOID
   Ϊ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)úضлУ
    
   ںзݼ¼ĹǺʹõģμ
d760 35
a794 22
    4.19)ΪʲôʹPL/PgSQLȡʱʱյϢrelation with
    OID ##### does not exist
    
   PL/PgSQLỺ溯ݣɴ˴һõĸһ PL/PgSQL
   һʱȻñɾؽˣٴεøúʧܣ
   ΪĺȻָɵʱķ PL/PgSQL
   EXECUTE ʱзʡᱣ֤ѯִǰܻᱻ½
   
    4.27)ĿǰЩݸƷã
    
   ơֻһкüָƼʹãÿֶŵȱ㣺
   
   /ӸƷʽһܶ/д룬ӷֻܽ
   /SELECTѯ룬 Ŀǰѵ/ PostgreSQLƷ
   Slony-I 
   
   ĸƷʽ/д뷢͸̨ļַʽ
   Ҫڶ̨֮ͬݱ䶯
   ܻصʧPgclusterĿǰַ
   õģһء
   
   ҲһЩҵ踶ѺͻӲݸƷָ֧ģ͡
@


1.5.4.1
log
@Backpatch FAQs to stable branch.
@
text
@d2 1
a2 1
                          PostgreSQL 常FAQ
d4 1
a4 2
   2007 年 1  5   15:40:20 EST
   2007 年 1  29   22:48:04 CST
d6 2
a7 2
   维人Bruce Momjian (pgman@@candle.pha.pa.us)
   维人Daojing.Zhoudoudou586@@gmail.com
d9 2
a10 2
   档以
   http://www.postgresql.org/files/documentation/faqs/FAQ.html
d12 1
a12 2
   系平http://www.postgresql.org/docs/faq/
   
d15 1
a15 1
常
d17 61
a77 64
   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 系起
   
客端

   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) 为询示表询中
   为大
d80 1
a80 1
常
d82 3
a84 4
  1.1)PostgreSQL 该
  
   PostgreSQL 读 Post-Gres-Q-L称为Postgres
   人载声件 MP3   
d87 3
a89 3
    系系 系
   代 DBMS 系使强PostgreSQL
   费并代 以
d92 3
a94 3
   主为们并系个社
   项被任
    请人常FAQ
d97 19
a115 30
  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
   
   许为任使修个软件档任费
    并 须署 
   产声段以两段
d117 1
a117 1
   Permission to use, copy, modify, and distribute this software and
d121 1
a121 1
   copies.
d123 4
a126 4
   任 大 使
   软件档导对任人
    伴失责任使 大
   已建议失
d128 1
a128 1
   IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY
d132 1
a132 1
   HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
d134 4
a137 3
    大确任
   份软件  大
   没责任维强修
d139 1
a139 1
   THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
d144 1
a144 1
   UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
d146 9
a154 9
  1.4)PostgreSQL 以系平
  
   说任对 UNIX 容系PostgreSQL
   确平
   
   PostgreSQl以微软Windows-NT系Win2000
   SP4WinXP  Win2003已
   http://pgfoundry.org/projects/pginstaller载MSDOSWindows
    Win95Win98WinMeCygwin模PostgreSQL
d156 2
a157 2
   个为Novell Netware 6
   http://forge.novell.com为OS/2(eComStation)
d159 1
a159 1
   SQL&stype=all&sort=type&dir=%2F 载
d161 87
a247 119
  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 大
          询触
          们们没类继并
          以
d249 7
a255 4
   
          PostgreSQL类似对快
          对 们常
          +/- 10%
d257 8
a264 5
    
          们须 就没们
          认缺稳代 个个 beta
          并们示们以稳
          产使们信们软件
d266 4
a269 7
   
          们件表个常大人以帮解碰
          任们解软
          件并解
          人群触使PostgreSQL
          好以人
          1.7 
d271 8
a278 4
   价 
          们对任费
           以  产 们代 们
          声声 BSD容
d281 1
a281 1
客端
d283 23
a305 23
  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社档个详表
d308 1
a308 1
系管
d310 16
a325 16
  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
d327 2
a328 2
   询
          主修询以好:
d330 9
a338 9
          + 建索表达索
          + 使COPY代个Insert
          + 个SQL个以交
          + 个索记使CLUSTER
          + 个询记使LIMIT
          + 使询Prepared Query)
          + 使ANALYZE以精确计
          + 使 VACUUM  pg_autovacuum
          + 大 索建索
d340 7
a346 7
   置
          置件postgres.conf中
          设置影表
          管//置
          解http://www.varlena.com/varlena/GeneralBits/Tid
          bits/annotated_conf_e.html 
          http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html
d348 2
a349 2
   硬件
          计硬件对影
d351 1
a351 1
          x.html  http://www.powerpostgresql.com/PerfList/
d353 28
a380 38
  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
    以任硬件
    对 系 就 究 硬件
   们件表 硬件置价讨论
d383 1
a383 1

d385 38
a422 38
  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 
d424 2
a425 2
   以以 
   BEGIN;
d431 1
a431 1
    以使VACUUM FULL tab 令使系  空
d433 32
a464 38
  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 : 页
d466 1
a466 1
     56 
d468 1
a468 1
   PostgreSQL 页大 8192  (8 KB)
d470 55
a524 49
   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
       索
d526 12
a537 13
   8.0中
   询类索类索常被
   对int2,int8索
   
  4.7) 询 估询
  
    EXPLAIN 页
   
  4.8)  表达索大 
  表达 索大 
  
   符 ~ 表达 ~* 大 
   表达大  LIKE 为 ILIKE
d539 1
a539 1
   大 常
d544 1
a544 2
    使 索以建个使表达
   :
d547 4
a550 9
   述索建 UNIQUE约索段身容以
   大容UNIQUE约容大
    为以使CHECK约件触
   
   
  4.9) 个询 个段为 NULL 确论
  段 NULL 
  
    IS NULL  IS NOT NULL 个段
d555 3
a557 3
   为对 NULL段 ORDER BY 件使 IS NULL IS NOT
   NULL 修饰符件为 true 件为false 
   就 NULL 记
d562 70
a631 70
  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) 为常为段
  
  
   为并
   并 就导常中
   
d633 2
a634 2
  4.12)  OID  CTID 
  
d636 66
a701 64
   建记个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) 让
  
   记容使详
d704 22
a725 35
  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
   建表令个 符   
   为 符 该
     * 建表 符使起
     *  符使
     * 为已 符询使 符起
@


1.5.4.2
log
@Update Chinese FAQs to have two versions, a traditional Chinese version (Taiwan)
and a Simplified version (China (PRC)).

Backpatch to 8.2.X.

Daojing.Zhou
@
text
@@


1.4
log
@Convert Chinese FAQ to valid XHTML, finally.
@
text
@d4 1
a4 1
   £2003  01  06  һ 22:27:35 CST
d7 1
a7 1
   İάԱΰƽ laser@@pgsqldb.com 
d9 2
a10 2
   ĵ°汾http://www.postgresql.org/files/documentation/fa
   qs/FAQ.html 鿴
d12 1
a12 1
   ϵͳƽ̨صhttp://www.postgresql.org/docs/faq/ش
d15 63
a77 88
                                  
                                      
   1.1) PostgreSQL ʲôô
   1.2) PostgreSQL İȨʲô?
   1.3) PostgreSQL ʲô Unix ƽ̨ϣ
   1.4) õķ Unix ƽ̨Щ
   1.5) Ҵܵõ PostgreSQL
   1.6) Ҵܵõ PostgreSQL ֧֣
   1.7) PostgreSQL µİ汾ʲô
   1.8) Щõ PostgreSQL ĵ
   1.9) ˽֪ BUG ȱʧԣ
   1.10) Ӧѧϰ SQL 
   1.11) PostgreSQL  Y2K ݵ
   1.12) Ӧ뿪飿
   1.13) Ӧύһ BUG 棿
   1.14) PostgreSQL  DBMS Σ
   1.15) Ӧ PostgreSQL 
   
                               ûͻ
                                      
   2.1)  PostgreSQL  ODBC ô
   2.2) ʲô߿԰ PostgreSQL  Web ҳ棿
   2.3) PostgreSQL ӵͼû
   2.4) ǿʲôԺ PostgreSQL 򽻵
   
                                ϵͳ
                                      
   3.1) ܰ PostgreSQL װ /usr/local/pgsql ĵط
   3.2)  postmaster ʱ Bad System Callϵͳô Core
   Dumped Ϊʲô
   3.3) ͼ postmaster ʱ IpcMemoryCreate Ϊʲô
   3.4) ͼ postmaster ʱ IpcSemaphoreCreate
   Ϊʲô
   3.5) οӣ
   3.6) ݿԻøõܣ
   3.7) PostgreSQL Իʲôĵԣ
   3.8) Ϊʲôͼӵ¼ʱյSorry, too many clients Ϣ
   3.9) pgsql_tmp Ŀ¼ﶼЩʲô
   3.10) ΪʲôҪ PostgreSQL 汾ʱ dump  restore 
   
                                  
                                      
   4.1) αͨα֮ʲô
   4.2) ֻѡһѯͷУ
   4.3) λȡһݿбб psql
   ￴Ķ
   4.4) ӱɾһУ
   4.5) һУһһߴǶ٣
   4.6) 洢һ͵ıļҪٴ̿ռ䣿
   4.7) β鿴ݿԼûĶ壿
   4.8) ҵĲѯûΪʲô
   4.9) βܿѯŻҵĲѯģ
   4.10) R-tree ʲô
   4.11) ʲôǻѯŻGenetic Query Optimization
   4.12)
   ʽʹСд޹صʽңд
   Сд޹زң
   4.13) һѯһֶǷΪ NULL
   4.14) ַ֮ʲôͬ
   4.15.1) һк/ԶֶΣ
   4.15.2) λһкŵֵ
   4.15.3) ʹ currval()  nextval() ᵼºûrace
   condition
   4.15.4)
   Ϊʲô쳣ֹкأΪʲôкֶεȡֵдڼ
   أ
   4.16) ʲô OIDʲô TID 
   4.17) PostgreSQL ʹõһЩĺʲô
   4.18) ΪʲôյERROR: Memory exhausted in AllocSetAlloc()
   4.19) β֪е PostgreSQL İ汾
   4.20) ΪʲôҵĴ´invalid large obj
   descriptorǷĴ
   4.21) δһȱʡֵǵǰʱֶΣ
   4.22) Ϊʲôʹ IN Ӳѯô
   4.23) ν outer join ӣ
   4.24) ʹ漰ݿĲѯ
   4.25) úضлУ
   4.26) Ϊʲô PL/PgSQL вܿɿشɾʱ
   4.27) Щݸѡ
   4.28) Щݼѡ
   
                              չ PostgreSQL
                                      
   5.1) дһû庯 psql ʱΪʲôᵼ core
   dump
   5.2) ܸ PostgreSQL һЩͦͺͺ
   5.3) дһһ¼ C 
   5.4) ޸һԴļΪʲô±ûпı䣿
d80 3
a82 3
                                  
                                      
    1.1) PostgreSQL ʲôô
d84 1
a84 1
   PostgreSQL  Post-Gres-Q-L 
d86 4
a89 5
   PostgreSQL һ DBMS о POSTGRES
   ݿϵͳǿ档PostgreSQL ڱ POSTGRES
   ǿģͺͷḻ͵Ļϣһչ˵ SQL
   Ӽȡȵ PostQuel ѯԡPostgreSQL
   ɵĲԴ붼Իá
d91 5
a95 5
   PostgreSQL Ŀɲμ PostgreSQL
   ʼбһԱССĿǰе Marc G. Fournier
   scrappy@@postgreSQL.org
   μμ1.6ڣڸ PostgreSQL
   п
d97 1
a97 9
   PostgreSQL 1.01  Andrew Yu  Jolly
   ChenΪֲԣԺǿ˴סPostgreS
   QL Դ PostgresڼݴѧУ Michael Stonebraker
   ڵָ£оͱְԱɵġ
   
   ڲ Postgres 1995 ꣬ SQL
   ָܺĳ Postgres95 1996ĩŸΪ PostgreSQL
   
    1.2) PostgreSQL İȨʲô?
d99 3
a101 3
   PostgreSQL İȨԼ
   
   PostgreSQL ݿϵͳ
d103 1
a103 1
   PostgreSQL Data Base Management System
d105 2
a106 2
   ְȨc1996-2002PostgreSQL ȫ򿪷С
   ְȨc1994-6 ݴѧ
d108 2
a109 3
   Portions copyright (c) 1996-2002, PostgreSQL Global Development
   Group
   Portions Copyright (c) 1994-6 Regents of the University of
d113 3
a115 2
   ǩ˶֤ǰİȨͱԼ
   ֳпС
d124 3
a126 2
   ֱӵģӵģģӵĻ𻵣ʧ
   ʹݴѧѾЩʧĿʱҲˡ
d135 3
a137 2
   ֤ṩǻڡǡĻģݴѧû
   ṩά֧֣£ǿ޸ĵķ
a144 3
    BSD Ȩһ
   ĿԴȨԴʹδκơϲҲ
   
d146 1
a146 1
    1.3) PostgreSQL ʲô Unix ƽ̨ϣ
d151 4
a154 15
    1.4) õķ Unix ƽ̨Щ
    
   ͻ
   
    libpq C ⣬psqlӿںͿͻӦóɿ MS Windows
   ƽ̨ǿܵġ£ͻ MS Windows Уͨ
   TCP/IP һֵ֧ Unix
   ƽ̨ϵķͨѶ汾аһļ win32.mak 
   Win32 libpq  psql PostgreSQL ҲԺ ODBC ͻͨѶ
   
   
   
   ݿڿͨ Cygwin Cygnus  Unix/NT ֲ Windows
   NT  Win2k Сķ汾 See pgsql/doc/FAQ_MSWIN ļ
   http://www.PostgreSQL.org/docs/faq-mswin.html 
d156 4
a159 1
   ֲ MS Win NT/2000/XP ıĹڽС
d161 1
a161 1
    1.5) Ҵܵõ PostgreSQL
d163 2
a164 2
   PostgreSQL FTPվ
   ftp://ftp.PostgreSQL.org/pubվԲοվҳ
d166 1
a166 1
    1.6) Ҵܵõ PostgreSQL ֧֣
d168 4
a171 6
   Ҫʼбǣpgsql-general@@postgreSQL.orgй
   PostgreSQL ⡣ҪбһʼݣУΪ
        subscribe
        end

   ʼ pgsql-general-request@@postgreSQL.org 
d173 6
a178 6
   ԻȡժҪбҪбʼpgsql-general-digest-req
   uest@@postgreSQL.orgΪ
        subscribe
        end

   ÿбﵽԼ 30k ϢʱժҪͷ͸бĳԱ
d180 1
a180 12
   ԲμӳʼбҪбһʼ
   bugs-request@@postgreSQL.orgΪ
        subscribe
        end

   ԲμӿԱʼбҪбһʼ
   hackers-request@@postgreSQL.orgΪ
        subscribe
        end

   Ĺ PostgreSQL ʼбϢ PostgreSQL  WWW
   ҳҵ
d182 4
a185 4
     http://postgresql.org/
     
    EFNet ﻹһ IRC ƵƵ #PostgreSQL unix irc -c
   '#PostgreSQL' "$USER" irc.phoenix.net
d187 2
a188 2
   ҵֹ֧˾б
   http://www.PostgreSQL.org/users-lounge/commercial-support.html 
d190 1
a190 1
    1.7) PostgreSQL µİ汾ʲô
d192 1
a192 1
   PostgreSQL µİ汾ǰ汾 7.2.3עӦ 7.3.1 ˡ
d194 1
a194 1
   Ǽƻÿĸ·һҪ汾
d196 1
a196 1
    1.8) Щõ PostgreSQL ĵ
d198 3
a200 3
   ڷһЩֲᣬֲҳһЩСĲӡμ /doc
   Ŀ¼עӦΪ $PGHOME/doc㻹 PostgreSQL
   ֲᣬ http://www.PostgreSQL.org/users-lounge/docs/ 
d204 7
a210 4
   http://www.commandprompt.com/ppbook/ 
   http://www.ca.PostgreSQL.org/books/ й PostgreSQL
   Ŀɹ鼮б http://techdocs.PostgreSQL.org/ ռй
   PostgreSQL ļ¡
d212 3
a214 1
   psql һЩ \d ʾͣۼȵϢ
d216 1
a216 1
   ǵ web վĵ
d218 1
a218 1
    1.9) ˽֪ BUG ȱʧԣ
d220 2
a221 2
   PostgreSQL ֧һչ˵ SQL-92 Ӽǵ TODO
   бȡһ֪棬ȱʧԺδƻ
d223 1
a223 1
    1.10) Ӧѧϰ SQL
d225 4
a228 14
    http://www.postgresql.org/docs/awbook.html Ĺ PostgreSQL
    SQLעصˡ
   http://www.commandprompt.com/ppbook һ PostgreSQL
   顣http://www.intermedia.net/support/sql/sqltut.shtmhttp://ourw
   orld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM 
   http://sqlcourse.com һŽ̡̳
   
   һ "Teach Yourself SQL in 21 Days, Second
   Edition"21ѧSQLڶ棩
   http://members.tripod.com/er4ebus/sql/index.htm
   
   ǵûϲ The Practical SQL Handbook, Bowman, Judith S., et
   al., Addison-Wesley   The Complete Reference SQL, Groff et
   al., McGraw-Hill 
d230 1
a230 1
    1.11) PostgreSQL  Y2K ݵ
d232 1
a232 11
   ǣǺ׿ 2000 AD ֮ 2000 BC ֮ǰڡ
   
    1.12) Ӧ뿪飿
    
   ȣµԴ벢Ķ web վ򷢲е PostgreSQL
   ĵΣ pgsql-hackers  pgsql-patches
   ʼб pgsql-patches ύĲ
   
   ڴʮ PostgreSQL CVS 鵵 COMMIT ȨޡǶѾ
   ύ˷ǳĲˣеύ˺ѸϽ࣬
   ύĲǸġ
d234 1
a234 9
    1.13) ӦύһBUG棿
    
    http://www.PostgreSQL.org/bugs/bugs.php  PostgreSQL BugTool
   ҳ, ύһBUGָϡ
   
   ͬҲҪǵ ftp վ
   ftp://ftp.postgreSQL.org/pubûиµ PostgreSQL 汾򲹶
   
    1.14) PostgreSQL  DBMS Σ
d239 4
a242 4
          PostgreSQL ӵд DBMS
          ԣ磺ӲѯͼοԺ
          ͸ӵȡǻһЩûеԣû̳ͣУ
          Ͷ汾пԼõȡ
d245 3
a247 8
          PostgreSQL
          úͿԴݿƵܡĳЩȽϿ죬
          һЩȽ MySQL ݿϵͳȽϣ
          insert/update ʱΪȻ MySQL
          
          κԡǵҪǿɿԺԣÿ
          ηʱϵظĽܡһȤҳȽ PostgreSQL 
          MySQL http://openacs.org/why-not-mysql.html
d250 2
a251 2
          ֪ DBMS
          ǿɿģһöûСŬ
d253 3
a255 2
          ԣǵķʷʾǿṩȶģι̵ģ
          ʹõİ汾ⷽݿ൱ġ
d259 4
a262 3
          κ⡣ǲܱ֤϶ܽ⣬֮£ DBMS
          Ҳܹṩֱ뿪ԱûȺֲԴ
          Ӵ PostgreSQL ֱ֧ DBMS
d264 1
a264 1
          ֧ FAQ  1.6 Сڡ
d267 3
a269 3
          Ƕκ;ѣúͷĿġԲƵ
          ĲƷǵĴ룬ЩİȨ
          BSD İȨ⡣
d271 1
a271 1
    1.15) Ӧ PostgreSQL 
d273 6
a278 13
   Դ1996꿪ʼPostgreSQL Ѿһ֯ЩӦù鹦 Marc
   Fournier˲Щһֱ֯
   
   һԴĿ˵ʩǷǳҪġֹܷӳ
   ĿǰĻҡ
   
   Ȼ֯תɱơάǰи¶ȵġһԵĿ֧
   Ĺ˾ܽо֧ҵ
   http://store.pgsql.com/shopping/ о
   
   Ȼҳἰ PostgreSQL ˾Щ֧ PostgreSQL
   ĿûضĹ˾Ը⣬Ҳʼ֧Ʊϵ
   ַ
d281 3
a283 3
                               ûͻ
                                      
    2.1)  PostgreSQL  ODBC ô
d285 3
a287 4
    ODBC ԻãPsqlODBC  OpenLink ODBC.
   
   http://gborg.postgresql.org/project/psqlodbc/projdisplay.php
    PsqlODBC 
d289 4
a292 3
   OpenLink ODBC Դ http://www.openlinksw.com/ áǵı׼
   ODBC ͻݣκֵ֧Ŀͻƽ̨Win, Mac,
   Unix, VMSʹ PostgreSQL ODBC
d294 1
a294 5
   ǿܽƷ۸ЩҪҵֵ֧ûһ
   freeware İ汾Եõѯ
   postgres95@@openlink.co.uk
   
    2.2) ʲô߿԰ PostgreSQL  Web ҳ棿
d296 1
a296 1
   һݿΪ̨ͦ վǣhttp://www.webreview.com 
d298 1
a298 1
    Web ɣPHP һõĽӿڡڣhttp://www.php.net/ 
d302 1
a302 1
    2.3) PostgreSQL ӵͼû
d304 2
a305 26
   ǵġм PostgreSQL
   ͼνӿڡPgAccesshttp://www.pgaccess.com)PgAdmin II
   http://www.pgadmin.orgWin32 RHDB Admin
   (http://sources.redhat.com/rhdb/ Լ Rekall
   http://www.thekompany.com/products/rekall/
   רе/proprietary)PHPPgAdmin
   http://phppgadmin.sourceforge.net/ һ web  PostgreSQL
   ʽӿڡ
   
   һͼû棬Ϊ PgAccess
   Ҳҳ http://www.pgaccess.org/
   
    2.4) ǿʲôԺ PostgreSQL 򽻵
    
   еıԶз PostgreSQL
   ĽӿڡԵչģб
   
   PostgreSQL а½ӿڣ
     * C (libpq)
     * Embedded C (ecpg)
     * Java (jdbc)
     * Python (PyGreSQL)
     * TCL (libpgtcl)
       
   Ľӿ http://gborg.postgresql.org ϵ Drivers/Interfaces
   Сڡ
d308 3
a310 3
                                ϵͳ
                                      
    3.1) ܰ PostgreSQL װ /usr/local/pgsql ĵط
d314 1
a314 2
    3.2)  postmaster ʱ Bad System Callϵͳô Core
    Dumped Ϊʲô
d316 6
a321 2
   Ǻܶ෽⣬ȼϵͳǷ֧ System V
   չPostgreSQL Ҫںֹ֧ڴźŵơ
d323 1
a323 1
    3.3) ͼ postmaster ʱ IpcMemoryCreate Ϊʲô
d325 1
a325 6
   Ҫôûںȷùڴ棬ҪôҪں˵Ŀù
   ڴ档ҪĹڴȡϵṹ
   postmaster
   ʱʹõĻͺ˽ĿԴϵͳʹȱʡͽ
   ĿʱҪ~1MBйعڴźŵƵϸϢο PostgreSQL
   Administrator's Guide 
d327 27
a353 1
    3.4) ͼ postmaster ʱ IpcSemaphoreCreate Ϊʲô
d355 3
a357 8
   Ϣ IpcSemaphoreCreate: semget failed (No space left on
   device)ôںû㹻źŵԴPostgres
   ÿǱڵĺ̶̨ҪһźŵơһʱĽԱȽٵĺ
   ̨ postmasterʹÿ -N һȱʡֵ 32
   Ĳ postmasterõĽǼӴں˵ SEMMNS 
   SEMMNI 
   
   ݿܴʱźŵƲÿܵϵͳ
d359 1
a359 5
   Ϣʲôܾ͸ûںźŵ֧
   йعڴźŵƵϸϢο PostgreSQL Administrator's
   Guide 
   
    3.5) οӣ
d361 3
a363 4
   ȱʡʱPostgreSQL ֻͨ unix ׽Աӡʹ
   -i  postmasterͨӦı $PGDATA/pg_hba.conf
   ļΪ host-based
   ֤ǲĻӵġ TCP/IP ӡ
d365 1
a365 1
    3.6) ݿԻøõܣ
d367 5
a371 18
   ȻԼٲѯEXPLAIN ۲ PostgreSQL
   νĲѯԼʹЩ
   
   һ INSERTʹ COPY
   ԴķʽСȵһ INSERT
   öࡣΣûд BEGIN WORK/COMMIT
   ֮䱻Ϊͬһһ洦
   䡣ԼĶ⿪ͬݸıʱɾ
   ؽ
   
   мڵѡʹáͨ -o -F ѡ postmaster
   ֹ fsync()ÿ fsync() ˢµϡ
   
   㻹ʹ postmaster -B
   ѡӺ˽ʹõĹڴ滺Ŀõ̫
   postmaster ޷ΪѾ
   ںڹڴռϵơÿ 8K ȱʡ 64
   
d373 1
a373 8
   㻹ʹų̵́ -S
   ѡÿ̨ʱõڴ-S
   ֵKֽڼƵģȱʡ 512 Ҳ˵512K
   
   㻹ʹ CLUSTER ѱݰĳоۼš
   CLUSTER ֲҳȡϸڡ
   
    3.7) PostgreSQL Իʲôĵԣ
d375 6
a380 80
   PostgreSQL
   мڱ״̬ϢЩϢܶԵ;а
   
   ȣͨ --enable-cassert ѡ configureкܶ assert()
   غ̨̺ڷĳЩδԤϵʱֹͣС
   
   postmaster  postgres һЩõѡȣ postmaster
   ʱȷѱ׼ͱ׼һ־ļȥˣ
        cd /usr/local/pgsql
        ./bin/postmaster >server.log 2>&1 &

    PostgreSQL Ŀ¼һ server.log
   ļļʹϢpostmaster һ
   -d ѡѡǻøϸڻ㱨-d
   ѡһֱԼҪǸߵĵԼܻɾ޴
   ־ļ
   
    postmaster ûУֱ postgres
   ̨̣ȻֱӼ SQL 䡣ֻ
   ƼڵԵʱôɡעʱû޶Ƿֺűʾβ
   ŵԷű룬ʹһۿʲô顣Ϊ̨
   û postmaster
   ģǺʵʵлһ£/̨ܲ֡
   
   
    postmaster ѾУһ psqlȻҳ psql Ӧ
   postgres ̵ PIDʹһ postgres PID
   ϡڵöϵ㲢Ҵ psql ִвѯڵ
   postgres  PGOPTIONS="-W n"Ȼ
   psqlӳ n
   룬ͿԸһҸ˳Ĺ̡
   
   postgres  -s-A -t ѡڵԺܲʱǳá
   
   㻹Դ profiling
   ֱ̨֧Ա۲Щռõִʱ϶ࡣprofile ļ
   pgsql/data/base/dbname Ŀ¼¡ͻ profile
   ļڿͻ˵ǰĿ¼¡ Linux ֧ profiling
   Ҫڱʱ-DLINUX_PROFILE 
   
    3.8) Ϊʲôͼӵ¼ʱյSorry, too many clientsϢ
    
   Ҫ postmaster ʱֵ֧Ĳ̨
   
   ȱʡ 32 ̡ͨʵ -N ֵ postmaster
   Ŀ޸ postgresql.conf ļ
   
   Ҫע -N Ϊ 32ͬ -Bȱʡ
   64-B  -N
   Ϊ˸õܿҪǸҪ󡣶ڴĿĺ˽̣
   ܻᷢ㻹Ҫ Unix
   ںòֵҪĶڴߴ磬SHMMAXźŵƵ
   ĿSEMMNS 
   SEMMNIĽNPROCûMAXUPRCԼļ
   ĿNFILE  NINODE Postgres ĺ̨Ƶԭ
   ΪȷϵͳùԴ
   
    Postgres  6.5 İ汾̨ȱʡ
   64Ҷ޸Ҫ޸ include/storage/sinvaladt.h 
   MaxBackendId Ȼ BUILD
   
    3.9) pgsql_tmp Ŀ¼ﶼЩʲô
    
   Ŀ¼±˲ѯִɵʱļ磬ҪΪ ORDER BY
   򣬲ҪȺ̨ -S
   ĸĿռ䣬ôͻᴴһʱļݡ
   
   ʱļӦԶɾк̨˾Ϳֹͣ
    postmaster ɾЩļ
   
    3.10) ΪʲôҪ PostgreSQL 汾ʱ dump  restore 
    
   PostgreSQL ÿС˽ٵ޸,˴ 7.2 
   7.2.1 Ҫ dump  restoreҪ 7.2 
   7.3ͨ޸ϵͳݱڲʽЩ仯һȽϸӣ
   ǲάļݡdump
   ݰͨõĸʽԱ¼زʹµڲʽ
   
   ļʽûб仯 pg_upgrade űҪ dump 
   restor˵script ָ pg_upgrade ԸôǷá
d383 46
a428 32
                                  
                                      
    4.1) αͨα֮ʲô
    
    DECLARE ֲҳȡϢ
   
    4.2)ֻ SELECT һѯͷУ
    
    FETCH ֲҳʹ SELECT ... LIMIT....
   
   ʹֻҪͷļУҲ漰ѯʹô ORDER BY
   Ĳѯһ ORDER BY ƥ䣬PostgreSQL
   ֻܾҪͷ¼򽫶ѯдֱҪ
   
   
    4.3) λȡһб psql ￴Ķ
    
   Ķ psql Դļpgsql/src/bin/psql/describe.c
   Ϊ psql ķб SQL 㻹Դ -E
   ѡ psqlӡִõĲѯ
   
    4.4) ӱɾһУ
    
   7.3  ALTER TABLE DROP
   COLUMNִ֧ܡǰİ汾У
    BEGIN;
    LOCK TABLE old_table;
    SELECT ...  -- select all columns but the one you want to remove
    INTO TABLE new_table
    FROM old_table;
    DROP TABLE old_table;
    ALTER TABLE new_table RENAME TO old_table;
d431 3
a433 1
    4.5) һУһһߴǶ٣
d436 9
a444 8
    һݿߴ磿   ƣ 1TB ݿ⣩
    һߴ磿    16TB
    һеߴ磿      1.6TB
     һֶεߴ?   1GB
    һ     
    һ     й,250-1600
    һ

d446 1
a446 1
   Լ
d448 1
a448 1
   ߴ 16 TB ҪϵͳԴļ֧֡ö 1 GB
d451 1
a451 1
   ȱʡĿС 32K ıߴӡ
d453 1
a453 1
    4.6)洢һ͵ƽļҪٴ̿ռ䣿
d456 2
a457 1
   ݿҪ൱һƽļ洢ͬݵ5Ĵ̿ռ䡣
d459 5
a463 6
   磬һ 100,000
   еļÿһһııƽλ20ֽڡ
   ƽļռ 2.8 MBЩݵ PostgreSQL ݿļԼ 6.4
   MB:
     36 ֽ: ÿеͷֵ
     24 ֽ: һintֶκһıֶ
d466 1
a466 1
     64 ֽÿ
d471 2
a472 2
   -------------------   =  128 /ҳȡ
     64 ֽÿ
d475 1
a475 1
   --------------------  =  782 ҳȡ
d478 1
a478 1
   782 ҳ * 8192 ֽ/ҳ  =  6,406,144 ֽڣ6.4 MB
d483 1
a483 1
   ֵλͼУռúٵĿռ䡣
d485 1
a485 1
    4.7) β鿴ݿԼûĶ壿
d487 3
a489 6
   psql ෴бʾЩϢ \? Щ pg_
   ͷϵͳҲЩϢ psql -l геݿ⡣
   
   Ҳļ
   pgsql/src/tutorial/syscat.sourceʾݿϵͳȡϢ
   Ҫ SELECT
d491 5
a495 9
    4.8) ҵĲѯûΪʲô
    
   ÿѯԶʹֻڱĴСһСֵҲѯֻ
   ѡнСʱʹΪɨ漴̴ȡ
   ֱܱӵضȡ˳ɨ裩ΪжǷʹPostgreSQL
   йرͳֵЩͳֵʹ VACUUM ANALYZE ANALYZE
   áʹͳֵŻ֪жУܹõжǷ
   ͳֵȷŻ˳ӷҲáڱݷ仯ʱ
   ӦڽͳֵĻȡ
d502 1
a502 1
   ʹΪֻ᷵رһС֡ʵϣȻ MAX()  MIN()
d505 8
a512 4
   SELECT col
   FROM tab
   ORDER BY col [ DESC ]
   LIMIT 1;
d516 2
a517 2
     * LIKE ģʽ % ͷ
     * ~ ʽģʽ ^ ͷ
d519 1
a519 1
     * Сд޹صĲң ILIKE  ~* Ȳʹ 4.12
d521 4
a524 1
     *  initdb ʱȱʡı C locale
d526 4
a529 1
    4.9) βܿѯŻҵĲѯģ
d533 2
a534 26
    4.10) R-tree ʲô
    
   R-tree ռݡһϣ޷Χ B-tree
   ֻܴһάķΧR-tree
   Դάݡ磬һΪ point
   ֶϽһ R-tree ôϵͳܸЧػش
   ѡһηΧڵе㡱
    R-Tree Ƶʽǣ
   Guttman, A. "R-Trees: A Dynamic Index Structure for Spatial
   Searching." Proc of the 1984 ACM SIGMOD Int'l Conf on Mgmt of Data,
   45-57.
   㻹 Stonebraker ġReadings in Database
   Systemsҵƪ¡
   ϵͳõ R-Tree ԴκͷΡ˵R-tree
   չΪάʵϣչ R-trees
   ҪһĹĿǰûĵ
   
    4.11) ʲôǻѯŻGenetic Query Optimization
    
   GEQO ģû㷨Genetic
   AlgorithmGAӿӵĲѯŻͨ
   Ӳѯ
   
    4.12)
    ʽʹСд޹صʽдСд
    ޹
d538 1
d540 11
d553 10
a562 5
   WHERE lower(col) = 'abc';
   ʹñ׼ǿԴһɱõĺ:
   CREATE INDEX tabindex ON tab (lower(col));
   
    4.13) һѯһֶǷΪ NULL
d564 7
a570 1
    IS NULL  IS NOT NULL ֶΡ
a571 10
    4.14) ַ֮ʲôͬ
    
    ڲ ˵
   --------------------------------------------------
   "char" char 1ַ character
   CHAR(#) bpchar ַʵݲ㶨峤ʱԿո
   VARCHAR(#) varchar
   ָ󳤶ȣ䳤ַ㶨峤ȵĲֲ
   TEXT text Ƚе󳤶
   BYTEA bytea 䳤ֽУ䳤Ķݣ
d573 4
a576 3
   "varlena"䳤ͣҲ˵ͷĸֽǳ
   ȣݣʵռõĿռĴСҪһЩȻЩ
   ͶԱѹ洢Ҳ TOAST
d578 7
a584 3
   CHAR(n) ʺڴ洢ȻַVARCHAR(n)
   ڴ洢󳤶ȵı䳤ַõġTEXT
   ڴ洢Ƴȵַɴ 1GBYTEA
d586 1
a586 1
   ֽڣƵ0ֵЩ;͵ܡ
d588 1
a588 1
    4.15.1) һк/ԶֶΣ
d591 6
a596 5
   ֶ͡Զһк磬
   CREATE TABLE person (
   id SERIAL,
   name TEXT
   );
d598 7
a604 9
   CREATE SEQUENCE person_id_seq;
   CREATE TABLE person (
   id INT4 NOT NULL DEFAULT nextval('person_id_seq'),
   name TEXT
   );
   CREATE UNIQUE INDEX person_id_key ON person ( id );
   ο create_sequence ֲҳȡеĸϢ㻹ÿе
   oid ֶΪһΨһֵҪ㵹ݿ⣬Ҫʹ
   pg_dump  -o ѡ COPY WITH OIDS ѡԱ OID
d606 1
a606 1
    4.15.2) λһкŵֵ
d609 4
a612 4
   ֵȻʽ롣ʹ 4.15.1 α
   new_id = execute("SELECT nextval('person_id_seq')");
   execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise
   Pascal')");
d614 2
a615 2
   עԶ SEQUENCE ƽ
   <table>_<serialcolumn>_seq table  serialcolumn
d617 1
d619 29
a647 58
   SERIAL ֵ磬
   execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");
   new_id = execute("SELECT currval('person_id_seq')");
   ʹô INSERT ䷵ص OID
   ȱʡֵȱֲԵķ Perl ʹô
   Edmund Mergl  DBD::Pg ģ DBIoid ֵͨ $sth->execute()
    $sth->{pg_oid_status} á
   
    4.15.3) ʹ currval()  nextval() ᵼһû֮
    
   ᡣcurrval() غ̶̨ûĵǰֵ
   
    4.15.4)
    Ϊʲô쳣ֹкأΪʲôкֶεȡֵдڼأ
    
    
   Ϊ߲ԣкҪʱе񣬲ֻ
   ֮ǰͻᵼزкųּ
   
    4.16) ʲô OIDʲô TID
    
   OID  PostgreSQL еΨһʶPostgreSQL
   ﴴÿһжһΨһ OID initdb д OID
   С 16384 μ include/access/transam.hû OID
   ڻֵȱʡʱЩ OID
   һһݿΨһ PostgreSQL
   װҲΨһġ
   PostgreSQL ڲϵͳʹ OID ڱ֮佨ϵЩ OID
   ڱʶضûԼʹֶ OID 洢 OID
   ֵ OID ֶϴһԿٷʡ
   OID һݿʹõ︳ֵС OID
   ĳɱֵһݱĴʼ OID Ŀ
   CREATE TABLE new(old_oid oid, mycol int);
   SELECT old_oid, mycol INTO new FROM old;
   COPY new TO '/tmp/pgtable';
   DELETE FROM new;
   COPY new WITH OIDS FROM '/tmp/pgtable';
   OID
   4ֽڵ棬ڳ40ʱû˱ֹǴ
   ˱֮ǰơ
   TID ڱʶݿ飨ַͣڣƫƵضСTID
   бĻغı䡣ʹָС
   
    4.17) PostgreSQL ʹõһЩĺʲô
    
   һЩԴһЩһĵʹһЩи÷һ
   ֣
   table, relation, class
   row, record, tuple
   column, field, attribute
   retrieve, select
   replace, update
   append, insert
   OID, serial value
   portal, cursor
   range variable, table name, table alias
   һͨݿбhttp://hea-www.harvard.edu/MST/simul/softw
   are/docs/pkgs/pgsql/glossary/glossary.html 
d649 1
a649 1
    4.18) ΪʲôյERROR: Memory exhausted in AllocSetAlloc()
d653 3
a655 2
   ulimit -d 262144
   limit datasize 256m
d658 5
a662 19
   ҲòѯɡӦڵǰ̣Լк
   󴴽ӽ̡SQLͻʱΪ̨̫ݶ
   ⣬пͻ֮ǰִ
   
    4.19) β֪е PostgreSQL İ汾
    
    psql  SELECT version()
   
    4.20) ΪʲôҵĴ´invalid large obj
    descriptorǷĴ
    
   Ҫʹκδǰ BEGIN WORK 
   COMMITҲ˵Χ lo_open ... lo_close
   Ŀǰ PostgreSQL
   ǿʵʩύʱرմûвʱ
   ״ζԴκͼᵼһ invalid large obj
   descriptorԣûʹһǰܹĴ루Ǵ
   ʱ䣩ôһϢ
   ʹÿͻ˽ӿڣ ODBCҪ set auto-commit off
d664 1
a664 1
    4.21) δһȱʡֵǵǰʱֶΣ
d666 1
a666 2
   ʹ CURRENT_TIMESTAMP
   CREATE TABLE test(x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP);
d668 1
a668 1
    4.22) Ϊʲôʹ IN Ӳѯô
d670 4
a673 14
   ĿǰͨΪѯÿһ˳ɨӲѯĽӲѯѯ
   ӲѯУѯغܶУIN
   ִеúܿ졣Ϊ˼ӿ IN ѯִУ EXISTS 滻 IN
   SELECT *
   FROM tab
   WHERE col IN (SELECT subcol FROM subtab);
   Ϊ
   SELECT *
   FROM tab
   WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);
   Ҫִеø죬subcol
   ӦһСϣδķ汾޲ơ
   
    4.23)  outer join ӣ
d676 12
a687 10
   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
   []ӡ[]Ӻȫ[]ǿѡģͨӱΪ
a688 24
   ڴǰİ汾Уӿ UNION  NOT IN
   ģ⡣磬ڱ tab1  tab2 ֮ӣ
   SELECT tab1.col1, tab2.col2
   FROM tab1, tab2
   WHERE tab1.col1 = tab2.col1
   UNION ALL
   SELECT tab1.col1, NULL
   FROM tab1
   WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2)
   ORDER BY col1
   
    4.24) ʹ漰ݿĲѯ
    
   ûа취ѯǰݿ֮ݿ⡣Ϊ PostgreSQL
   ݿصϵͳĿ¼ϵͳݿĲѯִҲδȷ
   contrib/dblink
   úʵֿѯȻͬʱӵͬݿⲢڿͻ
   ϲ
   
    4.25) úضлУ
    
    PL/pgSQL ʹ refcursors ؽο
   http://www.PostgreSQL.org/idocs/index.php?plpgsql-cursors.html,
   23.7.3.3ڡ
d690 1
a690 1
    4.26) Ϊʲô PL/PgSQL вܿɿشɾʱ
d692 6
a697 4
   PL/PgSQL 溯ݣɴ˴һõĸһ PL/PgSQL
   һʱȻñɾؽˣٴεøúʧܣ
   ΪĺȻָɵʱķ PL/PgSQL 
   EXECUTE ʱзʡᱣ֤ѯִǰ·
d699 1
a699 1
    4.27) Щݸѡ
d701 2
a702 5
   м/ӷʽĸѡЩѡֻݿи£ݿֻ
   ܽжҳ http://gborg.PostgreSQL.org/genpage?replication_research
   гЩѡ
   http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php
   ڽһƵĽ
d704 2
a705 1
    4.28) Щݼѡ
d707 4
a710 8
   contrib/pgcrypto ˺ܶ SQL
   ѯʹõļܺܿͻ˵˴ݵΨһ
   pg_hba.conf в hostss 
   7.3 汾Զݿûмܡǰİ汾У
   postgresql.conf д PASSWORD_ENCRYPTION
   ѡڼܵļϵͳϣԴﵽܵĿģ
   ----------------------------------------------------------------------
   ----------
d712 1
a712 3
                              չ PostgreSQL
                                      
    5.1) дһû庯 psql ʱΪʲôᵼ core dump
d714 1
a714 1
   ܶࡣһĲԳвԶ庯
d716 3
a718 4
    5.2) ܸ PostgreSQL һЩͦͺͺ
    
   չ͵ pgsql-hackers ʼбջᱻŵ contrib/
   Ŀ¼
d720 4
a723 6
    5.3) дһһԪ C 
    
    PostgreSQL 7.3 Ժİ汾УC, PL/PgSQL  SQL
   ȫֵַ֧ΪĺϢο Աָϣthe Programmer's
   Guide contrib/tablefunc һ C
   дķֵΪĺ
d725 1
a725 5
    5.4) ޸һԴļΪʲô±ûпı䣿
    
   Makefiles ûаͷļȷmake clean һ
   make ʹõ GCC Բѡ --enable-depend
   ñԶͷļϵ
@


1.3
log
@Update Chinese FAQ to xhtml.
@
text
@d144 1
a144 1
    Portions Copyright (c) 1994-6 Regents of the University of
d280 1
a280 1
   orld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM  
a322 1
          
a339 1
          
a347 1
          
d667 1
a667 1
    psql ෴бʾЩϢ \? Щ pg_
d692 4
a695 4
       SELECT col
       FROM tab
       ORDER BY col [ DESC ]
       LIMIT 1;
d740 3
a742 3
       SELECT *
       FROM tab
       WHERE lower(col) = 'abc';
d744 1
a744 1
       CREATE INDEX tabindex ON tab (lower(col));
d752 5
a756 6
                 ڲ    ˵
     --------------------------------------------------
     "char"        char         1ַ character
     CHAR(#)      bpchar
   ַʵݲ㶨峤ʱԿո
     VARCHAR(#)  varchar
d758 2
a759 2
     TEXT           text         Ƚе󳤶
     BYTEA          bytea       䳤ֽУ䳤Ķݣ
d775 4
a778 4
       CREATE TABLE person (
           id SERIAL,
           name TEXT
           );
d780 6
a785 7
   
       CREATE SEQUENCE person_id_seq;
       CREATE TABLE person (
           id INT4 NOT NULL DEFAULT nextval('person_id_seq'),
           name TEXT
           );
       CREATE UNIQUE INDEX person_id_key ON person ( id );
d794 2
a795 2
       new_id = execute("SELECT nextval('person_id_seq')");
       execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise
d803 2
a804 2
       execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");
       new_id = execute("SELECT currval('person_id_seq')");
d834 5
a838 5
       CREATE TABLE new(old_oid oid, mycol int);
       SELECT old_oid, mycol INTO new FROM old;
       COPY new TO '/tmp/pgtable';
       DELETE FROM new;
       COPY new WITH OIDS FROM '/tmp/pgtable';
d849 9
a857 9
       table, relation, class
       row, record, tuple
       column, field, attribute
       retrieve, select
       replace, update
       append, insert
       OID, serial value
       portal, cursor
       range variable, table name, table alias
d865 2
a866 2
       ulimit -d 262144
       limit datasize 256m
d892 1
a892 2
       CREATE TABLE test(x int, modtime timestamp DEFAULT
   CURRENT_TIMESTAMP);
d899 3
a901 3
       SELECT *
       FROM tab
       WHERE col IN (SELECT subcol FROM subtab);
d903 3
a905 3
       SELECT *
       FROM tab
       WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);
d912 2
a913 2
       SELECT *
       FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
d915 2
a916 2
       SELECT *
       FROM t1 LEFT OUTER JOIN t2 USING (col);
d925 8
a932 8
       SELECT tab1.col1, tab2.col2
       FROM tab1, tab2
       WHERE tab1.col1 = tab2.col1
       UNION ALL
       SELECT tab1.col1, NULL
       FROM tab1
       WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2)
       ORDER BY col1
d958 1
a958 2
   ܽжҳ
   http://gborg.PostgreSQL.org/genpage?replication_research
@


1.2
log
@Add mention that not all functions are listed.

Update Chinese FAQ for HTML.
@
text
@a90 1
   
a91 1
   
a92 1
   
a701 1
       
d704 4
a708 7
     ַƥַģʽͷ [a-e]
   
     Сд޹صĲң ILIKE  ~* Ȳʹ 4.12
   ĺ
   
      initdb ʱȱʡı C locale
   
@


1.1
log
@Add Chinese FAQ.

laser@@pgsqldb.com
@
text
@d2 5
a6 2
   PostgreSQL ⣨FAQ £2003  01  06  һ
   22:27:35 CST ĿǰάԱBruce Momjian (pgman@@candle.pha.pa.us )
d8 4
a11 2
   ĵ°汾http:
   //www.postgresql.org/files/documentation/faqs/FAQ.html 鿴
d13 118
a130 76
   ----------------------------------------------------------------------
   --  1.1 <#1.1>) PostgreSQL ʲôô 1.2 <#1.2>)
   PostgreSQL İȨʲô? 1.3 <#1.3>) PostgreSQL ʲô Unix
   ƽ̨ϣ 1.4 <#1.4>) õķ Unix ƽ̨Щ 1.5 <#1.5>)
   Ҵܵõ PostgreSQL 1.6 <#1.6>) Ҵܵõ PostgreSQL
   ֧֣ 1.7 <#1.7>) PostgreSQL µİ汾ʲô 1.8 <#1.8>)
   Щõ PostgreSQL ĵ 1.9 <#1.9>) ˽֪ BUG
   ȱʧԣ 1.10 <#1.10>) Ӧѧϰ SQL  1.11 <#1.11>)
   PostgreSQL  Y2K ݵ 1.12 <#1.12>) Ӧ뿪飿
   1.13 <#1.13>) Ӧύһ BUG 棿 1.14 <#1.14>) PostgreSQL
    DBMS Σ 1.15 <#1.15>) Ӧ PostgreSQL 
   ûͻ 2.1 <#2.1>)  PostgreSQL  ODBC ô 2.2
   <#2.2>) ʲô߿԰ PostgreSQL  Web ҳ棿 2.3 <#2.3>)
   PostgreSQL ӵͼû 2.4 <#2.4>) ǿʲôԺ
   PostgreSQL 򽻵 ϵͳ 3.1 <#3.1>) ܰ PostgreSQL
   װ /usr/local/pgsql ĵط 3.2 <#3.2>)  postmaster
   ʱ/ Bad System Call/ϵͳô  Core Dumped Ϊʲô
   3.3 <#3.3>) ͼ postmaster ʱ /IpcMemoryCreate/
   Ϊ ʲô 3.4 <#3.4>) ͼ postmaster ʱ
   /IpcSemaphoreCreate/  Ϊʲô 3.5 <#3.5>)
   οӣ 3.6 <#3.6>)
   ݿԻøõܣ 3.7 <#3.7>) PostgreSQL
   Իʲôĵԣ 3.8 <#3.8>)
   Ϊʲôͼӵ¼ʱյSorry, too many clients Ϣ 3.9
   <#3.9>) pgsql_tmp Ŀ¼ﶼЩʲô 3.10 <#3.10>) ΪʲôҪ
   PostgreSQL 汾ʱ dump  restore   4.1 <#4.1>)
   αͨα֮ʲô 4.2 <#4.2>)
   ֻѡһѯͷУ 4.3 <#4.3>)
   λȡһݿбб /psql /￴
   Ķ 4.4 <#4.4>) ӱɾһУ 4.5 <#4.5>)
   һУһһߴǶ٣ 4.6 <#4.6>)
   洢һ͵ıļҪٴ̿ռ䣿 4.7 <#4.7>)
   β鿴ݿԼûĶ壿 4.8 <#4.8>)
   ҵĲѯûΪʲô 4.9 <#4.9>)
   βܿѯŻҵĲѯģ 4.10 <#4.10>) R-tree
   ʲô 4.11 <#4.11>) ʲôǻѯŻGenetic Query
   Optimization 4.12 <#4.12>)
   ʽʹСд޹صʽң
   дСд޹زң 4.13 <#4.13>)
   һѯһֶǷΪ NULL 4.14 <#4.14>)
   ַ֮ʲôͬ 4.15.1 <#4.15.1>)
   һк/ԶֶΣ 4.15.2 <#4.15.2>)
   λһкŵֵ 4.15.3 <#4.15.3>) ʹ currval() 
   nextval() ᵼºû race condition 4.15.4
   <#4.15.4>) Ϊʲô쳣ֹкأΪʲôк
   εȡֵдڼأ 4.16 <#4.16>) ʲô OIDʲô TID  4.17
   <#4.17>) PostgreSQL ʹõһЩĺʲô 4.18 <#4.18>)
   Ϊʲôյ/ERROR: Memory exhausted in AllocSetAlloc()/
   4.19 <#4.19>) β֪е PostgreSQL İ汾 4.20 <#4.20>)
   ΪʲôҵĴ´/invalid large obj
   descriptorǷĴ/ 4.21 <#4.21>)
   δһȱʡֵǵǰʱֶΣ 4.22 <#4.22>) Ϊʲôʹ IN
   Ӳѯô 4.23 <#4.23>) ν outer join ӣ 4.24
   <#4.24>) ʹ漰ݿĲѯ 4.25 <#4.25>)
   úضлУ 4.26 <#4.26>) Ϊʲô PL/PgSQL
   вܿɿشɾʱ 4.27 <#4.27>) Щݸѡ
   4.28 <#4.28>) Щݼѡ չ PostgreSQL 5.1 <#5.1>)
   дһû庯/ psql/ ʱΪʲôᵼ core
   dump 5.2 <#5.2>) ܸ PostgreSQL
   һЩͦͺͺ 5.3 <#5.3>) дһһ¼
   C  5.4 <#5.4>)
   ޸һԴļΪʲô±ûпı䣿
   ----------------------------------------------------------------------
   --  1.1) PostgreSQL ʲôô PostgreSQL 
   /Post-Gres-Q-L// / PostgreSQL һ DBMS о POSTGRES
   ݿϵͳǿ档 PostgreSQL ڱ POSTGRES
   ǿģͺͷḻ͵Ļϣ һչ˵ SQL
   Ӽȡȵ PostQuel ѯԡPostgreSQL ɵ
   Դ붼Իá PostgreSQL Ŀɲμ PostgreSQL
   ʼбһԱСС Ŀǰе Marc G. Fournier
   scrappy@@postgreSQL.org μμ1.6ڣ
   ڸ PostgreSQL п PostgreSQL 1.01  Andrew Yu 
   Jolly ChenΪֲ
   ԣԺǿ˴סPostgreSQL Դ
   Postgresڼ ݴѧУ Michael Stonebraker
   ڵָ£о ͱְԱɵġ
d132 18
a149 7
   ܺ ָĳ Postgres95 1996ĩŸΪ PostgreSQL
   1.2) PostgreSQL İȨʲô? PostgreSQL İȨԼ PostgreSQL
   ݿϵͳ PostgreSQL Data Base Management System
   ְȨc1996-2002PostgreSQL ȫ򿪷С ְȨc1994-6
   ݴѧ Portions copyright (c) 1996-2002, PostgreSQL Global
   Development Group Portions Copyright (c) 1994-6 Regents of the
   University of California
d151 9
a159 7
   
   ǩ˶֤ǰİȨͱԼ
    пС 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.
d161 9
a169 8
   
   ֱӵģӵģģӵĻ𻵣ʧΣ
    ʹݴѧѾЩʧĿʱҲˡ 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.
d171 24
a194 15
   
   ֤ṩǻڡǡĻģݴѧû
   ά ֧֣£ǿ޸ĵķ 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.
    BSD ȨһĿԴȨԴʹδκ
   ơϲҲı 1.3) PostgreSQL ʲô Unix
   ƽ̨ϣ һ˵һִ UNIX ݵƽ̨ PostgreSQL
   ڰװָ ˷ʱȷԵƽ̨ 1.4) õķ Unix
   ƽ̨Щ ͻ  libpq C
   ⣬psqlӿںͿͻӦóɿ MS Windows ƽ
   ̨ǿܵġ£ͻ MS Windows Уͨ
d196 5
a200 2
   ƽ̨ϵķͨѶ汾а һļ win32.mak 
   Win32 libpq  psql PostgreSQL Ҳ  ODBC ͻͨѶ 
d202 7
a208 3
   NT  Win2k Сķ汾 See /pgsql/doc/FAQ_MSWIN/ ļ
   http://www.PostgreSQL.org/docs/faq-mswin.html  ֲ MS Win
   NT/2000/XP ıĹڽС 1.5) Ҵܵõ PostgreSQL
d210 18
a227 8
   ftp://ftp.PostgreSQL.org/pubվ οվҳ 1.6)
   Ҵܵõ PostgreSQL ֧֣
   Ҫʼбǣpgsql-general@@postgreSQL.org й
   PostgreSQL  ⡣ҪбһʼݣУΪ
   subscribe end ʼ pgsql-general-request@@postgreSQL.org 
   ԻȡժҪбҪбʼpgsql-general-digest-
   request@@postgreSQL.org Ϊ subscribe end ÿбﵽԼ
   30k ϢʱժҪͷ͸бĳԱ
d229 4
a232 1
   bugs-request@@postgreSQL.org Ϊ subscribe end
d234 40
a273 21
   hackers-request@@postgreSQL.org  Ϊ subscribe end Ĺ
   PostgreSQL ʼбϢ PostgreSQL  WWW ҳҵ
   http://postgresql.org/  EFNet ﻹһ IRC ƵƵ
   #PostgreSQL unix irc -c '#PostgreSQL' "$USER"
   irc.phoenix.net ҵֹ֧˾б
   http://www.PostgreSQL.org/users-lounge/commercial-support.html  1.7)
   PostgreSQL µİ汾ʲô PostgreSQL µİ汾ǰ汾
   7.2.3עӦ 7.3.1 ˡ
   Ǽƻÿĸ·һҪ汾 1.8) Щõ PostgreSQL
   ĵ ڷһЩֲᣬֲҳһЩСĲӡμ /doc
   Ŀ¼ע ӦΪ $PGHOME/doc㻹 PostgreSQL
   ֲᣬ http://www.PostgreSQL.org/users-lounge/docs/  
   PostgreSQL ṩ http://www.PostgreSQL.org/docs/awbook.html
   www.PostgreSQL.org/docs/awbook.html> 
   http://www.commandprompt.com/ppbook/ www.commandprompt.com/ppbook/>
    http://www.ca.PostgreSQL.org/books/ www.ca.PostgreSQL.org/books/>
   й PostgreSQL Ŀɹ鼮 
   http://techdocs.PostgreSQL.org/ techdocs.PostgreSQL.org/> ռй
   PostgreSQL ļ¡ /psql/ һЩ \d
   ʾͣۼȵϢ ǵ web
   վĵ 1.9) ˽֪ BUG ȱʧԣ
d275 25
a299 17
   www.postgresql.org/docs/todo.html>
   www.postgresql.org/docs/todo.html>бȡһ֪棬ȱʧ
   Ժδƻ 1.10) Ӧѧϰ SQL 
   http://www.postgresql.org/docs/awbook.html Ĺ PostgreSQL 
   SQLעصˡ http://www.commandprompt.com/ppbook
   www.commandprompt.com/ppbook/> һ PostgreSQL 顣
   http://www.intermedia.net/support/sql/sqltut.shtmhttp:
   //ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM
   ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM> 
   http://sqlcourse.com sqlcourse.com/> һŽ̡̳ һ
   "Teach Yourself SQL in 21 Days, Second Edition"21ѧSQL
   ڶ棩 http://members.tripod.com/er4ebus/sql/index.htm
   members.tripod.com/er4ebus/sql/index.htm> ǵûϲ /The
   Practical SQL Handbook, Bowman, Judith S., et al., Addison-Wesley  /
   / The Complete Reference SQL, Groff et al., McGraw-Hill /
   1.11) PostgreSQL  Y2K ݵ ǣǺ׿ 2000 AD ֮
   2000 BC ֮ǰڡ 1.12) Ӧ뿪飿
d301 1
a301 1
    ĵΣ pgsql-hackers  pgsql-patches
d303 1
d305 57
a361 30
   ύ
   ǳĲˣеύ˺ѸϽ࣬
    ĲǸġ 1.13) ӦύһBUG棿 
   http://www.PostgreSQL.org/bugs/bugs.php  PostgreSQL BugTool ҳ ,
   ύһBUGָϡ ͬҲҪǵ ftp վ
   ftp://ftp.postgreSQL.org/pub ftp.postgresql.org/pub>ûиµ
   PostgreSQL 汾򲹶 1.14) PostgreSQL  DBMS Σ
   кüַԣܣɿԣֺ֧ͼ۸ **
   PostgreSQL ӵд DBMS ԣ磺Ӳѯ
   ͼοԺ͸ӵȡǻһЩûеԣ
   û̳ͣУͶ汾пԼõȡ **
   PostgreSQL úͿԴݿƵܡĳЩȽ
   죬һЩȽ MySQL ݿϵͳȽϣ 
   insert/update ʱΪȻ MySQL 
   / /κԡǵҪǿɿԺԣ
   ÿηʱϵظĽܡһȤҳȽ PostgreSQL 
   MySQL http://openacs.org/why-not-mysql.html *ɿ* ֪ DBMS
   ǿɿģһöûСŬ
   ԵģȶĳٵĴ롣ÿ汾һµ beta 
   ԣǵķʷʾǿṩȶģι̵ģʹ
   İ汾ⷽݿ൱ġ *֧*
   ǵʼбṩһǳĿԱû԰
   ⡣ǲܱ֤϶ܽ⣬֮£ DBMS Ҳ
   ṩֱ뿪ԱûȺֲԴӴ PostgreSQL
   ֱ֧ DBMS ҪáһЩҵԵԤװ֧֣
   ԸṩЩҪˡ֧ FAQ  1.6 Сڡ *۸*
   Ƕκ;ѣúͷĿġԲƵĲ
   ƷǵĴ룬ЩİȨ BSD 
   Ȩ⡣ 1.15) Ӧ PostgreSQL  Դ1996꿪ʼPostgreSQL
   Ѿһ֯ЩӦù鹦 Marc
d363 1
d365 2
a366 1
   Ŀ ǰĻҡ
d368 14
a381 8
    Ĺ˾ܽо֧ҵ
   http://store.pgsql.com/shopping/ store.pgsql.com/shopping/> 
    Ȼҳἰ PostgreSQL ˾Щ֧
   PostgreSQL Ŀ
   ûضĹ˾Ը⣬Ҳʼ֧Ʊϵַ
   ----------------------------------------------------------------------
   -- ûͻ 2.1)  PostgreSQL  ODBC ô  ODBC
   ԻãPsqlODBC  OpenLink ODBC.
d383 6
a388 4
    PsqlODBC  OpenLink ODBC Դ http://www.openlinksw.com/
   áǵı׼ ODBC
   ͻݣκֵ֧Ŀͻƽ̨Win, Mac, Unix,
   VMSʹ PostgreSQL ODBC
d390 5
a394 2
   freeware İ汾Եõѯ postgres95@@openlink.co.uk
    2.2) ʲô߿԰ PostgreSQL  Web ҳ棿
d396 1
d398 8
a405 4
   ڸӵ񣬺ܶ˲ Perl ӿں CGI.pm  mod_perl  2.3)
   PostgreSQL ӵͼû ǵġм PostgreSQL
   ͼνӿڡPgAccesshttp: //www.pgaccess.com)PgAdmin II
   http://www.pgadmin.org Win32 RHDB Admin
d408 4
a411 3
   רе/proprietary) PHPPgAdmin
   http://phppgadmin.sourceforge.net/ phppgadmin.sourceforge.net/>
   һ web  PostgreSQL ʽ ڡ
d413 32
a444 13
   Ҳ ҳ http://www.pgaccess.org/ 2.4)
   ǿʲôԺ PostgreSQL 򽻵 еıԶз
   PostgreSQL ĽӿڡԵչģ б PostgreSQL
   а½ӿڣ * C (libpq) * Embedded C (ecpg) * Java (jdbc)
   * Python (PyGreSQL) * TCL (libpgtcl) Ľӿ
   http://gborg.postgresql.org ϵ /Drivers/Interfaces/ Сڡ
   ----------------------------------------------------------------------
   -- ϵͳ 3.1) ܰ PostgreSQL װ /usr/local/pgsql
   ĵط  configure ʱ --prefix ѡ 3.2) 
   postmaster ʱ/ Bad System Call/ϵͳ  Core Dumped
   Ϊʲô Ǻܶ෽⣬ȼϵͳǷ֧
   System V չ PostgreSQL Ҫںֹ֧ڴźŵơ 3.3)
   ͼ postmaster ʱ /IpcMemoryCreate/ Ϊ ʲô
d446 1
a446 1
    ڴ档ҪĹڴȡϵṹ
d449 12
a460 9
   Ŀ ʱҪ~1MBйعڴźŵƵϸϢο PostgreSQL
   Administrator's Guide
   www.postgresql.org/idocs/index.php?kernel-resources.html>  3.4)
   ͼ postmaster ʱ /IpcSemaphoreCreate/  Ϊʲô
   Ϣ /IpcSemaphoreCreate: semget failed (No space left on
   device)/ôںû㹻źŵԴPostgres ÿǱ
   ڵĺ̶̨ҪһźŵơһʱĽԱȽٵĺ̨
    postmasterʹÿ /-N/ һȱʡֵ 32 Ĳ
   postmasterõĽǼӴں˵ SEMMNS  SEMMNI 
d462 1
d464 7
a470 5
    йعڴźŵƵϸϢο PostgreSQL Administrator's
   Guide www.postgresql.org/idocs/index.php?kernel-resources.html> 
   3.5) οӣ ȱʡʱPostgreSQL ֻͨ unix
   ׽Աӡʹ /-i/ 
   /postmaster/**ͨӦı /$PGDATA/pg_hba.conf/
d472 4
a475 2
   ֤ǲĻ ӵġ TCP/IP
   ӡ 3.6) ݿԻøõܣ
d477 18
a494 12
   νĲ ѯԼʹЩ һ
   INSERTʹ COPY ԴķʽС һ
   INSERT öࡣΣûд BEGIN WORK/COMMIT ֮
   䱻Ϊͬһһ洦䡣
   
   Ķ⿪ͬݸıʱɾؽ
   мڵѡʹáͨ /-o -F/ ѡ postmaster
    ֹ fsync()ÿ /fsync() /
   ˢµϡ 㻹ʹ postmaster -B
   ѡӺ˽ʹõĹڴ滺Ŀ
   õ̫postmaster ޷ΪѾ
   ںڹڴռϵơÿ 8K ȱʡ 64 
d496 8
a503 4
   ѡÿ̨ʱõڴ -S
   ֵKֽڼƵģȱʡ 512 Ҳ˵512K 㻹ʹ CLUSTER
   ѱݰĳоۼš CLUSTER
   ֲҳȡϸڡ 3.7) PostgreSQL Իʲôĵԣ
d506 61
a566 42
   ȣͨ --enable-cassert ѡ configureкܶ /assert()/
    غ̨̺ڷĳЩδԤϵʱֹͣС postmaster 
   postgres һЩõѡȣ postmaster
   ʱȷѱ׼ͱ׼һ־ļȥˣ cd
   /usr/local/pgsql ./bin/postmaster >server.log 2>&1 & 
   PostgreSQL Ŀ¼һ server.log ļļ
   ʹϢpostmaster һ -d
   ѡѡ øϸڻ㱨-d
   ѡһֱԼҪǸߵĵ
   Լܻɾ޴־ļ  postmaster
   ûУֱ postgres ̨̣Ȼ ֱӼ
   SQL 䡣*ֻ* ƼڵԵʱôɡעʱû
   ǷֺűʾβŵԷű룬ʹһ
    ʲô顣Ϊ̨û postmaster
   ģǺʵʵ
   һ£/̨ܲ֡  postmaster Ѿ
   Уһ /psql/Ȼҳ /psql/  Ӧ /postgres/
   ̵ PIDʹһ /postgres /PID ϡ
   ڵöϵ㲢Ҵ /psql/ ִвѯڵ
   /postgres/  PGOPTIONS="-W n"Ȼ
   /psql/ ӳ /n/
   룬ͿԸһҸ˳Ĺ̡ postgres 
   -s-A -t ѡڵԺܲʱǳá 㻹Դ
   profiling ֱ̨֧Ա۲Щռõִʱ϶ࡣ profile
   ļ pgsql/data/base/dbname Ŀ¼¡ͻ profile ļ
   ڿͻ˵ǰĿ¼¡ Linux ֧ profiling Ҫڱʱ/-
   DLINUX_PROFILE /  3.8) Ϊʲôͼӵ¼ʱյSorry, too many
   clientsϢ Ҫ postmaster ʱֵ֧Ĳ̨
   ȱʡ 32 ̡ͨʵ /-N/ ֵ postmaster
    Ŀ޸ /postgresql.conf/ ļ Ҫע /-N/
   Ϊ 32ͬ /-B/ȱʡ 64-B  -N
   Ϊ˸õܿҪǸҪ󡣶
   ڴĿĺ˽̣ܻᷢ㻹Ҫ Unix
   ںòֵ
   ҪĶڴߴ磬SHMMAXźŵƵĿSEMMNS
   
   SEMMNIĽNPROCûMAXUPRCԼļ
   ĿNFILE  NINODE Postgres ĺ̨Ƶ
   ΪȷϵͳùԴ  Postgres  6.5
   İ汾̨ȱʡ 64Ҷ޸ Ҫ޸
   /include/storage/sinvaladt.h/  MaxBackendId Ȼ BUILD
   3.9) pgsql_tmp Ŀ¼ﶼЩʲô
d568 3
a570 2
    򣬲ҪȺ̨ -S
   ĸĿռ䣬ôͻᴴһ ʱļݡ
d572 8
a579 6
     postmaster ɾЩļ 3.10) ΪʲôҪ PostgreSQL
   汾ʱ dump  restore  PostgreSQL
   ÿС˽ٵ޸,˴ 7.2  7.2.1 Ҫ
   dump  restoreҪ 7.2  7.3ͨ޸ϵ
   ͳݱڲʽЩ仯һȽϸӣǲάļ
    ݡdump
d581 50
a630 24
   ļʽûб仯 /pg_upgrade/ űҪ dump
    restor˵script ָ /pg_upgrade/ ԸôǷá
   ----------------------------------------------------------------------
   --  4.1) αͨα֮ʲô  DECLARE
   ֲҳȡϢ 4.2)ֻ SELECT һѯͷУ  FETCH
   ֲҳʹ SELECT ... LIMIT....
   ʹֻҪͷļУҲ漰ѯʹô ORDER BY Ĳ
   ѯһ ORDER BY ƥ䣬PostgreSQL
   ֻܾҪͷ
   ¼򽫶ѯдֱҪС 4.3)
   λȡһб /psql/ ￴Ķ
   Ķ /psql/ Դļ/pgsql/src/bin/psql/describe.c/
   Ϊ  psql ķб SQL 㻹Դ /-E/
   ѡ /psql/ӡִõĲѯ 4.4)
   ӱɾһУ 7.3  ALTER TABLE DROP
   COLUMNִ֧ܡǰİ汾У  BEGIN; LOCK
   TABLE old_table; SELECT ... -- select all columns but the one you want
   to remove INTO TABLE new_table FROM old_table; DROP TABLE old_table;
   ALTER TABLE new_table RENAME TO old_table; COMMIT; 4.5)
   һУһһߴǶ٣ һЩƣ
   һݿߴ磿 ƣ 1TB ݿ⣩ һߴ磿
   16TB һеߴ磿 1.6TB һֶεߴ? 1GB һ
    һ й,250-1600
   һ
d632 12
a643 5
   Լ ߴ 16 TB ҪϵͳԴļ֧֡ö 1 GB
   ļ 洢ļϵͳߴǲҪġ ȱʡĿС
   32K ıߴӡ
   4.6)洢һ͵ƽļҪٴ̿ռ䣿 һ Postgres
   ݿҪ൱һƽļ洢ͬݵ5 Ĵ̿ռ䡣
d645 21
a665 9
   еļÿһһı
   ƽλ20ֽڡƽļռ 2.8 MBЩݵ PostgreSQL
   ݿļԼ 6.4 MB: 36 ֽ: ÿеͷֵ 24 ֽ:
   һintֶκһıֶ + 4 ֽ: ҳָԪָ
   ---------------------------------------- 64 ֽÿ PostgreSQL
   ҳĴС 8192 ֽ (8 KB) 8192 ֽÿҳ
   ------------------- = 128 /ҳȡ 64 ֽÿ 100000
    -------------------- = 782 ҳȡ 128 ÿҳ 782
   ҳ * 8192 ֽ/ҳ = 6,406,144 ֽڣ6.4 MB
d667 9
a675 4
    ֵλͼУռúٵĿռ䡣 4.7)
   β鿴ݿԼûĶ壿 / psql/
   ෴бʾЩϢ \? Щ pg_ 
   ͷϵͳҲЩϢ psql -l геݿ⡣
d677 5
a681 3
   /pgsql/src/tutorial/syscat.source/ʾݿ
   ϵͳȡϢҪ SELECT 4.8)
   ҵĲѯûΪʲô
d683 13
a695 12
   ѡ
   нСʱʹΪɨ漴̴ȡ
    ֱӵضȡ˳ɨ裩ΪжǷʹPostgreSQL
    йرͳֵЩͳֵʹ VACUUM ANALYZE ANALYZE
   áʹ
   ͳֵŻ֪жУܹõжǷͳֵ
   
   ȷŻ˳ӷҲáڱݷ仯ʱӦڽ
   ͳ ֵĻȡ ͨ ORDER BY
   ִӡһһ˳ɨ裬һ
   ʽͨɨҪ졣 ǣ LIMIT  ORDER BY ʹʱ
   ʹΪֻ᷵رһ С֡ʵϣȻ MAX()  MIN()
d697 74
a770 39
   ʹȡֵСֵҲǿԵģ SELECT col FROM tab ORDER BY
   col [ DESC ] LIMIT 1; ʹͨ LIKE  ~
   ʱֻضʹã *
   ַĿʼֱַͨҲ˵ o LIKE ģʽ %
   ͷ o ~ ʽģʽ ^ ͷ *
   ַƥַģʽͷ [a-e] *
   Сд޹صĲң ILIKE  ~* Ȳʹ 4.12 
   ĺ *  initdb ʱȱʡı C locale 4.9)
   βܿѯŻҵĲѯģ ο EXPLAIN ֲҳ
   4.10) R-tree ʲô R-tree
   ռݡһϣ޷Χ B-tree 
   ֻܴһάķΧR-tree
   Դάݡ磬 һΪ point
   ֶϽһ R-tree ôϵͳܸЧػش 
   ѡһηΧڵе㡱  R-Tree
   Ƶʽǣ Guttman, A. "R-Trees: A Dynamic Index Structure for
   Spatial Searching." Proc of the 1984 ACM SIGMOD Int'l Conf on Mgmt of
   Data, 45-57. 㻹 Stonebraker ġReadings in Database
   Systemsҵƪ¡ ϵͳõ R-Tree
   ԴκͷΡ˵R-tree չΪ
   άʵϣչ R-trees
   ҪһĹĿǰû ĵ 4.11)
   ʲôǻѯŻGenetic Query Optimization GEQO
   ģû㷨Genetic AlgorithmGAӿӵĲѯŻ
   ͨӲѯ 4.12)
   ʽʹСд޹صʽ
   дСд޹  ~ ʽƥ䣬 ~*
   Сд޹صʽƥ䡣д Щ޹ص LIKE ֳΪ ILIKE
   Сд޹صĵʽȽͨд SELECT * FROM tab WHERE lower(col) =
   'abc'; ʹñ׼ǿԴһɱõĺ:
   CREATE INDEX tabindex ON tab (lower(col)); 4.13)
   һѯһֶǷΪ NULL  IS NULL  IS NOT
   NULL ֶΡ 4.14) ַ֮ʲôͬ  ڲ
   ˵ -------------------------------------------------- "char" char
   1ַ character CHAR(#) bpchar
   ַʵݲ㶨峤ʱԿո VARCHAR(#) varchar
   ָ󳤶ȣ䳤ַ㶨峤ȵĲ  TEXT text
   Ƚе󳤶 BYTEA bytea
   䳤ֽУ䳤Ķݣ
d772 58
a829 37
   "varlena"䳤ͣҲ˵ͷĸֽǳ
   ȣݣʵռõĿռĴСҪһЩȻЩ
    Աѹ洢Ҳ TOAST
   ѻ洢˴̿ռҲܱԤҪ١ CHAR(n)
   ʺڴ洢ȻַVARCHAR(n) ڴ洢
   ȵı䳤ַõġTEXT ڴ洢Ƴȵַɴ
   1GBYTEA ڴ洢ݣǰ NULL
   ֽڣƵ0ֵ Щ;͵ܡ 4.15.1)
   һк/ԶֶΣ PostgreSQL ֧ 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 ); CREATE UNIQUE INDEX
   person_id_key ON person ( id ); ο create_sequence
   ֲҳȡеĸϢ㻹ÿе oid
   ֶΪһΨһֵҪ㵹ݿ⣬Ҫʹ
   pg_dump  -o ѡ COPY WITH OIDS ѡԱ OID 4.15.2)
   λһкŵֵ һַڲ֮ǰú
   nextval() жһ SERIAL ֵȻʽ롣ʹ
   4.15.1 <#4.15.1> α new_id = execute("SELECT
   nextval('person_id_seq')"); execute("INSERT INTO person (id, name)
   VALUES (new_id, 'Blaise Pascal')"); ѯʹô
   new_id ֵ磬Ϊ person  עԶ
   SEQUENCE ƽ
   
   __seq table  serialcolumn ֱı ƺ SERIAL
   ֶεơ Ƶģ SERIAL ȱʡú currval()
   ոֵ SERIAL ֵ磬 execute("INSERT INTO person (name)
   VALUES ('Blaise Pascal')"); new_id = execute("SELECT
   currval('person_id_seq')"); ʹô INSERT ䷵ص OID
   <4.16> ȱʡֵ ȱֲԵķ Perl
   ʹô Edmund Mergl  DBD::Pg ģ DBIoid ֵͨ
   $sth->execute()  $sth->{pg_oid_status} á 4.15.3) ʹ
   currval()  nextval() ᵼһû֮ 
   ᡣcurrval() غ̶̨ûĵǰֵ 4.15.4)
   Ϊʲô쳣ֹкأΪʲôкֶ
   ȡֵдڼأ
d831 6
a836 3
   ֮ ǰͻᵼزкųּ 4.16) ʲô
   OIDʲô TID OID  PostgreSQL еΨһʶPostgreSQL
   ﴴÿһжһΨ һ OID initdb д OID
d838 1
a838 1
   ڻֵȱʡ ʱЩ OID
d840 19
a858 14
   װҲΨһġ PostgreSQL ڲϵͳʹ OID
   ڱ֮佨ϵЩ OID 
   ڱʶضûԼʹֶ OID 洢 OID
   ֵ  OID ֶϴһԿٷʡ OID
   һݿʹõ︳ֵС OID 
   ɱֵһݱĴʼ OID Ŀ CREATE TABLE
   new(old_oid oid, mycol int); SELECT old_oid, mycol INTO new FROM old;
   COPY new TO '/tmp/pgtable'; DELETE FROM new; COPY new WITH OIDS FROM
   '/tmp/pgtable'; OID
   4ֽڵ棬ڳ40ʱû˱ֹ
   ˱֮ǰơ TID
   ڱʶݿ飨ַͣڣƫƵضСTID б
   Ļغı䡣ʹָС 4.17) PostgreSQL
   ʹõһЩĺʲô
d860 15
a874 7
   ֣ table, relation, class row, record, tuple column, field,
   attribute retrieve, select replace, update append, insert OID, serial
   value portal, cursor range variable, table name, table alias
   һͨݿбhttp://hea-
   www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.h
   tml  4.18) Ϊʲôյ/ERROR: Memory exhausted in
   AllocSetAlloc()/
d876 16
a891 10
    postmaster ֮ǰ ulimit -d 262144 limit datasize
   256m ȡõ
   shellֻһܳɹĽݶ
   ñȽϸߣҲòѯɡӦڵǰ̣Լ
   
   к󴴽ӽ̡SQLͻʱΪ̨̫
    ݶ⣬пͻ֮ǰִ 4.19)
   β֪е PostgreSQL İ汾  psql  SELECT
   version() 4.20) ΪʲôҵĴ´/invalid large obj
   descriptorǷĴ/
d893 16
a908 10
   COMMITҲ˵ Χ lo_open ... lo_close Ŀǰ PostgreSQL
   ǿʵʩύʱرմû
   вʱ״ζԴκͼᵼһ invalid
   large obj
   descriptorԣûʹһǰܹĴ루
   Ǵʱ䣩ôһϢ ʹÿͻ˽ӿڣ
   ODBCҪ set auto-commit off 4.21)
   δһȱʡֵǵǰʱֶΣ ʹ CURRENT_TIMESTAMP CREATE
   TABLE test(x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP); 4.22)
   Ϊʲôʹ IN Ӳѯô
d910 9
a918 4
    ӲѯУѯغܶУIN
   ִеúܿ졣Ϊ˼ӿ IN ѯִУ EXISTS 滻 IN SELECT
   * FROM tab WHERE col IN (SELECT subcol FROM subtab); Ϊ SELECT *
   FROM tab WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);
d920 29
a948 15
   ӦһСϣδķ汾 ޲ơ 4.23)
    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 ڴǰİ汾Уӿ UNION  NOT
   IN ģ⡣磬  tab1  tab2 ֮ӣ SELECT
   tab1.col1, tab2.col2 FROM tab1, tab2 WHERE tab1.col1 = tab2.col1 UNION
   ALL SELECT tab1.col1, NULL FROM tab1 WHERE tab1.col1 NOT IN (SELECT
   tab2.col1 FROM tab2) ORDER BY col1 4.24)
   ʹ漰ݿĲѯ
d950 1
a950 1
   ݿصϵͳ Ŀ¼ϵͳݿĲѯִҲδȷ
d952 18
a969 11
   úʵֿѯȻͬʱӵͬ
   ݿⲢڿͻ˺ϲ 4.25) úضлУ 
   PL/pgSQL ʹ refcursors ؽο
   http://www.PostgreSQL.org/idocs/index.php?plpgsql-cursors.html
   www.PostgreSQL.org/idocs/index.php?plpgsql-cursors.html>, 23.7.3.3ڡ
   4.26) Ϊʲô PL/PgSQL вܿɿشɾʱ PL/PgSQL
   溯ݣɴ˴һõĸһ PL/PgSQL 
   һʱȻñɾؽˣٴεøúʧܣ
   Ϊ ĺȻָɵʱķ PL/PgSQL 
   EXECUTE ʱзʡᱣ֤ѯִǰ· 4.27)
   Щݸѡ
d971 1
a971 1
    жҳ
d975 4
a978 2
   gborg.PostgreSQL.org/project/pgreplication/projdisplay.php> 
   һƵĽ 4.28) Щݼѡ
d980 3
a982 3
   ѯʹõļܺܿͻ˵ ˴ݵΨһ
   pg_hba.conf в hostss  7.3
   汾Զݿûмܡǰİ汾У
d984 1
a984 1
   ѡڼܵ ļϵͳϣԴﵽܵĿģ
d986 25
a1010 13
   ---------- չ PostgreSQL 5.1) дһû庯 psql
   ʱΪʲôᵼ core dump ԭ
   ܶࡣһĲԳвԶ庯 5.2) ܸ
   PostgreSQL һЩͦͺͺ չ͵
   pgsql-hackers ʼбջᱻŵ contrib/ Ŀ¼ 5.3)
   дһһԪ C   PostgreSQL 7.3 Ժİ汾УC,
   PL/PgSQL  SQL ȫֵַ֧Ϊ Ϣο
   Աָϣthe Programmer's Guide contrib/tablefunc
   һ C дķֵΪĺ 5.4)
   ޸һԴļΪʲô±ûпı䣿 Makefiles
   ûаͷļȷmake clean һ make
   ʹõ GCC Բѡ --enable-depend ñԶ
   ͷļϵ
@


1.1.2.1
log
@Backpatch new Chinese FAQ to 8.0.X.
@
text
@@


1.1.2.2
log
@Add mention that not all functions are listed.

Update Chinese FAQ for HTML.
@
text
@d2 2
a3 5
                          PostgreSQL ⣨FAQ
                                       
   £2003  01  06  һ 22:27:35 CST
   
   ĿǰάԱBruce Momjian (pgman@@candle.pha.pa.us)
d5 2
a6 4
   
   ĵ°汾http://www.postgresql.org/files/documentation/fa
   qs/FAQ.html 鿴
   
d8 76
a83 118
     _________________________________________________________________
   
                                  
                                      
   1.1) PostgreSQL ʲôô
   1.2) PostgreSQL İȨʲô?
   1.3) PostgreSQL ʲô Unix ƽ̨ϣ
   1.4) õķ Unix ƽ̨Щ
   1.5) Ҵܵõ PostgreSQL
   1.6) Ҵܵõ PostgreSQL ֧֣
   1.7) PostgreSQL µİ汾ʲô
   1.8) Щõ PostgreSQL ĵ
   1.9) ˽֪ BUG ȱʧԣ
   1.10) Ӧѧϰ SQL 
   1.11) PostgreSQL  Y2K ݵ
   1.12) Ӧ뿪飿
   1.13) Ӧύһ BUG 棿
   1.14) PostgreSQL  DBMS Σ
   1.15) Ӧ PostgreSQL 
   
                               ûͻ
                                      
   2.1)  PostgreSQL  ODBC ô
   2.2) ʲô߿԰ PostgreSQL  Web ҳ棿
   2.3) PostgreSQL ӵͼû
   2.4) ǿʲôԺ PostgreSQL 򽻵
   
                                ϵͳ
                                      
   3.1) ܰ PostgreSQL װ /usr/local/pgsql ĵط
   3.2)  postmaster ʱ Bad System Callϵͳô Core
   Dumped Ϊʲô
   3.3) ͼ postmaster ʱ IpcMemoryCreate Ϊʲô
   3.4) ͼ postmaster ʱ IpcSemaphoreCreate
   Ϊʲô
   3.5) οӣ
   3.6) ݿԻøõܣ
   3.7) PostgreSQL Իʲôĵԣ
   3.8) Ϊʲôͼӵ¼ʱյSorry, too many clients Ϣ
   3.9) pgsql_tmp Ŀ¼ﶼЩʲô
   3.10) ΪʲôҪ PostgreSQL 汾ʱ dump  restore 
   
                                  
                                      
   4.1) αͨα֮ʲô
   4.2) ֻѡһѯͷУ
   4.3) λȡһݿбб psql
   ￴Ķ
   4.4) ӱɾһУ
   4.5) һУһһߴǶ٣
   4.6) 洢һ͵ıļҪٴ̿ռ䣿
   4.7) β鿴ݿԼûĶ壿
   4.8) ҵĲѯûΪʲô
   4.9) βܿѯŻҵĲѯģ
   4.10) R-tree ʲô
   4.11) ʲôǻѯŻGenetic Query Optimization
   4.12)
   ʽʹСд޹صʽңд
   Сд޹زң
   4.13) һѯһֶǷΪ NULL
   4.14) ַ֮ʲôͬ
   4.15.1) һк/ԶֶΣ
   4.15.2) λһкŵֵ
   4.15.3) ʹ currval()  nextval() ᵼºûrace
   condition
   4.15.4)
   Ϊʲô쳣ֹкأΪʲôкֶεȡֵдڼ
   أ
   4.16) ʲô OIDʲô TID 
   4.17) PostgreSQL ʹõһЩĺʲô
   4.18) ΪʲôյERROR: Memory exhausted in AllocSetAlloc()
   4.19) β֪е PostgreSQL İ汾
   4.20) ΪʲôҵĴ´invalid large obj
   descriptorǷĴ
   4.21) δһȱʡֵǵǰʱֶΣ
   4.22) Ϊʲôʹ IN Ӳѯô
   4.23) ν outer join ӣ
   4.24) ʹ漰ݿĲѯ
   
   4.25) úضлУ
   
   4.26) Ϊʲô PL/PgSQL вܿɿشɾʱ
   
   4.27) Щݸѡ
   4.28) Щݼѡ
   
                              չ PostgreSQL
                                      
   5.1) дһû庯 psql ʱΪʲôᵼ core
   dump
   5.2) ܸ PostgreSQL һЩͦͺͺ
   5.3) дһһ¼ C 
   5.4) ޸һԴļΪʲô±ûпı䣿
     _________________________________________________________________
   
                                  
                                      
    1.1) PostgreSQL ʲôô
    
   PostgreSQL  Post-Gres-Q-L 
   
   PostgreSQL һ DBMS о POSTGRES
   ݿϵͳǿ档PostgreSQL ڱ POSTGRES
   ǿģͺͷḻ͵Ļϣһչ˵ SQL
   Ӽȡȵ PostQuel ѯԡPostgreSQL
   ɵĲԴ붼Իá
   
   PostgreSQL Ŀɲμ PostgreSQL
   ʼбһԱССĿǰе Marc G. Fournier
   scrappy@@postgreSQL.org
   μμ1.6ڣڸ PostgreSQL
   п
   
   PostgreSQL 1.01  Andrew Yu  Jolly
   ChenΪֲԣԺǿ˴סPostgreS
   QL Դ PostgresڼݴѧУ Michael Stonebraker
   ڵָ£оͱְԱɵġ
   
d85 7
a91 18
   ָܺĳ Postgres95 1996ĩŸΪ PostgreSQL
   
    1.2) PostgreSQL İȨʲô?
    
   PostgreSQL İȨԼ
   
   PostgreSQL ݿϵͳ
   
   PostgreSQL Data Base Management System
   
   ְȨc1996-2002PostgreSQL ȫ򿪷С
   ְȨc1994-6 ݴѧ
   
   Portions copyright (c) 1996-2002, PostgreSQL Global Development
   Group
    Portions Copyright (c) 1994-6 Regents of the University of
   California
   
d93 7
a99 9
   ǩ˶֤ǰİȨͱԼ
   ֳпС
   
   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.
   
d101 8
a108 9
   ֱӵģӵģģӵĻ𻵣ʧ
   ʹݴѧѾЩʧĿʱҲˡ
   
   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.
   
d110 15
a124 24
   ֤ṩǻڡǡĻģݴѧû
   ṩά֧֣£ǿ޸ĵķ
   
   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.
    BSD Ȩһ
   ĿԴȨԴʹδκơϲҲ
   
   
    1.3) PostgreSQL ʲô Unix ƽ̨ϣ
    
   һ˵һִ UNIX ݵƽ̨ PostgreSQL
   ڰװָг˷ʱȷԵƽ̨
   
    1.4) õķ Unix ƽ̨Щ
    
   ͻ
   
    libpq C ⣬psqlӿںͿͻӦóɿ MS Windows
   ƽ̨ǿܵġ£ͻ MS Windows Уͨ
d126 2
a127 5
   ƽ̨ϵķͨѶ汾аһļ win32.mak 
   Win32 libpq  psql PostgreSQL ҲԺ ODBC ͻͨѶ
   
   
   
d129 3
a131 7
   NT  Win2k Сķ汾 See pgsql/doc/FAQ_MSWIN ļ
   http://www.PostgreSQL.org/docs/faq-mswin.html 
   
   ֲ MS Win NT/2000/XP ıĹڽС
   
    1.5) Ҵܵõ PostgreSQL
    
d133 8
a140 18
   ftp://ftp.PostgreSQL.org/pubվԲοվҳ
   
    1.6) Ҵܵõ PostgreSQL ֧֣
    
   Ҫʼбǣpgsql-general@@postgreSQL.orgй
   PostgreSQL ⡣ҪбһʼݣУΪ
        subscribe
        end

   ʼ pgsql-general-request@@postgreSQL.org 
   
   ԻȡժҪбҪбʼpgsql-general-digest-req
   uest@@postgreSQL.orgΪ
        subscribe
        end

   ÿбﵽԼ 30k ϢʱժҪͷ͸бĳԱ
   
d142 1
a142 4
   bugs-request@@postgreSQL.orgΪ
        subscribe
        end

d144 21
a164 40
   hackers-request@@postgreSQL.orgΪ
        subscribe
        end

   Ĺ PostgreSQL ʼбϢ PostgreSQL  WWW
   ҳҵ
   
     http://postgresql.org/
     
    EFNet ﻹһ IRC ƵƵ #PostgreSQL unix irc -c
   '#PostgreSQL' "$USER" irc.phoenix.net
   
   ҵֹ֧˾б
   http://www.PostgreSQL.org/users-lounge/commercial-support.html 
   
    1.7) PostgreSQL µİ汾ʲô
    
   PostgreSQL µİ汾ǰ汾 7.2.3עӦ 7.3.1 ˡ
   
   Ǽƻÿĸ·һҪ汾
   
    1.8) Щõ PostgreSQL ĵ
    
   ڷһЩֲᣬֲҳһЩСĲӡμ /doc
   Ŀ¼עӦΪ $PGHOME/doc㻹 PostgreSQL
   ֲᣬ http://www.PostgreSQL.org/users-lounge/docs/ 
   
    PostgreSQL ṩ
   http://www.PostgreSQL.org/docs/awbook.html 
   http://www.commandprompt.com/ppbook/ 
   http://www.ca.PostgreSQL.org/books/ й PostgreSQL
   Ŀɹ鼮б http://techdocs.PostgreSQL.org/ ռй
   PostgreSQL ļ¡
   
   psql һЩ \d ʾͣۼȵϢ
   
   ǵ web վĵ
   
    1.9) ˽֪ BUG ȱʧԣ
    
d166 17
a182 25
   бȡһ֪棬ȱʧԺδƻ
   
    1.10) Ӧѧϰ SQL
    
    http://www.postgresql.org/docs/awbook.html Ĺ PostgreSQL
    SQLעصˡ
   http://www.commandprompt.com/ppbook һ PostgreSQL
   顣http://www.intermedia.net/support/sql/sqltut.shtmhttp://ourw
   orld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM  
   http://sqlcourse.com һŽ̡̳
   
   һ "Teach Yourself SQL in 21 Days, Second
   Edition"21ѧSQLڶ棩
   http://members.tripod.com/er4ebus/sql/index.htm
   
   ǵûϲ The Practical SQL Handbook, Bowman, Judith S., et
   al., Addison-Wesley   The Complete Reference SQL, Groff et
   al., McGraw-Hill 
   
    1.11) PostgreSQL  Y2K ݵ
    
   ǣǺ׿ 2000 AD ֮ 2000 BC ֮ǰڡ
   
    1.12) Ӧ뿪飿
    
d184 1
a184 1
   ĵΣ pgsql-hackers  pgsql-patches
a185 1
   
d187 30
a216 57
   ύ˷ǳĲˣеύ˺ѸϽ࣬
   ύĲǸġ
   
    1.13) ӦύһBUG棿
    
    http://www.PostgreSQL.org/bugs/bugs.php  PostgreSQL BugTool
   ҳ, ύһBUGָϡ
   
   ͬҲҪǵ ftp վ
   ftp://ftp.postgreSQL.org/pubûиµ PostgreSQL 汾򲹶
   
    1.14) PostgreSQL  DBMS Σ
    
   кüַԣܣɿԣֺ֧ͼ۸
   
   
          PostgreSQL ӵд DBMS
          ԣ磺ӲѯͼοԺ
          ͸ӵȡǻһЩûеԣû̳ͣУ
          Ͷ汾пԼõȡ
          
          
   
          PostgreSQL
          úͿԴݿƵܡĳЩȽϿ죬
          һЩȽ MySQL ݿϵͳȽϣ
          insert/update ʱΪȻ MySQL
          
          κԡǵҪǿɿԺԣÿ
          ηʱϵظĽܡһȤҳȽ PostgreSQL 
          MySQL http://openacs.org/why-not-mysql.html
          
   ɿ
          ֪ DBMS
          ǿɿģһöûСŬ
          ԵģȶĳٵĴ롣ÿ汾һµ beta
          ԣǵķʷʾǿṩȶģι̵ģ
          ʹõİ汾ⷽݿ൱ġ
          
          
   ֧
          ǵʼбṩһǳĿԱû԰
          κ⡣ǲܱ֤϶ܽ⣬֮£ DBMS
          Ҳܹṩֱ뿪ԱûȺֲԴ
          Ӵ PostgreSQL ֱ֧ DBMS
          ҪáһЩҵԵԤװ֧֣ԸṩЩҪˡ
          ֧ FAQ  1.6 Сڡ
          
          
   ۸
          Ƕκ;ѣúͷĿġԲƵ
          ĲƷǵĴ룬ЩİȨ
          BSD İȨ⡣
          
    1.15) Ӧ PostgreSQL 
    
   Դ1996꿪ʼPostgreSQL Ѿһ֯ЩӦù鹦 Marc
a217 1
   
d219 1
a219 2
   ĿǰĻҡ
   
d221 8
a228 14
   Ĺ˾ܽо֧ҵ
   http://store.pgsql.com/shopping/ о
   
   Ȼҳἰ PostgreSQL ˾Щ֧ PostgreSQL
   ĿûضĹ˾Ը⣬Ҳʼ֧Ʊϵ
   ַ
     _________________________________________________________________
   
                               ûͻ
                                      
    2.1)  PostgreSQL  ODBC ô
    
    ODBC ԻãPsqlODBC  OpenLink ODBC.
   
d230 4
a233 6
    PsqlODBC 
   
   OpenLink ODBC Դ http://www.openlinksw.com/ áǵı׼
   ODBC ͻݣκֵ֧Ŀͻƽ̨Win, Mac,
   Unix, VMSʹ PostgreSQL ODBC
   
d235 2
a236 5
   freeware İ汾Եõѯ
   postgres95@@openlink.co.uk
   
    2.2) ʲô߿԰ PostgreSQL  Web ҳ棿
    
a237 1
   
d239 4
a242 8
   
   ڸӵ񣬺ܶ˲ Perl ӿں CGI.pm  mod_perl 
   
    2.3) PostgreSQL ӵͼû
    
   ǵġм PostgreSQL
   ͼνӿڡPgAccesshttp://www.pgaccess.com)PgAdmin II
   http://www.pgadmin.orgWin32 RHDB Admin
d245 3
a247 4
   רе/proprietary)PHPPgAdmin
   http://phppgadmin.sourceforge.net/ һ web  PostgreSQL
   ʽӿڡ
   
d249 13
a261 32
   Ҳҳ http://www.pgaccess.org/
   
    2.4) ǿʲôԺ PostgreSQL 򽻵
    
   еıԶз PostgreSQL
   ĽӿڡԵչģб
   
   PostgreSQL а½ӿڣ
     * C (libpq)
     * Embedded C (ecpg)
     * Java (jdbc)
     * Python (PyGreSQL)
     * TCL (libpgtcl)
       
   Ľӿ http://gborg.postgresql.org ϵ Drivers/Interfaces
   Сڡ
     _________________________________________________________________
   
                                ϵͳ
                                      
    3.1) ܰ PostgreSQL װ /usr/local/pgsql ĵط
    
    configure ʱ --prefix ѡ
   
    3.2)  postmaster ʱ Bad System Callϵͳô Core
    Dumped Ϊʲô
    
   Ǻܶ෽⣬ȼϵͳǷ֧ System V
   չPostgreSQL Ҫںֹ֧ڴźŵơ
   
    3.3) ͼ postmaster ʱ IpcMemoryCreate Ϊʲô
    
d263 1
a263 1
   ڴ档ҪĹڴȡϵṹ
d266 9
a274 12
   ĿʱҪ~1MBйعڴźŵƵϸϢο PostgreSQL
   Administrator's Guide 
   
    3.4) ͼ postmaster ʱ IpcSemaphoreCreate Ϊʲô
    
   Ϣ IpcSemaphoreCreate: semget failed (No space left on
   device)ôںû㹻źŵԴPostgres
   ÿǱڵĺ̶̨ҪһźŵơһʱĽԱȽٵĺ
   ̨ postmasterʹÿ -N һȱʡֵ 32
   Ĳ postmasterõĽǼӴں˵ SEMMNS 
   SEMMNI 
   
a275 1
   
d277 5
a281 7
   йعڴźŵƵϸϢο PostgreSQL Administrator's
   Guide 
   
    3.5) οӣ
    
   ȱʡʱPostgreSQL ֻͨ unix ׽Աӡʹ
   -i  postmasterͨӦı $PGDATA/pg_hba.conf
d283 2
a284 4
   ֤ǲĻӵġ TCP/IP ӡ
   
    3.6) ݿԻøõܣ
    
d286 12
a297 18
   νĲѯԼʹЩ
   
   һ INSERTʹ COPY
   ԴķʽСȵһ INSERT
   öࡣΣûд BEGIN WORK/COMMIT
   ֮䱻Ϊͬһһ洦
   䡣ԼĶ⿪ͬݸıʱɾ
   ؽ
   
   мڵѡʹáͨ -o -F ѡ postmaster
   ֹ fsync()ÿ fsync() ˢµϡ
   
   㻹ʹ postmaster -B
   ѡӺ˽ʹõĹڴ滺Ŀõ̫
   postmaster ޷ΪѾ
   ںڹڴռϵơÿ 8K ȱʡ 64
   
   
d299 4
a302 8
   ѡÿ̨ʱõڴ-S
   ֵKֽڼƵģȱʡ 512 Ҳ˵512K
   
   㻹ʹ CLUSTER ѱݰĳоۼš
   CLUSTER ֲҳȡϸڡ
   
    3.7) PostgreSQL Իʲôĵԣ
    
d305 42
a346 61
   
   ȣͨ --enable-cassert ѡ configureкܶ assert()
   غ̨̺ڷĳЩδԤϵʱֹͣС
   
   postmaster  postgres һЩõѡȣ postmaster
   ʱȷѱ׼ͱ׼һ־ļȥˣ
        cd /usr/local/pgsql
        ./bin/postmaster >server.log 2>&1 &

    PostgreSQL Ŀ¼һ server.log
   ļļʹϢpostmaster һ
   -d ѡѡǻøϸڻ㱨-d
   ѡһֱԼҪǸߵĵԼܻɾ޴
   ־ļ
   
    postmaster ûУֱ postgres
   ̨̣ȻֱӼ SQL 䡣ֻ
   ƼڵԵʱôɡעʱû޶Ƿֺűʾβ
   ŵԷű룬ʹһۿʲô顣Ϊ̨
   û postmaster
   ģǺʵʵлһ£/̨ܲ֡
   
   
    postmaster ѾУһ psqlȻҳ psql Ӧ
   postgres ̵ PIDʹһ postgres PID
   ϡڵöϵ㲢Ҵ psql ִвѯڵ
   postgres  PGOPTIONS="-W n"Ȼ
   psqlӳ n
   룬ͿԸһҸ˳Ĺ̡
   
   postgres  -s-A -t ѡڵԺܲʱǳá
   
   㻹Դ profiling
   ֱ̨֧Ա۲Щռõִʱ϶ࡣprofile ļ
   pgsql/data/base/dbname Ŀ¼¡ͻ profile
   ļڿͻ˵ǰĿ¼¡ Linux ֧ profiling
   Ҫڱʱ-DLINUX_PROFILE 
   
    3.8) Ϊʲôͼӵ¼ʱյSorry, too many clientsϢ
    
   Ҫ postmaster ʱֵ֧Ĳ̨
   
   ȱʡ 32 ̡ͨʵ -N ֵ postmaster
   Ŀ޸ postgresql.conf ļ
   
   Ҫע -N Ϊ 32ͬ -Bȱʡ
   64-B  -N
   Ϊ˸õܿҪǸҪ󡣶ڴĿĺ˽̣
   ܻᷢ㻹Ҫ Unix
   ںòֵҪĶڴߴ磬SHMMAXźŵƵ
   ĿSEMMNS 
   SEMMNIĽNPROCûMAXUPRCԼļ
   ĿNFILE  NINODE Postgres ĺ̨Ƶԭ
   ΪȷϵͳùԴ
   
    Postgres  6.5 İ汾̨ȱʡ
   64Ҷ޸Ҫ޸ include/storage/sinvaladt.h 
   MaxBackendId Ȼ BUILD
   
    3.9) pgsql_tmp Ŀ¼ﶼЩʲô
    
d348 2
a349 3
   򣬲ҪȺ̨ -S
   ĸĿռ䣬ôͻᴴһʱļݡ
   
d351 6
a356 8
    postmaster ɾЩļ
   
    3.10) ΪʲôҪ PostgreSQL 汾ʱ dump  restore 
    
   PostgreSQL ÿС˽ٵ޸,˴ 7.2 
   7.2.1 Ҫ dump  restoreҪ 7.2 
   7.3ͨ޸ϵͳݱڲʽЩ仯һȽϸӣ
   ǲάļݡdump
d358 24
a381 50
   
   ļʽûб仯 pg_upgrade űҪ dump 
   restor˵script ָ pg_upgrade ԸôǷá
     _________________________________________________________________
   
                                  
                                      
    4.1) αͨα֮ʲô
    
    DECLARE ֲҳȡϢ
   
    4.2)ֻ SELECT һѯͷУ
    
    FETCH ֲҳʹ SELECT ... LIMIT....
   
   ʹֻҪͷļУҲ漰ѯʹô ORDER BY
   Ĳѯһ ORDER BY ƥ䣬PostgreSQL
   ֻܾҪͷ¼򽫶ѯдֱҪ
   
   
    4.3) λȡһб psql ￴Ķ
    
   Ķ psql Դļpgsql/src/bin/psql/describe.c
   Ϊ psql ķб SQL 㻹Դ -E
   ѡ psqlӡִõĲѯ
   
    4.4) ӱɾһУ
    
   7.3  ALTER TABLE DROP
   COLUMNִ֧ܡǰİ汾У
    BEGIN;
    LOCK TABLE old_table;
    SELECT ...  -- select all columns but the one you want to remove
    INTO TABLE new_table
    FROM old_table;
    DROP TABLE old_table;
    ALTER TABLE new_table RENAME TO old_table;
    COMMIT;

    4.5) һУһһߴǶ٣
    
   һЩƣ
    һݿߴ磿   ƣ 1TB ݿ⣩
    һߴ磿    16TB
    һеߴ磿      1.6TB
     һֶεߴ?   1GB
    һ     
    һ     й,250-1600
    һ

d383 5
a387 12
   Լ
   
   ߴ 16 TB ҪϵͳԴļ֧֡ö 1 GB
   ļ洢ļϵͳߴǲҪġ
   
   ȱʡĿС 32K ıߴӡ
   
    4.6)洢һ͵ƽļҪٴ̿ռ䣿
    
   һ Postgres
   ݿҪ൱һƽļ洢ͬݵ5Ĵ̿ռ䡣
   
d389 9
a397 21
   еļÿһһııƽλ20ֽڡ
   ƽļռ 2.8 MBЩݵ PostgreSQL ݿļԼ 6.4
   MB:
     36 ֽ: ÿеͷֵ
     24 ֽ: һintֶκһıֶ
   +  4 ֽ: ҳָԪָ
   ----------------------------------------
     64 ֽÿ

   PostgreSQL ҳĴС 8192 ֽ (8 KB)

   8192 ֽÿҳ
   -------------------   =  128 /ҳȡ
     64 ֽÿ

   100000 
   --------------------  =  782 ҳȡ
      128 ÿҳ

   782 ҳ * 8192 ֽ/ҳ  =  6,406,144 ֽڣ6.4 MB

d399 4
a402 9
   
   
   ֵλͼУռúٵĿռ䡣
   
    4.7) β鿴ݿԼûĶ壿
    
    psql ෴бʾЩϢ \? Щ pg_
   ͷϵͳҲЩϢ psql -l геݿ⡣
   
d404 3
a406 5
   pgsql/src/tutorial/syscat.sourceʾݿϵͳȡϢ
   Ҫ SELECT
   
    4.8) ҵĲѯûΪʲô
    
d408 12
a419 13
   ѡнСʱʹΪɨ漴̴ȡ
   ֱܱӵضȡ˳ɨ裩ΪжǷʹPostgreSQL
   йرͳֵЩͳֵʹ VACUUM ANALYZE ANALYZE
   áʹͳֵŻ֪жУܹõжǷ
   ͳֵȷŻ˳ӷҲáڱݷ仯ʱ
   ӦڽͳֵĻȡ
   
   ͨ ORDER BY
   ִӡһһ˳ɨ裬һʽͨɨ
   Ҫ졣
   
   ǣ LIMIT  ORDER BY ʹʱ
   ʹΪֻ᷵رһС֡ʵϣȻ MAX()  MIN()
d421 39
a459 74
   ʹȡֵСֵҲǿԵģ
       SELECT col
       FROM tab
       ORDER BY col [ DESC ]
       LIMIT 1;
   
   ʹͨ LIKE  ~ ʱֻضʹã
     * ַĿʼֱַͨҲ˵
       
     * LIKE ģʽ % ͷ
     * ~ ʽģʽ ^ ͷ
       
     ַƥַģʽͷ [a-e]
   
     Сд޹صĲң ILIKE  ~* Ȳʹ 4.12
   ĺ
   
      initdb ʱȱʡı C locale
   
    4.9) βܿѯŻҵĲѯģ
    
   ο EXPLAIN ֲҳ
   
    4.10) R-tree ʲô
    
   R-tree ռݡһϣ޷Χ B-tree
   ֻܴһάķΧR-tree
   Դάݡ磬һΪ point
   ֶϽһ R-tree ôϵͳܸЧػش
   ѡһηΧڵе㡱
    R-Tree Ƶʽǣ
   Guttman, A. "R-Trees: A Dynamic Index Structure for Spatial
   Searching." Proc of the 1984 ACM SIGMOD Int'l Conf on Mgmt of Data,
   45-57.
   㻹 Stonebraker ġReadings in Database
   Systemsҵƪ¡
   ϵͳõ R-Tree ԴκͷΡ˵R-tree
   չΪάʵϣչ R-trees
   ҪһĹĿǰûĵ
   
    4.11) ʲôǻѯŻGenetic Query Optimization
    
   GEQO ģû㷨Genetic
   AlgorithmGAӿӵĲѯŻͨ
   Ӳѯ
   
    4.12)
    ʽʹСд޹صʽдСд
    ޹
    
    ~ ʽƥ䣬 ~*
   Сд޹صʽƥ䡣дЩ޹ص LIKE ֳΪ ILIKE
   Сд޹صĵʽȽͨд
       SELECT *
       FROM tab
       WHERE lower(col) = 'abc';
   ʹñ׼ǿԴһɱõĺ:
       CREATE INDEX tabindex ON tab (lower(col));
   
    4.13) һѯһֶǷΪ NULL
    
    IS NULL  IS NOT NULL ֶΡ
   
    4.14) ַ֮ʲôͬ
    
                 ڲ    ˵
     --------------------------------------------------
     "char"        char         1ַ character
     CHAR(#)      bpchar
   ַʵݲ㶨峤ʱԿո
     VARCHAR(#)  varchar
   ָ󳤶ȣ䳤ַ㶨峤ȵĲֲ
     TEXT           text         Ƚе󳤶
     BYTEA          bytea       䳤ֽУ䳤Ķݣ
d461 37
a497 58
   "varlena"䳤ͣҲ˵ͷĸֽǳ
   ȣݣʵռõĿռĴСҪһЩȻЩ
   ͶԱѹ洢Ҳ TOAST
   ѻ洢˴̿ռҲܱԤҪ١
   CHAR(n) ʺڴ洢ȻַVARCHAR(n)
   ڴ洢󳤶ȵı䳤ַõġTEXT
   ڴ洢Ƴȵַɴ 1GBYTEA
   ڴ洢ݣǰ NULL
   ֽڣƵ0ֵЩ;͵ܡ
   
    4.15.1) һк/ԶֶΣ
    
   PostgreSQL ֧ 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
           );
       CREATE UNIQUE INDEX person_id_key ON person ( id );
   ο create_sequence ֲҳȡеĸϢ㻹ÿе
   oid ֶΪһΨһֵҪ㵹ݿ⣬Ҫʹ
   pg_dump  -o ѡ COPY WITH OIDS ѡԱ OID
   
    4.15.2) λһкŵֵ
    
   һַڲ֮ǰú nextval() жһ SERIAL
   ֵȻʽ롣ʹ 4.15.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')");
   ʹô INSERT ䷵ص OID
   ȱʡֵȱֲԵķ Perl ʹô
   Edmund Mergl  DBD::Pg ģ DBIoid ֵͨ $sth->execute()
    $sth->{pg_oid_status} á
   
    4.15.3) ʹ currval()  nextval() ᵼһû֮
    
   ᡣcurrval() غ̶̨ûĵǰֵ
   
    4.15.4)
    Ϊʲô쳣ֹкأΪʲôкֶεȡֵдڼأ
    
    
d499 3
a501 6
   ֮ǰͻᵼزкųּ
   
    4.16) ʲô OIDʲô TID
    
   OID  PostgreSQL еΨһʶPostgreSQL
   ﴴÿһжһΨһ OID initdb д OID
d503 1
a503 1
   ڻֵȱʡʱЩ OID
d505 14
a518 19
   װҲΨһġ
   PostgreSQL ڲϵͳʹ OID ڱ֮佨ϵЩ OID
   ڱʶضûԼʹֶ OID 洢 OID
   ֵ OID ֶϴһԿٷʡ
   OID һݿʹõ︳ֵС OID
   ĳɱֵһݱĴʼ OID Ŀ
       CREATE TABLE new(old_oid oid, mycol int);
       SELECT old_oid, mycol INTO new FROM old;
       COPY new TO '/tmp/pgtable';
       DELETE FROM new;
       COPY new WITH OIDS FROM '/tmp/pgtable';
   OID
   4ֽڵ棬ڳ40ʱû˱ֹǴ
   ˱֮ǰơ
   TID ڱʶݿ飨ַͣڣƫƵضСTID
   бĻغı䡣ʹָС
   
    4.17) PostgreSQL ʹõһЩĺʲô
    
d520 7
a526 15
   ֣
       table, relation, class
       row, record, tuple
       column, field, attribute
       retrieve, select
       replace, update
       append, insert
       OID, serial value
       portal, cursor
       range variable, table name, table alias
   һͨݿбhttp://hea-www.harvard.edu/MST/simul/softw
   are/docs/pkgs/pgsql/glossary/glossary.html 
   
    4.18) ΪʲôյERROR: Memory exhausted in AllocSetAlloc()
    
d528 10
a537 16
    postmaster ֮ǰ
       ulimit -d 262144
       limit datasize 256m
   ȡõ
   shellֻһܳɹĽݶñȽϸߣ
   ҲòѯɡӦڵǰ̣Լк
   󴴽ӽ̡SQLͻʱΪ̨̫ݶ
   ⣬пͻ֮ǰִ
   
    4.19) β֪е PostgreSQL İ汾
    
    psql  SELECT version()
   
    4.20) ΪʲôҵĴ´invalid large obj
    descriptorǷĴ
    
d539 10
a548 16
   COMMITҲ˵Χ lo_open ... lo_close
   Ŀǰ PostgreSQL
   ǿʵʩύʱرմûвʱ
   ״ζԴκͼᵼһ invalid large obj
   descriptorԣûʹһǰܹĴ루Ǵ
   ʱ䣩ôһϢ
   ʹÿͻ˽ӿڣ ODBCҪ set auto-commit off
   
    4.21) δһȱʡֵǵǰʱֶΣ
    
   ʹ CURRENT_TIMESTAMP
       CREATE TABLE test(x int, modtime timestamp DEFAULT
   CURRENT_TIMESTAMP);
   
    4.22) Ϊʲôʹ IN Ӳѯô
    
d550 4
a553 9
   ӲѯУѯغܶУIN
   ִеúܿ졣Ϊ˼ӿ IN ѯִУ EXISTS 滻 IN
       SELECT *
       FROM tab
       WHERE col IN (SELECT subcol FROM subtab);
   Ϊ
       SELECT *
       FROM tab
       WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);
d555 15
a569 29
   ӦһСϣδķ汾޲ơ
   
    4.23)  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
   ڴǰİ汾Уӿ UNION  NOT IN
   ģ⡣磬ڱ tab1  tab2 ֮ӣ
       SELECT tab1.col1, tab2.col2
       FROM tab1, tab2
       WHERE tab1.col1 = tab2.col1
       UNION ALL
       SELECT tab1.col1, NULL
       FROM tab1
       WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2)
       ORDER BY col1
   
    4.24) ʹ漰ݿĲѯ
    
d571 1
a571 1
   ݿصϵͳĿ¼ϵͳݿĲѯִҲδȷ
d573 11
a583 18
   úʵֿѯȻͬʱӵͬݿⲢڿͻ
   ϲ
   
    4.25) úضлУ
    
    PL/pgSQL ʹ refcursors ؽο
   http://www.PostgreSQL.org/idocs/index.php?plpgsql-cursors.html,
   23.7.3.3ڡ
   
    4.26) Ϊʲô PL/PgSQL вܿɿشɾʱ
    
   PL/PgSQL 溯ݣɴ˴һõĸһ PL/PgSQL
   һʱȻñɾؽˣٴεøúʧܣ
   ΪĺȻָɵʱķ PL/PgSQL 
   EXECUTE ʱзʡᱣ֤ѯִǰ·
   
    4.27) Щݸѡ
    
d585 1
a585 1
   ܽжҳ
d589 2
a590 4
   ڽһƵĽ
   
    4.28) Щݼѡ
    
d592 3
a594 3
   ѯʹõļܺܿͻ˵˴ݵΨһ
   pg_hba.conf в hostss 
   7.3 汾Զݿûмܡǰİ汾У
d596 1
a596 1
   ѡڼܵļϵͳϣԴﵽܵĿģ
d598 13
a610 25
   ----------
   
                              չ PostgreSQL
                                      
    5.1) дһû庯 psql ʱΪʲôᵼ core dump
    
   ܶࡣһĲԳвԶ庯
   
    5.2) ܸ PostgreSQL һЩͦͺͺ
    
   չ͵ pgsql-hackers ʼбջᱻŵ contrib/
   Ŀ¼
   
    5.3) дһһԪ C 
    
    PostgreSQL 7.3 Ժİ汾УC, PL/PgSQL  SQL
   ȫֵַ֧ΪĺϢο Աָϣthe Programmer's
   Guide contrib/tablefunc һ C
   дķֵΪĺ
   
    5.4) ޸һԴļΪʲô±ûпı䣿
    
   Makefiles ûаͷļȷmake clean һ
   make ʹõ GCC Բѡ --enable-depend
   ñԶͷļϵ
@


1.1.2.3
log
@Update Chinese FAQ to xhtml.
@
text
@d91 1
d93 1
d95 1
d705 1
a707 4
     * ַƥַģʽͷ [a-e]
     * Сд޹صĲң ILIKE  ~* Ȳʹ 4.12
       ĺ
     *  initdb ʱȱʡı C locale
d709 7
@


1.1.2.4
log
@Convert Chinese FAQ to valid XHTML, finally.
@
text
@d144 1
a144 1
   Portions Copyright (c) 1994-6 Regents of the University of
d280 1
a280 1
   orld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM 
d323 1
d341 1
d350 1
d670 1
a670 1
   psql ෴бʾЩϢ \? Щ pg_
d695 4
a698 4
   SELECT col
   FROM tab
   ORDER BY col [ DESC ]
   LIMIT 1;
d743 3
a745 3
   SELECT *
   FROM tab
   WHERE lower(col) = 'abc';
d747 1
a747 1
   CREATE INDEX tabindex ON tab (lower(col));
d755 6
a760 5
    ڲ ˵
   --------------------------------------------------
   "char" char 1ַ character
   CHAR(#) bpchar ַʵݲ㶨峤ʱԿո
   VARCHAR(#) varchar
d762 2
a763 2
   TEXT text Ƚе󳤶
   BYTEA bytea 䳤ֽУ䳤Ķݣ
d779 4
a782 4
   CREATE TABLE person (
   id SERIAL,
   name TEXT
   );
d784 7
a790 6
   CREATE SEQUENCE person_id_seq;
   CREATE TABLE person (
   id INT4 NOT NULL DEFAULT nextval('person_id_seq'),
   name TEXT
   );
   CREATE UNIQUE INDEX person_id_key ON person ( id );
d799 2
a800 2
   new_id = execute("SELECT nextval('person_id_seq')");
   execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise
d808 2
a809 2
   execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");
   new_id = execute("SELECT currval('person_id_seq')");
d839 5
a843 5
   CREATE TABLE new(old_oid oid, mycol int);
   SELECT old_oid, mycol INTO new FROM old;
   COPY new TO '/tmp/pgtable';
   DELETE FROM new;
   COPY new WITH OIDS FROM '/tmp/pgtable';
d854 9
a862 9
   table, relation, class
   row, record, tuple
   column, field, attribute
   retrieve, select
   replace, update
   append, insert
   OID, serial value
   portal, cursor
   range variable, table name, table alias
d870 2
a871 2
   ulimit -d 262144
   limit datasize 256m
d897 2
a898 1
   CREATE TABLE test(x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP);
d905 3
a907 3
   SELECT *
   FROM tab
   WHERE col IN (SELECT subcol FROM subtab);
d909 3
a911 3
   SELECT *
   FROM tab
   WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);
d918 2
a919 2
   SELECT *
   FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
d921 2
a922 2
   SELECT *
   FROM t1 LEFT OUTER JOIN t2 USING (col);
d931 8
a938 8
   SELECT tab1.col1, tab2.col2
   FROM tab1, tab2
   WHERE tab1.col1 = tab2.col1
   UNION ALL
   SELECT tab1.col1, NULL
   FROM tab1
   WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2)
   ORDER BY col1
d964 2
a965 1
   ܽжҳ http://gborg.PostgreSQL.org/genpage?replication_research
@


1.1.2.5
log
@Update Chinese FAQ to fix XHTML format.

Weiping (Laser)
@
text
@d4 1
a4 1
   £2005  06  02   22:27:35 CST
d7 1
a7 1
   İάԱdoudou586 doudou586_2005@@yahoo.com.cn
d9 2
a10 2
   ĵ°汾
   http://www.postgresql.org/files/documentation/faqs/FAQ.html鿴
d12 1
a12 1
   ϵͳƽ̨صhttp://www.postgresql.org/docs/faq/ش
d15 88
a102 63


   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)˿ƺ͹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)ҪʹʲôӲ 
   


   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)ĿǰЩݸƷã
d105 3
a107 3


    1.1)PostgreSQL ʲôô
d109 13
a121 1
   PostgreSQL  Post-Gres-Q-LʱҲΪPostgres 
d123 4
a126 4
   PostgreSQL
   ĿĹϵݿϵͳдͳҵݿϵͳйܣͬʱ
   нһ DBMS ϵͳʹõǿԡ PostgreSQL
   ѵģԴ붼Իá
d128 2
a129 5
   PostgreSQL
   ĿҪΪ־ԸߣǱ鲼زͨϵһ
   Ŀκι˾ơ
   뿪飬μԱ⣨FAQ
   http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html
d131 1
a131 1
    1.2)PostgreSQL İȨʲô?
d133 3
a135 3
   PostgreSQLķӾ
   BSDȨԴʹûκƣǺϲַʽһ
   ûдı
d137 1
a137 1
   ʹõBSDȨݣ
d139 2
a140 2
   ְȨc1996-2005PostgreSQL
   ȫ򿪷С飬ְȨc1994-1996 ݴѧ
d142 3
a144 2
   Portions copyright (c) 1996-2005, PostgreSQL Global Development
   Group Portions Copyright (c) 1994-6 Regents of the University of
d148 2
a149 3
   
   ǩ˶֤ǰİȨͱԼ
   ֳпС
d158 2
a159 3
   ֱӵģ
   ӵģģӵĻ𻵣ʧΣʹ
   ѧѾЩʧĿʱҲˡ
d168 2
a169 3
   ֤
   ṩǻڡǡĻģݴѧûṩά
   ֧֣£ǿ޸ĵķ
d177 3
d181 1
a181 1
    1.3)PostgreSQL Щϵͳƽ̨ϣ
d186 15
a200 4
   PostgreSQlҲֱڻ΢Windows-NTĲϵͳWin2000Win
   XP  Win2003ɵİװɴ
   http://pgfoundry.org/projects/pginstallerأMSDOSWindows
   ͳ Win95Win98WinMeҪͨCygwinģ⻷PostgreSQL
d202 1
a202 4
   ͬʱҲһΪNovell Netware 6İ汾ɴ http://forge.novell.com
   ȡΪOS/2İ汾ɴ
   http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgre
   SQL&stype=all&sort=type&dir=%2F
d204 1
a204 1
    1.4)Ҵܵõ PostgreSQL
d206 2
a207 2
   ͨɴhttp://www.postgresql.org/ftp/أҲͨFTP
   ftp://ftp.PostgreSQL.org/pub/վء
d209 1
a209 1
    1.5)Ҵܵõ PostgreSQL ֧֣
d211 6
a216 4
   PostgreSQLͨʼбΪûṩʼбվ
   
   http://www.postgresql.org/community/lists/һ£ȼGeneral
    BugʼбһϺõĿʼ
d218 6
a223 6
   ҪIRCƵFreeNode(irc.freenode.net)#postgresqlΪϴƵ
   ʹUNIXircָʽ irc -c '#postgresql' "$USER"
   irc.freenode.net
   ʹIRCͻ˳ڴлһPostgreSQLƵ
   (#postgersql-es)ͷƵ
   (#postgresql-fr)ͬأEFNETҲһPostgreSQLĽƵ
d225 12
a236 1
   ҵֹ֧˾б http://techdocs.postgresql.org/companies.php
d238 4
a241 4
    1.6)ύһBUG棿
    
   ɷ
   http://www.postgresql.org/support/submitbugдBugϱ񼴿ɡ
d243 2
a244 2
   ͬҲɷftpվftp://ftp.PostgreSQL.org/pub/
   ޸µPostgreSQL汾򲹶
d246 1
a246 1
    1.7)°PostgreSQL ʲô
d248 1
a248 1
   PostgreSQL µİ汾ǰ汾 8.0.2 ע°汾Ϊ8.0.3
d250 1
a250 1
   Ǽƻÿ귢һҪ汾ÿ·һС汾
d252 1
a252 1
    1.8)ܹȡĵЩ
d254 3
a256 3
   PostgreSQLĵҪһЩֲᣬֲҳһЩĲӡμ
   /doc Ŀ¼עӦΪ $PGHOME/doc 㻹 PostgreSQL
   ֲᣬַǣhttp://www.PostgreSQL.org/docs
d260 4
a263 7
   http://www.commandprompt.com/ppbook/ 
   ҲдPostgreSQL鼮ɹΪеһKorry
   Douglasдġ
   http://techdocs.PostgreSQL.org/techdocs/bookreviews.php
   дйPostgreSQL鼮ļ顣 
   http://techdocs.PostgreSQL.org/ռй PostgreSQL
   Ĵ¡
d265 1
a265 3
   ͻ˵гpsqlһЩ \d
   ͷʾͣܵȵϢʹ \?
   ʾпõ
d267 1
a267 1
   ǵ web վĵ
d269 1
a269 1
    1.9)˽֪ BUG ȱĹܣ
d271 2
a272 2
   PostgreSQL ֧һչ˵ SQL-92 ӼǵTODO
   бȡһ֪BugȱĹܺͽļƻ
d274 1
a274 1
    1.10)Ӧѧϰ SQL 
d276 14
a289 4
   ȿᵽ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
d291 1
a291 1
    1.11)Ӧ뿪飿
d293 11
a303 1
    Developer's FAQ 
d305 9
a313 1
    1.12)PostgreSQL ݿϵͳΣ
d318 4
a321 4
          PostgreSQL ӵд DBMS ԣ
          磺ӲѯͼοԺ͸ӵȡ
          ǻһЩûеԣû̳ͣУͶ汾
          пԼõȡ
d324 8
a331 3
          PostgreSQL úͿԴݿƵܡ
          ĳЩȽϿ죬һЩȽ
          ݿȣǵͨ +/- 10%֮䡣
d334 2
a335 2
          ֪ DBMS ǿɿģһöûС
          Ŭ
d337 2
a338 3
          ʱ䣬ǵķʷʾǿṩȶģι̵ģ
          ʹõİ汾
          ⷽݿ൱ġ
d342 3
a344 4
          κ⡣ ǲܱ֤϶ܽ⣬֮£ DBMS
          Ҳܹṩ
          ֱ뿪ԱûȺֲԴӴ PostgreSQL
          ֱ֧ DBMS
d346 1
a346 1
           FAQ  1.5 Сڣ
d349 3
a351 3
          Ƕκ;ѣúͷĿġ
          ԲƵĲƷǵĴ룬Щ
          İȨ BSD İȨ⡣
d353 1
a353 1
    1.13)˿PostgreSQL 
d355 13
a367 6
   ѰPostgreSQLˣʲôίԱᣬʲô˾
   ֻܷ---ΪһҲڣǵȷһ
   ίԱCVS飬ЩҪΪ˽йǶPos
   tgreSQLпƣPostgreSQLĿκ˾
   ɲμӵĿԱûƵģҪľǼʼб
   ۼɣҪPostgreSQLĿ Developer's FAQ ȡϢ
d370 3
a372 3
ûͻ

    2.1)ǿʲôԺ PostgreSQL 򽻵
d374 4
a377 3
   PostgreSQL(ȱʡ)ֻװCǶʽCĽӿڣĽӿڶǶĿ
   ֱܹأЩӿĿĺô
   ǿиԵķƻ͸ԶĿ顣
d379 3
a381 4
   һЩPHPз PostgreSQL
   ĽӿڣPerl,TCL,PythonԼܶԵĽӿ
   http://gborg.postgresql.org ϵDrivers/InterfacesСڿҵ
   ͨInternet
d383 5
a387 1
    2.2)ʲô߿԰ PostgreSQL  Web ҳ棿
d389 1
a389 1
   һݿΪ̨ͦվǣhttp://www.webreview.com
d391 1
a391 1
    Web ɣPHP һõĽӿڡڣhttp://www.php.net/
d395 1
a395 1
    2.3)PostgreSQL ӵͼû
d397 26
a422 2
   ǵģ
   http://techdocs.postgresql.org/guides/GUIToolsһϸб
d425 3
a427 3
ϵͳ

    3.1)ܰ PostgreSQL װ /usr/local/pgsql ĵط
d431 2
a432 1
    3.2)οӣ
d434 2
a435 6
   ȱʡʱPostgreSQL ֻͨ unix
   ׽ֻTCP/IPʽԱӡ
   ֻ޸ļpostgresql.confеlisten_addressesҲ
   ļpg_hba.confд Ϊ host-based
   ֤PostgreSQLǲPostgreSQL
   ӵġ
d437 1
a437 1
    3.3)ݿԻøõܣ
d439 6
a444 1
   ҪPostgreSQLǱܡ
d446 1
a446 27
   ѯʽı仯
          Ҫ漰޸ĲѯʽԻȡõ:
          
          + ʽͲ
          + ʹCOPYInsert䣻
          + SQLһԼύĿ
          + һȡ¼ʱʹCLUSTER
          + һѯȡּ¼ʱʹLIMIT
          + ʹԤʽѯPrepared Query)
          + ʹANALYZEԱ־ȷŻͳƣ
          + ʹ 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
          
   Ӳѡ
          ӲܵӰ
          http://candle.pha.pa.us/main/writings/pgsql/hw_performance/inde
          x.html  http://www.powerpostgresql.com/PerfList/
          
    3.4)PostgreSQL Իʲôĵԣ
d448 8
a455 3
   PostgreSQL кܶ log_*
   ķñڲѯĴӡͽͳƣЩԵԺܲ
   а
d457 5
a461 1
    3.5)ΪʲôͼʱյSorry, too many clientsϢ
d463 4
a466 3
   ʾѴﵽȱʡ100̨ƣҪͨ޸postgresql.
   confļеmax_connectionsֵ
   postmasterĺ̨޸ĺpostmaster
d468 1
a468 1
    3.6)ΪʲôҪ PostgreSQL Ҫ汾ʱ dump  restore 
d470 104
a573 4
   PostgreSQL ÿС˽ٵ޸ģ˴ 7.4.0 
   7.4.1 Ҫ dump  restore Ҫ 7.3 
   7.4ͨ޸ϵͳݱڲʽ
   Щ仯һȽϸӣǲάļݡ dump
d576 2
a577 8
    3.7)(ʹPostgreSQL)ҪʹʲôӲ 
    
   ڼӲǼݵģмӲҲ
   ͬġʵϲǣ ECC RAMżУڴ棩SCSI
   Ӳ̣ʵһЩ˻ҪӿɿҾиõܡPostgreSQL
   κӲϣ
   ɿԺܶϵͳҪҪȫоһӲ
   ˡǵʼбҲй ӲúԼ۱ȵۡ
d580 32
a611 46


    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ѯPostg
   reSQLҲṩһ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;
d614 1
a614 3
   ȻʹVACUUM FULL tab ָʹϵͳջЧռõĿռ䡣
   
    4.4)һм¼һһߴǶ٣
d617 8
a624 9
   
     һݿߴ磿     ƣѴ 32TB ݿ⣩
     һߴ磿       32 TB
     һм¼ߴ磿     1.6 TB
     һֶεߴ?      1 GB
     һ       
     һ       250-1600 йأ
     һ 
   
d626 1
a626 1
   Լ ʵϣЩֵ쳣شʱϵͳҲܴܺӰ졣
d628 1
a628 1
   ߴ 32 TB ҪϵͳԴļ֧֡ö 1 GB
d631 1
a631 1
   ȱʡĿС 32K ıߴӵı
d633 1
a633 1
    4.5)洢һ͵ıļҪٴ̿ռ䣿
d636 1
a636 2
   ݿ⣨洢һıļռõĿռҪ൱ıļ
   С5Ĵ̿ռ䡣
d638 6
a643 5
   磬һ 100,000 еļÿһһı
   ıƽΪ20ֽڡıļռ 2.8 MBЩݵ
   PostgreSQL ݿļԼ 6.4 MB:
     32 ֽ: ÿеͷֵ
     24 ֽ: һֶκһıֶ
d646 1
a646 1
     60 ֽÿ
d651 2
a652 2
   -------------------   =  136 /ҳȡ
     60 ֽÿ
d655 1
a655 1
   --------------------  =  735 ҳȡ
d658 1
a658 1
   735 ҳ * 8192 ֽ/ҳ  =  6,021,120 ֽڣ6 MB
d663 1
a663 1
   ֵNULLλͼУռúٵĿռ䡣
d665 10
a674 1
    4.6)ΪʲôҵĲѯΪʲôЩѯû
d677 6
a682 8
   ѡбнСļ¼ʱŻ
   Ϊɨ漴̴ȡֱܱӵضȡ˳ɨ裩
   
   ΪжǷʹPostgreSQLйرͳֵЩͳֵ
   ʹ VACUUM ANALYZE ANALYZE á
   ʹͳֵŻ֪жУܹõжǷ
   ͳֵȷŻ˳ӷҲáڱݷ仯ʱӦ
   ڽͳֵĸռ
d689 1
a689 1
   ʹΪֻ᷵رһС֡ ʵϣȻ MAX()  MIN()
d692 4
a695 8
        SELECT col
        FROM tab
        ORDER BY col [ DESC ]
        LIMIT 1;

   ȷPostgreSQLŻʹ˳ɨǲȷģʹSET
   enable_seqscan TO 'off'ָ
   ȻٴвѯͿԿʹһɨǷȷʵҪһЩ
d699 2
a700 2
          + LIKE ģʽ % ͷ
          + ~ ʽģʽ ^ ͷ
d702 1
a702 1
     * Сд޹صĲң ILIKE  ~* Ȳʹ 4.8
d704 1
a704 4
     *  initdb ʱȱʡı C
       localeΪϵͳ֪ڷC localeʱһַʲô
       £Դһtext_pattern_opsLIKE
       
d706 1
a706 4
   8.0֮ǰİ汾УҪѯͺƥ䣬
   δõرǶint2,int8ֵ͵
   
    4.7)βܿѯŻҵĲѯ
d710 26
a735 2
    4.8)ʽʹСд޹صʽңд
    д޹زң
a738 1
   
d740 3
a742 4
    SELECT *
    FROM tab
    WHERE lower(col) = 'abc';

d744 3
a746 4
    CREATE INDEX tabindex ON tab (lower(col));

    4.9)һѯһֶǷΪ NULL
    β׼ȷĳֶǷ NULL ֵ
d748 3
a750 13
    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)ַ֮ʲôͬ
d752 5
a756 2
            ڲ                      ˵
     VARCHAR(n) varchar
d758 2
a759 5
     CHAR(n)    bpchar   ַʵݲ㶨峤ʱԿո
     TEXT       text     ûرƣе󳤶ƣ
     BYTEA      bytea    䳤ֽУʹNULLҲģ
     "char"     char     һַ
   
d761 3
a763 4
   
   еǰ"varlena"䳤ͣҲ˵ͷĸֽ
   ǳȣݣ ʵռõĿռĴСҪһЩ
   ȻЩͶԱѹ洢Ҳ TOAST
d765 3
a767 7
   
   VARCHAR(n) ڴ洢󳤶ȵı䳤ַõġ TEXT
   ڴ洢ɴ 1GҵδƳȵַ
   
   CHAR(n) ʺڴ洢ַͬ
   CHAR(n)ֶγԿո㣨ֶݣ 
   VARCHAR(n) ֻ洢ݡ BYTEA
d769 1
a769 1
   ֽڵֵЩ;Ƶԡ
d771 1
a771 1
    4.11.1)һк/ԶֶΣ
d774 5
a778 6
   ֶ͡Զһк磺
        CREATE TABLE person (
                id   SERIAL,
                name TEXT
        );

d780 9
a788 7
        CREATE SEQUENCE person_id_seq;
        CREATE TABLE person (
                id   INT4 NOT NULL DEFAULT nextval('person_id_seq'),
                name TEXT
        );

   ο create_sequence ֲҳȡеĸϢ
d790 1
a790 1
    4.11.2)λһкŵֵ
d793 4
a796 4
   ֵȻʽ롣ʹ 4.11.1 α
        new_id = execute("SELECT nextval('person_id_seq')");
        execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");

d798 2
a799 2
    עԶ SEQUENCE ƽ
   <table>_<serialcolumn>_seq  table  serialcolumn
a800 1
   
d802 58
a859 29
   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 
    
   PostgreSQL
   ﴴÿһм¼һΨһOIDڴʱʹWITHOUT
   OIDSѡ OIDʱԶһ4ֽڵ OID 
   PostgreSQL оΨһġ Ȼڳ40ʱ
   OID˺ظPostgreSQL ڲϵͳʹ OID
   ڱ֮佨ϵ
   
   ûݱУʹSERIAlOID
   ΪSERIALֻǱ֤ڵΨһģĿԾͷǳС
    SERIAL88ֽڵкֶΡ
   
   CTID ڱʶݿ飨ַͣڣƫƵضС CTID
   ڼ¼Ļغı䡣ʹָС
d861 1
a861 1
    4.13)ΪʲôյϢERROR: Memory exhausted in AllocSetAlloc()
d865 2
a866 3
        ulimit -d 262144
        limit datasize 256m

d869 19
a887 5
   
   ҲòѯɡӦڵǰ̣Լк
   ӽ̡
   SQLͻʱΪ̨̫ݶ⣬п
   ͻ֮ǰִ
d889 1
a889 1
    4.14)β֪е PostgreSQL İ汾
d891 2
a892 1
    psql  SELECT version();ָ
d894 1
a894 1
    4.15)δһȱʡֵǵǰʱֶΣ
d896 14
a909 4
   ʹ CURRENT_TIMESTAMP
        CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP );

    4.16) outer join ӣ
d912 10
a921 12
        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
   []ӡ[]Ӻȫ[]ǿѡģͨӱΪ
d923 24
d948 1
a948 1
    4.17)ʹ漰ݿĲѯ
d950 4
a953 3
   ûа취ѯǰݿ֮ݿ⡣ Ϊ PostgreSQL
   ҪݿصϵͳĿ¼ϵͳ˿ݿĲѯִǲ
   ġ
d955 7
a961 2
   ֵģcontrib/dblinkúʵֿѯȻûҲ
   ͬʱӵͬݿִвѯȻڿͻ˺ϲ
d963 1
a963 1
    4.18)úضлУ
d965 8
a972 2
   ںзݼ¼ĹǺʹõģμ
   http://techdocs.postgresql.org/guides/SetReturningFunctions
d974 3
a976 2
    4.19)ΪʲôʹPL/PgSQLȡʱʱյϢrelation with
    OID ##### does not exist
d978 1
a978 4
   PL/PgSQLỺ溯ݣɴ˴һõĸһ PL/PgSQL
   һʱȻñɾؽˣٴεøúʧܣ
   ΪĺȻָɵʱķ PL/PgSQL
   EXECUTE ʱзʡᱣ֤ѯִǰܻᱻ½
d980 1
a980 1
    4.27)ĿǰЩݸƷã
d982 2
a983 1
   ơֻһкüָƼʹãÿֶŵȱ㣺
d985 6
a990 3
   /ӸƷʽһܶ/д룬ӷֻܽ
   /SELECTѯ룬 Ŀǰѵ/ PostgreSQLƷ
   Slony-I 
d992 5
a996 6
   ĸƷʽ/д뷢͸̨ļַʽ
   Ҫڶ̨֮ͬݱ䶯
   ܻصʧPgclusterĿǰַ
   õģһء
   
   ҲһЩҵ踶ѺͻӲݸƷָ֧ģ͡
@


