new file mode 100644
(file)
index 0000000..
c50a412
--- /dev/null
+
+ PostgreSQL 31ドル⁄4ûÎÊÌ⣠̈FAQ£© ×ばつî1⁄2ü ̧üУo2003 Äê 01 Ô 06 ÈÕ ÐÇÆÚÒ»
+ 22:27:35 CST Ŀǰά»¤ÈËÔ±£oBruce Momjian (pgman@candle.pha.pa.us )
+ ÖÐÎİæÎ¬»¤ÈËÔ±£ooÎΰÆ1⁄2 £ ̈laser@pgsqldb.com £©
+ ×ばつîаæ±3⁄4¿ÉÒÔÔÚhttp:
+ //www.postgresql.org/files/documentation/faqs/FAQ.html 2é¿ ́¡£
+ ×ばつ÷ÏμÍ3Æ1⁄2Ì ̈Ïà1ØμÄÎÊÌâÔÚhttp://www.postgresql.org/docs/faq/Àï»Ø ́ð¡£
+ ----------------------------------------------------------------------
+ -- 31ドル⁄4ûÎÊÌâ 1.1 <#1.1>) PostgreSQL ÊÇÊ2à ́£¿ ̧ÃÔõà ́·¢Òô£¿ 1.2 <#1.2>)
+ PostgreSQL μİæÈ ̈ÊÇÊ2à ́? 1.3 <#1.3>) PostgreSQL ÔËÐÐÔÚÊ2à ́ Unix
+ Æ1⁄2Ì ̈ÉÏ£¿ 1.4 <#1.4>) ¿ÉÓÃμÄ·Ç Unix Æ1⁄2Ì ̈ÓÐÄÇЩ£¿ 1.5 <#1.5>)
+ ÎÒ ́ÓÄÄÀïÄÜμÃμ1⁄2 PostgreSQL£¿ 1.6 <#1.6>) ÎÒ ́ÓÄÄÀïÄÜμÃμ1⁄2¶Ô PostgreSQL
+ μÄÖ§3Ö£¿ 1.7 <#1.7>) PostgreSQL ×ばつîÐÂμİæ±3⁄4ÊÇÊ2à ́£¿ 1.8 <#1.8>)
+ ÓÐÄÄЩ¿ÉÓÃμÄ PostgreSQL μÄÎÄμμ£¿ 1.9 <#1.9>) ÎÒÈçoÎÁË1⁄2âÒÑÖaμÄ BUG
+ »òȱʧμÄÌØÐÔ£¿ 1.10 <#1.10>) ÎÒÓ¦ ̧ÃÔõÑùѧϰ SQL £¿ 1.11 <#1.11>)
+ PostgreSQL ÊÇ Y2K 1⁄4æÈÝμÄÂ𣿠1.12 <#1.12>) ÎÒÓ¦ ̧ÃÔõÑù1⁄4ÓÈë¿a·¢¶ÓÎ飿
+ 1.13 <#1.13>) ÎÒÓ¦ ̧ÃÔõÑùÌá1⁄2»Ò» ̧ö BUG ± ̈ ̧棿 1.14 <#1.14>) PostgreSQL
+ oÍÆäËû DBMS ±ÈÆðÀ ́ÈçoΣ¿ 1.15 <#1.15>) ÎÒÓ¦ ̧ÃÔõÑùÔÞÖú PostgreSQL £¿
+ Óû§¿Í»§¶ËÎÊÌâ 2.1 <#2.1>) ÓÐ PostgreSQL μÄ ODBC Çý¶ ̄3ÌÐòà ́£¿ 2.2
+ <#2.2>) ÓÐÊ2à ́1¤3⁄4ß¿ÉÒÔ°Ñ PostgreSQL ÓÃÓÚ Web Ò3Ãæ£¿ 2.3 <#2.3>)
+ PostgreSQL ÓμÓÐÍ1⁄4ÐÎÓû§1⁄2çÃæÂ𣿠2.4 <#2.4>) ÎÒÃÇ¿ÉÒÔÓÃÊ2à ́ÓïÑÔoÍ
+ PostgreSQL ́ò1⁄2»μÀ£¿ ÏμÍ31ÜÀíÎÊÌâ 3.1 <#3.1>) ÎÒÔõÑùÄÜ°Ñ PostgreSQL
+ ×ばつ°ÔÚ /usr/local/pgsql ÒÔÍâμÄμØ·1⁄2£¿ 3.2 <#3.2>) μ±ÎÒÔËÐÐ postmaster
+ ʱ£¬3öÏÖ/ Bad System Call/£ ̈ÏμÍ3μ÷Óà ́í£© »ò Core Dumped ́íÎó¡£ÎaÊ2à ́£¿
+ 3.3 <#3.3>) μ±ÎÒÊÔÍ1⁄4ÔËÐÐ postmaster ʱ£¬3öÏÖ /IpcMemoryCreate/
+ ́íÎó¡£Îa Ê2à ́£¿ 3.4 <#3.4>) μ±ÎÒÊÔÍ1⁄4ÔËÐÐ postmaster ʱ£¬3öÏÖ
+ /IpcSemaphoreCreate/ ́íÎó¡£ ÎaÊ2à ́£¿ 3.5 <#3.5>)
+ ÎÒÈçoοØÖÆÀ ×ばつÔÆäËûÖ÷»úμÄÁ¬1⁄2Ó£¿ 3.6 <#3.6>)
+ ÎÒÔõÑùμ÷ÕûÊý3⁄4Ý¿âÒýÇæÒÔ»ñμà ̧üoÃμÄÐÔÄÜ£¿ 3.7 <#3.7>) PostgreSQL
+ Àï¿ÉÒÔ»ñμÃÊ2à ́ÑùμÄμ÷ÊÔÌØÐÔ£¿ 3.8 <#3.8>)
+ ÎaÊ2à ́ÔÚÊÔÍ1⁄4Á¬1⁄2ÓμÇÂ1⁄4ʱÊÕμ1⁄2¡°Sorry, too many clients¡± ÏûÏ¢£¿ 3.9
+ <#3.9>) pgsql_tmp Ä¿Â1⁄4Àï¶1⁄4ÓÐЩÊ2à ́£¿ 3.10 <#3.10>) ÎaÊ2à ́ÒaÔÚÉý1⁄4¶
+ PostgreSQL ×ばつö dump oÍ restore £¿ ×ばつ÷ÎÊÌâ 4.1 <#4.1>)
+ ¶þ1⁄2øÖÆÓαêoÍÆÕÍ ̈ÓαêÖ®1⁄4äμÄÇø±ðÊÇÊ2à ́£¿ 4.2 <#4.2>)
+ ÈçoÎֻѡÔñÒ» ̧ö2éÑ ̄1⁄2á1ûμÄÍ·1⁄4 ̧ÐУ¿ 4.3 <#4.3>)
+ ÎÒÈçoλñȡһ ̧öÊý3⁄4Ý¿âÖбíμÄÁÐ±í£¬»òÕßÊÇÆäËûÎÒÄÜÔÚ /psql /Àï¿ ́
+ μ1⁄2μĶ«Î÷£¿ 4.4 <#4.4>) ÔõÑù ́Ó±íÀïÃæÉ3⁄43ýÒ»ÁУ¿ 4.5 <#4.5>)
+ Ò»ÐУ¬Ò» ̧ö±í£¬Ò» ×ばつî ́ó3ß ́çÊǶàÉÙ£¿ 4.6 <#4.6>)
+ ́æ ́¢Ò» ̧öμäÐÍμÄÎı3⁄4ÎÄ1⁄4þÀïμÄÊý3⁄4ÝÐèÒa¶àÉÙ ́ÅÅÌ¿Õ1⁄4䣿 4.7 <#4.7>)
+ ÈçoÎ2é¿ ́±í¡¢Ë÷Òý¡¢Êý3⁄4Ý¿âÒÔ1⁄4°Óû§μĶ ̈Ò壿 4.8 <#4.8>)
+ ÎÒμÄ2éÑ ̄oÜÂý»òÕßûÓÐÀûÓÃË÷Òý¡£ÎaÊ2à ́£¿ 4.9 <#4.9>)
+ ÎÒÈçoÎ2ÅÄÜ¿ ́μ1⁄22éÑ ̄ÓÅ» ̄Æ÷ÊÇÔõÑù ́¦ÀíÎÒμÄ2éÑ ̄μÄ£¿ 4.10 <#4.10>) R-tree
+ Ë÷ÒýÊÇÊ2à ́£¿ 4.11 <#4.11>) Ê2à ́ÊÇ»ùÒò2éÑ ̄ÓÅ» ̄£ ̈Genetic Query
+ Optimization£©£¿ 4.12 <#4.12>)
+ ×ばつöÕýÔò±í ́ïÊ1⁄2ËÑË÷oÍ ́óСР́ÎÞ1ØμÄÕýÔò±í ́ïÊ1⁄22éÕÒ£¿ÔõÑùÀû
+ ÓÃË÷Òý1⁄2øÐÐ ́óСР́ÎÞ1Ø2éÕÒ£¿ 4.13 <#4.13>)
+ ÔÚÒ» ̧ö2éÑ ̄ÀÎÒÔõÑù1⁄4ì2âÒ» ×ばつÖ¶ÎÊÇ·ñÎa NULL£¿ 4.14 <#4.14>)
+ ×ばつÖ·ûÀàÐÍÖ®1⁄4äÓÐÊ2à ́2»Í¬£¿ 4.15.1 <#4.15.1>)
+ ÎÒÔõÑù ́ ́1⁄2 ̈Ò» ×ばつÔ¶ ×ばつֶΣ¿ 4.15.2 <#4.15.2>)
+ ÎÒÈçoλñμÃÒ» ̧ö2åÈëμÄÐòÁÐoÅμÄÖμ£¿ 4.15.3 <#4.15.3>) Ê1Óà currval() oÍ
+ nextval() »áμ1⁄4ÖÂoÍÆäËûÓû§μÄÎÉÂÒÇé¿ö £ ̈race condition£©Â𣿠4.15.4
+ <#4.15.4>) ÎaÊ2à ́2»ÔÚÊÂÎñÒì3£ÖÐÖ1oóÖØÓÃÐòÁÐoÅÄØ£¿ÎaÊ2à ×ばつÖ
+ ¶ÎμÄÈ¡ÖμÖÐ ́æÔÚ1⁄4ä¶ÏÄØ£¿ 4.16 <#4.16>) Ê2à ́ÊÇ OID£¿Ê2à ́ÊÇ TID £¿ 4.17
+ <#4.17>) PostgreSQL Ê1ÓÃμÄһЩÊõÓïμÄo¬ÒåÊÇÊ2à ́£¿ 4.18 <#4.18>)
+ ÎaÊ2à ́ÎÒÊÕμ1⁄2 ́íÎó¡°/ERROR: Memory exhausted in AllocSetAlloc()/¡±£¿
+ 4.19 <#4.19>) ÎÒÈçoÎ2ÅÄÜÖaμÀËùÔËÐÐμÄ PostgreSQL μİæ±3⁄4£¿ 4.20 <#4.20>)
+ ÎaÊ2à ́ÎÒμÄ ×ばつ÷μ1⁄4Ö ́íÎó¡°/invalid large obj
+ descriptor¡±£ ̈·Ç· ̈μÄ ́ó¶ÔÏóÃèÊö·û£©/£¿ 4.21 <#4.21>)
+ ÎÒÈçoÎ ́ ́1⁄2 ̈Ò» ×ばつֶΣ¿ 4.22 <#4.22>) ÎaÊ2à ́Ê1Óà IN
+ ×ばつÓ2éÑ ̄Õâà ́Âý£¿ 4.23 <#4.23>) ÈçoÎ1⁄2øÐÐ outer join £ ̈ÍâÁ¬1⁄2Ó£©£¿ 4.24
+ <#4.24>) ÈçoÎÊ1ÓÃÉæ1⁄4°¶à ̧öÊý3⁄4Ý¿âμÄ2éÑ ̄£¿ 4.25 <#4.25>)
+ ÈçoÎÈÃo ̄Êý·μ»Ø¶àÐлò¶àÁУ¿ 4.26 <#4.26>) ÎaÊ2à ́ÔÚ PL/PgSQL
+ o ̄ÊýÖÐ2»Äܿɿ¿μØ ́ ́1⁄2 ̈»òÉ3⁄43ýÁÙʱ±í£¿ 4.27 <#4.27>) ÓÐÄÄЩÊý3⁄4Ý ̧ ́ÖÆÑ¡Ï
+ 4.28 <#4.28>) ÓÐÄÄЩÊý3⁄4Ý1⁄4ÓÃÜÑ¡Ï À©Õ1 PostgreSQL 5.1 <#5.1>)
+ ÎÒÐ ́ÁËÒ» ̧öÓû§¶ ̈Òåo ̄Êý¡£μ±ÎÒÔÚ/ psql/ ÀïÔËÐÐʱ£¬ÎaÊ2à ́»áμ1⁄4Ö core
+ dump£¿ 5.2 <#5.2>) ÎÒÈçoÎÄÜ ̧ø PostgreSQL
+ ×ばつһЩͦ2» ́íμÄÐÂÀàÐÍoÍo ̄Êý£¿ 5.3 <#5.3>) ÎÒÔõÑùÐ ́Ò» ̧ö·μ»ØÒ»Ìõ1⁄4ÇÂ1⁄4μÄ
+ C o ̄Êý£¿ 5.4 <#5.4>)
+ ÎÒÐÞ ̧ÄÁËÒ» ̧öÔ ́ÎÄ1⁄4þ£¬ÎaÊ2à ́ÖØÐ±àÒëoóûÓп ́μ1⁄2 ̧ı䣿
+ ----------------------------------------------------------------------
+ -- 31ドル⁄4ûÎÊÌâ 1.1) PostgreSQL ÊÇÊ2à ́£¿ ̧ÃÔõà ́·¢Òô£¿ PostgreSQL ×ばつ÷
+ /Post-Gres-Q-L// ¡£/ PostgreSQL ÊÇÏÂÒ» ́ú DBMS μÄÑÐ3⁄4¿ÔÐÍ POSTGRES
+ Êý3⁄4Ý¿â1ÜÀíÏμÍ3μÄÔöÇ¿°æ¡£ PostgreSQL ÔÚ±3ドルÖ POSTGRES
+ μÄÇ¿ ́óμÄÊý3⁄4ÝÄ£ÐÍoÍ·á ̧»μÄÊý3⁄4ÝÀàÐÍμÄ»ù ́¡ÉÏ£¬Óà һ ̧öÀ©Õ1ÁËμÄ SQL
+ ×ばつÓ1⁄4 ̄È¡ ́úÁËÔÏÈμÄ PostQuel 2éÑ ̄ÓïÑÔ¡£PostgreSQL ×ばつÔÓÉμÄ
+ 2¢ÇÒËùÓÐÔ ́ ́úÂë¶1⁄4¿ÉÒÔ»ñμᣠPostgreSQL μÄ¿a·¢ÓÉ2Î1⁄4Ó PostgreSQL
+ ¿a·¢ÓÊ1⁄4þÁбíμÄÒ» ̧ö¿a×ばつé1⁄2øÐС£ ĿǰμÄÐμ÷ÈËÊÇ Marc G. Fournier
+ £ ̈scrappy@postgreSQL.org £©¡££ ̈1ØÓÚÈçoÎ1⁄4ÓÈë2Î1⁄4û1.61⁄2Ú£©¡£Õâ ̧ö¶ÓÎé
+ ÏÖÔÚ ̧oÔð PostgreSQL μÄËùÓпa·¢¡£ PostgreSQL 1.01 ×ばつ÷ÕßÊÇ Andrew Yu oÍ
+ Jolly Chen¡£»1ÓÐÐí¶àÆäËûÈËÎaÒÆÖ2£¬
+ 2âÊÔ£¬μ÷ÊÔoÍÔöÇ¿ ×ばつöÁË ×ばつ¡£PostgreSQL ×ばつî3õÆðÔ ́
+ Postgres£¬ÊÇÔÚ1⁄4Ó ÖÝ ́óѧ2®¿ËÀû·ÖУμÄ Michael Stonebraker
+ 1⁄2ÌÊÚμÄÖ ̧μ1⁄4Ï£¬ÓÉÐí¶àÑÐ3⁄4¿Éú£¬±3⁄4¿Æ Éúoͱà3ÌÖ°Ô±Íê3ÉμÄ¡£
+ Õâ ×ばつÖÊÇ Postgres¡£ÔÚ 1995 Ä꣬μ±Ôö1⁄4ÓÁË SQL
+ 1¦ÄÜoó£¬ ×ばつÖ ̧Ä3É Postgres95¡£ÔÚ 1996ÄêÄ©£¬2Å ̧ÄÃûÎa PostgreSQL¡£
+ 1.2) PostgreSQL μİæÈ ̈ÊÇÊ2à ́? PostgreSQL ÊÜÏÂÃæμİæÈ ̈Ô1⁄4Êø¡£ PostgreSQL
+ Êý3⁄4Ý¿â1ÜÀíÏμÍ3 £ ̈PostgreSQL Data Base Management System£©
+ 2¿·Ö°æÈ ̈£ ̈c£©1996-2002£¬PostgreSQL È«Çò¿a×ばつé 2¿·Ö°æÈ ̈£ ̈c£©1994-6
+ 1⁄4ÓÖÝ ́óѧ¶Ê £ ̈Portions copyright (c) 1996-2002, PostgreSQL Global
+ Development Group Portions Copyright (c) 1994-6 Regents of the
+ University of California£©
+ ÔÊÐíÎaÈÎoÎÄ¿μÄÊ1Ó㬿1⁄2± ́£¬ÐÞ ̧ÄoÍ·Ö·¢Õâ ̧öÈí1⁄4þoÍËüμÄÎÄμμ¶ø2»ÊÕÈ¡ÈÎoηÑÓÃ
+ £¬
+ 2¢ÇÒÎÞÐëÇ©ÊðÒò ́˶ø2úÉúμÄÖ¤Ã÷£¬Ç°ÌáÊÇÉÏÃæμİæÈ ̈ÉùÃ÷oͱ3⁄4¶ÎÒÔ1⁄4°ÏÂÃæÁ1⁄2¶ÎÎÄ
+ ×ばつÖ 3öÏÖÔÚËùÓп1⁄2± ́ÖС£ £ ̈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.£©
+ ÔÚÈÎoÎÇé¿öÏ£¬1⁄4ÓÖÝ ́óѧ¶1⁄42»3Ðμ£ÒòÊ1Óà ́ËÈí1⁄4þ1⁄4°ÆäÎÄμμ¶øμ1⁄4ÖÂμĶÔÈÎoÎμ±ÊÂÈË
+ μÄ
+ Ö±1⁄2ÓμÄ£¬1⁄4ä1⁄2ÓμÄ£¬ÌØÊâμÄ£¬ ̧1⁄21⁄4ÓμÄ»òÕßÏà°é¶øÉúμÄËð»μ£¬°üÀ ̈ÀûÒæËðʧμÄÔðÈΣ¬
+ 1⁄4 ́ Ê11⁄4ÓÖÝ ́óѧÒÑ3⁄41⁄2 ̈ÒéÁËÕâЩËðʧμÄ¿ÉÄÜÐÔʱÒ2ÊÇÈç ́Ë¡£ £ ̈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.£©
+ 1⁄4ÓÖÝ ́óѧÃ÷È··ÅÆúÈÎoα£Ö¤£¬°üÀ ̈μ«2»3⁄4ÖÏÞÓÚÄ3Ò»ÌØ¶ ̈ÓÃÍ3⁄4μÄÉÌÒμoÍÀûÒæμÄÒþo¬
+ ±£
+ ×ばつ÷ÊÇ¡±μÄ»ù ́¡μÄ£¬Òò¶ø1⁄4ÓÖÝ ́óѧûÓÐÔðÈÎÌá
+ 1©Î¬ »¤£¬Ö§3Ö£¬ ̧üУ¬ÔöÇ¿»òÕßÐÞ ̧ÄμÄ·þÎñ¡£ £ ̈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.£©
+ ÉÏÃæ3⁄4ÍÊÇ BSD °æÈ ̈ÉùÃ÷£¬Ò» ̧ö3⁄4μäμÄ¿aÔ ́°æÈ ̈ÉùÃ÷¡£Ëü¶ÔÔ ́ ́úÂëμÄÊ1ÓÃÎ ×ばつ÷ÈÎoÎ
+ ÏÞÖÆ¡£ÎÒÃÇÏ2»¶Ëü2¢ÇÒ2» ́òËã ̧ıäËü¡£ 1.3) PostgreSQL ÔËÐÐÔÚÊ2à ́ Unix
+ Æ1⁄2Ì ̈ÉÏ£¿ Ò»°ãËμÀ ́£¬Ò» ̧öÏÖ ́úμÄ UNIX 1⁄4æÈÝμÄÆ1⁄2Ì ̈¶1⁄4ÄÜÔËÐÐ PostgreSQL
+ ×ばつ°Ö ̧ÄÏÀïÁÐ 3öÁË·21ドル⁄4ʱ3⁄41ýÃ÷È·2âÊÔμÄÆ1⁄2Ì ̈¡£ 1.4) ¿ÉÓÃμÄ·Ç Unix
+ Æ1⁄2Ì ̈ÓÐÄÄЩ£¿ ¿Í»§¶Ë °Ñ libpq C
+ ¿â£¬psql£¬ÆäËû1⁄2Ó¿ÚoͿͻ§¶ËÓ¦ÓÃ3ÌÐò±àÒë3É¿ÉÒÔÔÚ MS Windows Æ1⁄2
+ Ì ̈ÉÏÔËÐÐÊÇ¿ÉÄÜμÄ¡£ÕâÖÖÇé¿öÏ£¬¿Í»§¶ËÔÚ MS Windows ÉÏÔËÐУ¬2¢ÇÒÍ ̈1ý
+ TCP/IP ÓëÒ» ̧öÔËÐÐÔÚÎÒÃÇÖ§3ÖμÄ Unix
+ Æ1⁄2Ì ̈ÉÏμÄ·þÎñÆ÷1⁄2øÐÐÍ ̈Ѷ¡£·21ドル⁄4°æ±3⁄4Öаü o¬Ò» ̧öÎÄ1⁄4þ win32.mak ÓÃÓÚÉú3É
+ Win32 libpq ¿âoÍ psql ¡£PostgreSQL Ò2¿ÉÒÔ oÍ ODBC ¿Í»§¶ËÍ ̈Ѷ¡£ ·þÎñÆ÷
+ Êý3⁄4Ý¿â·þÎñÆ÷ÏÖÔÚ¿ÉÒÔÍ ̈1ý Cygwin £¬Cygnus μÄ Unix/NT ÒÆÖ2¿âÔÚ Windows
+ NT oÍ Win2k ÉÏÔËÐС2ドルÎÔÄ·21ドル⁄4°æ±3⁄4ÀïμÄ See /pgsql/doc/FAQ_MSWIN/ ÎÄ1⁄4þ»ò
+ http://www.PostgreSQL.org/docs/faq-mswin.html ¡£ ÒÆÖ2μ1⁄2 MS Win
+ NT/2000/XP ×ばつ÷ÕýÔÚ1⁄2øÐС£ 1.5) ÎÒ ́ÓÄÄÀïÄÜμÃμ1⁄2 PostgreSQL£¿
+ PostgreSQL μÄÖ÷ÄäÃûFTPÕ3⁄4μãÊÇ
+ ftp://ftp.PostgreSQL.org/pub£¬3⁄4μÏñÕ3⁄4μã¿ÉÒÔ 2ο1⁄4ÎÒÃÇÍøÕ3⁄4μÄÖ÷Ò3¡£ 1.6)
+ ÎÒ ́ÓÄÄÀïÄÜμÃμ1⁄2¶Ô PostgreSQL μÄÖ§3Ö£¿
+ Ö÷ÒaμÄÓÊ1⁄4þÁбíÊÇ£opgsql-general@postgreSQL.org ¡£¿ÉÒÔÔÚÄÇÀïÌÖÂÛÓÐ1Ø
+ PostgreSQL μÄ ÎÊÌâ¡£Òa1⁄4ÓÈëÁÐ±í£¬·¢Ò»·âÓÊ1⁄4þÄÚÈÝ£ ̈2»ÊÇÖ÷ÌâÐУ©Îa
+ subscribe end μÄÓÊ1⁄4þμ1⁄2 pgsql-general-request@postgreSQL.org ¡£
+ »1¿ÉÒÔ»ñÈ¡ÕaÒaÁÐ±í¡£Òa1⁄4ÓÈëÕâ ̧öÁÐ±í£¬·¢ÓÊ1⁄4þμ1⁄2£opgsql-general-digest-
+ request@postgreSQL.org £¬ÆäÄÚÈÝÎa£o subscribe end ÿμ±Ö÷Áбí ́ïμ1⁄2 ́óÔ1⁄4
+ 30k μÄÏûÏ¢ÄÚÈÝʱ£¬ÕaÒa3⁄4Í·¢ËÍ ̧øÕâ ̧öÁбíμÄ3ÉÔ±¡£
+ »1¿ÉÒÔ2Î1⁄4Ó3ô3æÓÊ1⁄4þÁÐ±í¡£Òa1⁄4ÓÈëÕâ ̧öÁÐ±í£¬·¢ËÍÒ» ̧öÓÊ1⁄4þμ1⁄2
+ bugs-request@postgreSQL.org £¬ÄÚÈÝÎa£o subscribe end
+ »1¿ÉÒÔ2Î1⁄4Ó¿a·¢ÈËÔ±ÓÊ1⁄4þÁÐ±í¡£Òa1⁄4ÓÈëÕâ ̧öÁÐ±í£¬·¢ËÍÒ» ̧öÓÊ1⁄4þμ1⁄2
+ hackers-request@postgreSQL.org £¬ ÄÚÈÝÎa£o subscribe end ÆäËûμÄ1ØÓÚ
+ PostgreSQL ÓÊ1⁄4þÁбíoÍÆäËûÐÅÏ¢¿ÉÒÔÔÚ PostgreSQL μÄ WWW Ö÷Ò3ÕÒμ1⁄2£o
+ http://postgresql.org/ ÔÚ EFNet Àï»1ÓÐÒ» ̧ö IRC ÆμμÀ£¬ÆμμÀ
+ #PostgreSQL¡£ÎÒÓà unix ÃüÁîirc -c '#PostgreSQL' "$USER"
+ irc.phoenix.net ÉÌÒμÖ§3Ö1«Ë3⁄4μÄÁбíÔÚ
+ http://www.PostgreSQL.org/users-lounge/commercial-support.html ¡£ 1.7)
+ PostgreSQL ×ばつîÐÂμİæ±3⁄4ÊÇÊ2à ́£¿ PostgreSQL ×ばつîÐÂμİæ±3⁄4Êǰæ±3⁄4
+ 7.2.3¡££ ×ばつ¢£oÏÖÔÚÓ¦ ̧ÃÊÇ 7.3.1 ÁË¡££©
+ ÎÒÃÇ1⁄4Æ»®Ã¿ËÄ ̧öÔ·21ドル⁄4Ò» ̧öÖ÷Òa°æ±3⁄4¡£ 1.8) ÓÐÄÄЩ¿ÉÓÃμÄ PostgreSQL
+ μÄÎÄμμ£¿ ×ばつÓ¡2ドルÎ1⁄4û /doc
+ Ä¿Â1⁄4¡££ ×ばつ¢£o Ó¦Îa $PGHOME/doc£©¡£Äã»1¿ÉÒÔÔÚÏßä ̄ÀÀ PostgreSQL
+ μÄÊÖ2ᣬÔÚ http://www.PostgreSQL.org/users-lounge/docs/ ¡£ ÓÐÁ1⁄2±3⁄41ØÓÚ
+ PostgreSQL μÄÊéÔÚÏßÌá1©£¬ÔÚ http://www.PostgreSQL.org/docs/awbook.html
+ www.PostgreSQL.org/docs/awbook.html> oÍ
+ http://www.commandprompt.com/ppbook/ www.commandprompt.com/ppbook/>
+ ¡£ÔÚ http://www.ca.PostgreSQL.org/books/ www.ca.PostgreSQL.org/books/>
+ ÉÏÓÐ1ØÓÚ PostgreSQL μÄ¿É1oÊé1⁄4®μÄÁÐ ±í¡£ÔÚ
+ http://techdocs.PostgreSQL.org/ techdocs.PostgreSQL.org/> ÉÏÊÕ1⁄4 ̄ÁËÓÐ1Ø
+ PostgreSQL μÄ1⁄41⁄4ÊõÎÄÕ¡£ /psql/ ÓÐһЩ2» ́íμÄ \d
+ ×ばつ÷·û£¬o ̄Êý£¬3⁄4Û1⁄4 ̄μÈμÄÐÅÏ¢¡£ ÎÒÃÇμÄ web
+ Õ3⁄4μã°üo¬ ̧ü¶àμÄÎÄμμ£® 1.9) ÎÒÈçoÎÁË1⁄2âÒÑÖaμÄ BUG oÍȱʧμÄÌØÐÔ£¿
+ PostgreSQL Ö§3ÖÒ» ̧öÀ©Õ1ÁËμÄ SQL-92 ×ばつÓ1⁄4 ̄¡2ドルÎÔÄÎÒÃÇμÄ TODO
+ www.postgresql.org/docs/todo.html>
+ www.postgresql.org/docs/todo.html>ÁÐ±í£¬»ñȡһ ̧öÒÑÖa3ô3æ£¬È±Ê§ÌØ
+ ÐÔoÍÎ ́À ́1⁄4Æ»®¡£ 1.10) ÎÒÓ¦ ̧ÃÔõÑùѧϰ SQL£¿ ÔÚ
+ http://www.postgresql.org/docs/awbook.html μÄ1ØÓÚ PostgreSQL μÄÊé1⁄2ÌÊÚ
+ SQL¡££ ×ばつ¢£oÎÒÏÂÔØμ1⁄2±3⁄4μØÁË¡££©ÔÚ http://www.commandprompt.com/ppbook
+ www.commandprompt.com/ppbook/> ÓÐÁíÍâÒ»±3⁄41ØÓÚ PostgreSQL μÄÊé¡£
+ ÔÚhttp://www.intermedia.net/support/sql/sqltut.shtm£¬http:
+ //ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM
+ ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM> oÍ
+ http://sqlcourse.com sqlcourse.com/> ÓÐÒ» ̧ö2» ́íμÄÈëÃÅ1⁄2Ì3Ì¡£ ÁíÒ» ̧öÊÇ
+ "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> ÎÒÃÇμÄÐí¶àÓû§Ï2»¶ /The
+ Practical SQL Handbook, Bowman, Judith S., et al., Addison-Wesley ¡£ /
+ ÆäËûμÄÓÐ/ The Complete Reference SQL, Groff et al., McGraw-Hill ¡£/
+ 1.11) PostgreSQL ÊÇ Y2K 1⁄4æÈÝμÄÂ𣿠×ばつ¿ØÖÆ 2000 AD Ö®oóoÍ
+ 2000 BC ֮ǰμÄÈÕÆÚ¡£ 1.12) ÎÒÓ¦ ̧ÃÔõÑù1⁄4ÓÈë¿a·¢¶ÓÎ飿
+ ×ばつîÐÂμÄÔ ́ ́úÂë2¢ÔĶÁÎÒÃÇ web Õ3⁄4μã»ò·21ドル⁄4°üÖÐμÄ PostgreSQL
+ ¿a·¢Õß ÎÄμμ¡£Æä ́Σ¬1⁄4ÓÈë pgsql-hackers oÍ pgsql-patches
+ ÓÊ1⁄4þÁÐ±í¡£μÚÈý£¬Ïò pgsql-patches Ìá1⁄2» ̧ßÖÊÁ¿μÄ21¶¡3ÌÐò¡£
+ ÏÖÔÚ ́ó ̧ÅÓÐÊ®1⁄4 ̧ ̧öÈËÓÐ PostgreSQL CVS 1éμμ COMMIT μÄÈ ̈ÏÞ¡£ËûÃǶ1⁄4ÒÑ3⁄4
+ Ìá1⁄2»ÁË
+ ·Ç3£¶à ̧ßÖÊÁ¿μÄ21¶¡ÁË£¬ÒÔÖÁÓÚÏÖÓÐμÄÌá1⁄2»ÈËoÜÄÑ ×ばつ࣬2¢ÇÒÎÒÃÇÏàÐÅËûÃÇ
+ Ìá 1⁄2»μÄ21¶¡¶1⁄4ÊÇ ̧ßÖÊÁ¿μÄ¡£ 1.13) ÎÒÓ¦ ̧ÃÔõÑùÌá1⁄2»Ò» ̧öBUG± ̈ ̧棿 Çë·ÃÎÊ
+ http://www.PostgreSQL.org/bugs/bugs.php μÄ PostgreSQL BugTool Ò3 Ãæ,
+ ÄÇÀï ̧ø3öÁËÈçoÎÌá1⁄2»Ò» ̧öBUG± ̈ ̧æμÄÖ ̧ÄÏ¡£ ͬÑùÒ2Òa¿ ́¿ ́ÎÒÃÇμÄ ftp Õ3⁄4μã
+ ftp://ftp.postgreSQL.org/pub ftp.postgresql.org/pub>£¬¿ ́ÓÐûÓÐ ̧üÐÂμÄ
+ PostgreSQL °æ±3⁄4»ò21¶¡¡£ 1.14) PostgreSQL oÍÆäËû DBMS ±ÈÆðÀ ́ÈçoΣ¿
+ ÆÀ1⁄4ÛÈí1⁄4þÓÐoÃ1⁄4 ̧ÖÖ·1⁄2· ̈£oÌØÐÔ£¬ÐÔÄÜ£¬¿É¿¿ÐÔ£¬Ö§3ÖoÍ1⁄4Û ̧ñ¡£ *ÌØÐÔ*
+ PostgreSQL ÓμÓÐ ́óÐÍÉÌÓà DBMS Àï ×ばつÓ2éÑ ̄£¬ ́\·¢
+ Æ÷£¬ÊÓÍ1⁄4£¬Íâ1⁄4ü2ο1⁄4ÍêÕûÐÔoÍ ̧ ́ÔÓμÄËøμÈ¡£ÎÒÃÇ»1ÓÐһЩËüÃÇûÓÐμÄÌØÐÔ£¬Èç
+ Óû§¶ ̈ÒåÀàÐÍ£¬1⁄4Ì3У¬1æÔòoÍ¶à°æ±3⁄42¢ÐпØÖÆÒÔ1⁄4õÉÙËøμÄÕùÓÃμÈ¡£ *ÐÔÄÜ*
+ PostgreSQL oÍÆäËûÉÌÓÃoÍ¿aÔ ́μÄÊý3⁄4Ý¿â3⁄4ßÓÐÀàËÆμÄÐÔÄÜ¡£¶ÔÄ3Щ ́¦ÀíËü±È1⁄2Ï
+ ¿ì£¬¶ÔÆäËûһЩ ́¦ÀíËü±È1⁄2ÏÂý¡£Óë MySQL »ò ̧üÇá±ãμÄÊý3⁄4Ý¿âÏμÍ3±È1⁄2Ï£¬ÎÒÃÇ ÔÚ
+ insert/update ʱÂý£¬ÒòÎaÎÒÃÇÓÐÊÂÎñ ́¦Àí¡£μ±È» MySQL 2»3⁄4ßÓÐÎÒÃÇÔÚÉÏ
+ ÃæμÄ/ÌØÐÔ /¶ÎÀï ̧ø3öμÄÈÎoÎÌØÐÔ¡£ÎÒÃÇμÄÖ÷Òa·1⁄2ÏòÊǿɿ¿ÐÔoÍÌØÐÔ£¬3⁄4¡1ÜÎÒ
+ ÃÇÔÚÿ ́η21ドル⁄4ʱ2»¶ÏμØ ̧Ä1⁄2øÐÔÄÜ¡£ÓÐÒ» ̧öoÜÓÐȤμÄÍøÒ3±È1⁄2ÏÁË PostgreSQL oÍ
+ MySQL http://openacs.org/why-not-mysql.html¡£ *¿É¿¿ÐÔ* ÎÒÃÇÖaμÀ DBMS
+ ×ばつöμ1⁄2·21ドル⁄43⁄4
+ 1ýÈÏÕæ2âÊÔμÄ£¬Îȶ ×ばつîÉÙμÄ ́úÂ롣ÿ ̧ö°æ±3⁄4ÖÁÉÙÓÐÒ» ̧öÔÂμÄ beta 2â
+ ÊÔ£¬2¢ÇÒÎÒÃÇμÄ·21ドル⁄4ÀúÊ·ÏÔÊ3⁄4ÎÒÃÇ¿ÉÒÔÌá1©Îȶ ̈μÄ£¬ÀÎ1ÌμÄ£¬¿ÉÓÃÓÚÉú2úÊ1ÓÃ
+ μİæ±3⁄4¡£ÎÒÃÇÏàÐÅÔÚÕâ·1⁄2ÃæÎÒÃÇÓëÆäËûμÄÊý3⁄4Ý¿âÈí1⁄4þÊÇÏàμ±μÄ¡£ *Ö§3Ö*
+ ÎÒÃÇμÄÓÊ1⁄4þÁбíÌá1©Ò» ̧ö·Ç3£ ́óμÄ¿a×ばつéÒÔ°ïÖú1⁄2â3⁄4öËùÅöμ1⁄2μÄÈÎ
+ oÎÎÊÌâ¡£ÎÒÃÇ2»Äܱ£Ö¤¿Ï¶ ̈ÄÜ1⁄2â3⁄4öÎÊÌ⣬Ïà±È֮ϣ¬ÉÌÓà DBMS ×ばつÜÄÜ
+ 1»Ìá1©1⁄2â3⁄4ö·1⁄2· ̈¡£Ö±1⁄2ÓÓë¿a·¢ÈËÔ±£¬Óû§Èo£¬ÊÖ2áoÍÔ ́3ÌÐò1⁄2Ó ́\Áî PostgreSQL
+ μÄÖ§3Ö±ÈÆäËû DBMS »1Òa×ばつ°μÄÖ§3Ö£¬
+ ¿ÉÒÔ ̧øÌá1© ̧øÄÇЩÐèÒaμÄÈË¡££ ̈2ÎÔÄÖ§3Ö FAQ Ìõ¿î 1.6 С1⁄2Ú¡££© *1⁄4Û ̧ñ*
+ ÎÒÃǶÔÈÎoÎÓÃÍ3⁄4¶1⁄4Ãâ·Ñ£¬°üÀ ̈ÉÌÓÃoÍ·ÇÉÌÓÃÄ¿μÄ¡£Äã¿ÉÒÔ2»1⁄4ÓÏÞÖÆμØÏòÄãμÄ2ú
+ Æ·Àï1⁄4ÓÈëÎÒÃÇμÄ ́úÂ룬3ýÁËÄÇЩÎÒÃÇÔÚÉÏÃæμİæÈ ̈ÉùÃ÷ÀïÉùÃ÷μÄ BSD ·ç ̧ñμÄ
+ °æÈ ̈Íâ¡£ 1.15) ÎÒÓ¦ ̧ÃÔõÑùÔÞÖú PostgreSQL £¿ ×ばつÔ ́Ó1996Äê¿aÊ1⁄4£¬PostgreSQL
+ ÒÑ3⁄4ÓÐÁËÒ» ×ばつéÖ ̄¡£ÕâЩӦ ̧Ã1é1¦ÓÚ Marc
+ Fournier£¬ÊÇËû ́ ́1⁄2 ̈ÁË2¢ÔÚÕâЩÄêÒ»Ö±1ÜÀíÕâ ×ばつéÖ ̄¡£
+ ¶ÔÓÚÒ» ̧ö¿aÔ ́ÏîÄ¿À ́Ë죬ÖÊÁ¿»ù ́¡ÉèÊ©ÊÇ·Ç3£ÖØÒaμÄ¡£ËüÄÜ·ÀÖ13öÏÖÑÏÖØÑÓ3ÙÏî
+ Ä¿ ǰ1⁄2øμÄ»ìÂÒ¡£
+ ÏÔÈ»£¬Õâ ×ばつéÖ ×ばつa3ɱ3⁄42»·Æ¡£Î¬3ÖÆäǰ1⁄2øÓÐ ̧÷ÖÖÔ¶ÈμÄ¡¢Ò» ́ÎÐÔμÄ¿aÖ§¡£Èç
+ 1û Äã»òÕßÄãμÄ1«Ë3⁄4ÄÜ1⁄2øÐÐ3⁄4èÔùÒÔÖ§3ÖÕâÏîÊÂÒ죬Çë·ÃÎÊ
+ http://store.pgsql.com/shopping/ store.pgsql.com/shopping/> 1⁄2øÐÐ
+ 3⁄4èÔù¡£ ËäÈ» ̧ÃÍøÒ3Ìá1⁄4°ÁË PostgreSQL 1«Ë3⁄4£¬ÕâЩ3⁄4èÔù1⁄2«1⁄2öÓÃÓÚÖ§3Ö
+ PostgreSQL ÏîÄ¿£¬
+ ×ばつÊÖúû ̧öÌØ¶ ̈μÄ1«Ë3⁄4¡£Èç1ûÄãÔ ̧Ò⣬Ò2¿ÉÒÔÓÊ1⁄4Ä֧Ʊμ1⁄2ÁaÏμμØÖ·¡£
+ ----------------------------------------------------------------------
+ -- Óû§¿Í»§¶ËÎÊÌâ 2.1) ÓÐ PostgreSQL μÄ ODBC Çý¶ ̄à ́£¿ ÓÐÁ1⁄2 ̧ö ODBC
+ Çý¶ ̄¿ÉÒÔ»ñμã¬PsqlODBC oÍ OpenLink ODBC.
+ ¿ÉÒÔÔÚhttp://gborg.postgresql.org/project/psqlodbc/projdisplay.php
+ ÏÂÔØ PsqlODBC ¡£ OpenLink ODBC ¿ÉÒÔ ́Ó http://www.openlinksw.com/
+ ×ばつ1⁄4 ODBC
+ ¿Í»§¶ËÈí1⁄4þ1⁄4æÈÝ£¬Òò¶øÄã¿ÉÒÔÔÚÈÎoÎËûÃÇÖ§3ÖμĿͻ§¶ËÆ1⁄2Ì ̈£ ̈Win, Mac, Unix,
+ VMS£©ÉÏÊ1Óà PostgreSQL ODBC¡£
+ ËûÃÇ¿ÉÄÜ1⁄2«Õâ ̧ö2úÆ·ÏúÊÛ ̧øÄÇЩÐèÒa×ばつÜÊÇÓÐÒ» ̧ö
+ freeware £ ×ばつÔÓÉÈí1⁄4þ£©μİæ±3⁄4¿ÉÒÔμÃμ1⁄2¡£ÇëÑ ̄ÎÊ postgres95@openlink.co.uk
+ ¡£ 2.2) ÓÐÊ2à ́1¤3⁄4ß¿ÉÒÔ°Ñ PostgreSQL ÓÃÓÚ Web Ò3Ãæ£¿
+ Ò» ̧ö1⁄2éÉÜÒÔÊý3⁄4Ý¿âÎaoóÌ ̈μÄͦ2» ́íμÄ Õ3⁄4μãÊÇ£ohttp://www.webreview.com ¡£
+ ¶ÔÓÚ Web 1⁄4 ̄3É£¬PHP ÊÇÒ» ̧ö1⁄4«oÃμÄ1⁄2Ó¿Ú¡£ËüÔÚ£ohttp://www.php.net/ ¡£
+ ¶ÔÓÚ ̧ ́ÔÓμÄÈÎÎñ£¬oܶàÈË2ÉÓà Perl 1⁄2Ó¿ÚoÍ CGI.pm »ò mod_perl ¡£ 2.3)
+ PostgreSQL ÓμÓÐÍ1⁄4ÐÎÓû§1⁄2çÃæÂ𣿠ÊÇμÄ¡£ÓÐ1⁄4 ̧ ̧öÊÊÓÃÓÚ PostgreSQL
+ μÄÍ1⁄4ÐÎ1⁄2Ó¿Ú¡£°üÀ ̈PgAccess£ ̈http: //www.pgaccess.com)£¬PgAdmin II
+ £ ̈http://www.pgadmin.org£¬1⁄2öÊÊÓÃÓÚ Win32£©£¬ RHDB Admin
+ (http://sources.redhat.com/rhdb/£© ÒÔ1⁄4° Rekall
+ £ ̈http://www.thekompany.com/products/rekall/£¬
+ ×ばつ ̈ÓÐμÄ/proprietary)¡£»1ÓÐ PHPPgAdmin
+ £ ̈http://phppgadmin.sourceforge.net/£© phppgadmin.sourceforge.net/>
+ £¬Ò» ̧ö»ùÓÚ web μÄ PostgreSQL ·ÃÎÊ1⁄2Ó ¿Ú¡£
+ ÎÒÃÇÓÐÒ» ̧ö2» ́íμÄÍ1⁄4ÐÎÓû§1⁄2çÃæ£¬3ÆÎa PgAccess
+ ×ばつ÷± ̈±íÉú3ÉÆ÷¡£Íø Ò3ÊÇ http://www.pgaccess.org/¡£ 2.4)
+ ÎÒÃÇ¿ÉÒÔÓÃÊ2à ́ÓïÑÔoÍ PostgreSQL ́ò1⁄2»μÀ£¿ ́ó¶àÊýÁ÷ÐÐμıà3ÌÓïÑÔ¶1⁄4ÓзÃÎÊ
+ PostgreSQL μÄ1⁄2Ó¿Ú¡£Çë1⁄4ì2é±à3ÌÓïÑÔμÄÀ©Õ1Ä£¿é ÁÐ±í¡£ PostgreSQL
+ ·21ドル⁄4°üÖаüo¬ÁËÒÔÏÂ1⁄2Ó¿Ú£o * C (libpq) * Embedded C (ecpg) * Java (jdbc)
+ * Python (PyGreSQL) * TCL (libpgtcl) ÆäËûμÄ1⁄2Ó¿ÚÔÚ
+ http://gborg.postgresql.org ÉÏμÄ /Drivers/Interfaces/ С1⁄2Ú¡£
+ ----------------------------------------------------------------------
+ -- ÏμÍ31ÜÀíÎÊÌâ 3.1) ÎÒÔõÑùÄÜ°Ñ PostgreSQL ×ばつ°ÔÚ /usr/local/pgsql
+ ÒÔÍâμÄμØ·1⁄2£¿ ÔÚÔËÐÐ configure ʱ1⁄4ÓÉÏ --prefix Ñ¡Ïî¡£ 3.2) μ±ÎÒÔËÐÐ
+ postmaster ʱ£¬3öÏÖ/ Bad System Call/£ ̈ÏμÍ3μ÷Óà ́í£©»ò Core Dumped
+ ́íÎó¡£ÎaÊ2à ́£¿ ×ばつ÷ÏμÍ3oËÐÄÊÇ·ñÖ§3Ö
+ System V À©Õ1¡£ PostgreSQL ÐèÒaÄÚoËÖ§3Ö12ÏíÄÚ ́æoÍÐÅoÅμÆ¡£ 3.3)
+ μ±ÎÒÊÔÍ1⁄4ÔËÐÐ postmaster ʱ£¬3öÏÖ /IpcMemoryCreate/ ́íÎó¡£Îa Ê2à ́£¿
+ ÄãÒaà ́ÊÇûÓÐÔÚÄÚoËÀïÕýÈ·ÅäÖÃ12ÏíÄÚ ́棬Òaà ́ÊÇÄãÐèÒaÀ© ́óÄãμÄÄÚoËμÄ¿ÉÓÃ12
+ Ïí ÄÚ ́æ¡£ÐèÒaμÄ12ÏíÄÚ ́æ3⁄4ßÌåμÄÊýÁ¿È¡3⁄4öÓÚÄãμÄÌåÏμ1⁄2á11oÍÄãÅäÖÃÄãμÄ
+ postmaster
+ ÔËÐÐʱÊ1ÓÃμÄ»o3åÇøoÍoó¶Ë1⁄2ø3ÌÊýÄ¿¡£¶Ô ́ó¶àÊýÏμÍ3£¬Ê1ÓÃȱʡ»o3åÇøoÍ1⁄2ø3ÌÊý
+ Ä¿ ×ばつîÉÙÐèÒa~1MB¡£ÓÐ1Ø12ÏíÄÚ ́æoÍÐÅoÅμÆμÄÏêÏ ̧ÐÅÏ¢Çë2ο1⁄4 PostgreSQL
+ Administrator's Guide
+ www.postgresql.org/idocs/index.php?kernel-resources.html> ¡£ 3.4)
+ μ±ÎÒÊÔÍ1⁄4ÔËÐÐ postmaster ʱ£¬3öÏÖ /IpcSemaphoreCreate/ ́í Îó¡£ÎaÊ2à ́£¿
+ Èç1û ́íÎóÐÅÏ¢ÊÇ /IpcSemaphoreCreate: semget failed (No space left on
+ device)/£¬ÄÇà ×ばつÊÔ ́¡£Postgres μÄÿ ̧öDZ
+ ÔÚμÄoóÌ ̈1⁄2ø3̶1⁄4ÐèÒaÒ» ̧öÐÅoÅμÆ¡£Ò» ̧öÁÙʱμÄ1⁄2â3⁄4ö·1⁄2· ̈ÊÇÒÔ±È1⁄2ÏÉÙμÄoóÌ ̈1⁄2ø3ÌÊý
+ £ ̈2ÎÊý£©Æô¶ ̄ postmaster¡£Ê1Óÿa1Ø /-N/ ́øÒ» ̧öÉÙÓÚȱʡÖμ 32 μÄ2ÎÊýÔËÐÐ
+ postmaster¡£ ̧ü3¤3⁄4ÃμÄ1⁄2â3⁄4ö·1⁄2· ̈ÊÇ1⁄4Ó ́óÄãμÄÄÚoËμÄ SEMMNS oÍ SEMMNI 2ÎÊý¡£
+ ÔÚÊý3⁄4Ý¿â·ÃÎÊÁ¿oÜ ́óʱ£¬ÐÅoÅμÆ2»¿ÉÓÿÉÄÜμ1⁄4ÖÂÏμÍ3±ÀÀ£¡£
+ Èç1û ́íÎóÐÅÏ¢ÊÇÆäËûμÄÊ2à ́¶«Î÷£¬Äã¿ÉÄÜ3⁄4Í ̧ù±3⁄4ûÓÐÔÚÄÚoËÀïÃæÅäÖÃÐÅoÅμÆÖ§3Ö
+ ¡£ ÓÐ1Ø12ÏíÄÚ ́æoÍÐÅoÅμÆμÄÏêÏ ̧ÐÅÏ¢Çë2ο1⁄4 PostgreSQL Administrator's
+ Guide www.postgresql.org/idocs/index.php?kernel-resources.html> ¡£
+ 3.5) ÎÒÈçoοØÖÆÀ ×ばつÔÆäËûÖ÷»úμÄÁ¬1⁄2Ó£¿ ȱʡʱ£¬PostgreSQL Ö»ÔÊÐíÍ ̈1ý unix
+ ×ばつÖÀ ×ばつÔ±3⁄4»úμÄÁ¬1⁄2Ó¡3ドルý·ÇÄãÊ1Óà /-i/ ¿a1ØÆô¶ ̄
+ /postmaster/£¬*2¢ÇÒ*Í ̈1ý¶ÔÓ¦μıà1⁄4 /$PGDATA/pg_hba.conf/
+ ÎÄ1⁄4þ ́ò¿aÁËÖ÷»úÎa»ù ́¡£ ̈ host-based
+ £©μÄÈÏÖ¤£¬·ñÔòÆäËû»úÆ÷ÊÇ2»ÄÜÓëÄãμÄ»úÆ÷ Á¬1⁄2ÓμÄ¡£ÕâÑù1⁄2«ÔÊÐí TCP/IP
+ Á¬1⁄2Ó¡£ 3.6) ÎÒÔõÑùμ÷ÕûÊý3⁄4Ý¿âÒýÇæÒÔ»ñμà ̧üoÃμÄÐÔÄÜ£¿
+ μ±È»£¬Ë÷Òý¿ÉÒÔ1⁄4ÓËÙ2éÑ ̄¡£EXPLAIN ÃüÁîÔÊÐíÄã1Û2ì PostgreSQL
+ ÈçoÎ1⁄2âÊÍÄãμÄ2é Ñ ̄£¬ÒÔ1⁄4°Ê1ÓÃÁËÄÄЩË÷Òý¡£ Èç1ûÄãÕý ́¦ÀíÒ»¶Ñ
+ INSERT£¬¿1⁄4ÂÇÊ1Óà COPY ÃüÁîÒÔ ×ばつö±È μ\¶ÀμÄÒ» ̧ö ̧ö
+ INSERT ¿ìμöࡣÆä ́Σ¬Ã»ÓÐ ́¦ÓÚ BEGIN WORK/COMMIT ÊÂÎñ¿éÖ®1⁄4ä
+ μÄÓï3⁄4ä±»ÈÏÎaÊôÓÚͬһ ×ばつÅÔÚÒ» ̧öÊÂÎñ¿éÀïÃæ ́¦Àí ̧ü¶àμÄÓï3⁄4ä¡£ÕâÑù¿É
+ ÒÔ
+ 1⁄4õÉÙÊÂÎñ ́øÀ ́μĶîÍâ¿a×ばつö ́óÁ¿μÄÊý3⁄4Ý ̧ıäʱ¿1⁄4ÂÇÉ3⁄43ýoÍÖØ1⁄2 ̈Ë÷Òý¡£
+ »1ÓÐ1⁄4 ̧ ̧öμ÷1⁄2ÚμÄÑ¡Ïî¿ÉÒÔÊ1Óá£Äã¿ÉÒÔÍ ̈1ý ́ø /-o -F/ Ñ¡ÏîÆô¶ ̄ postmaster
+ À ́ 1⁄2ûÖ1 fsync()¡£ÕâÑù1⁄2«±ÜÃâÿ ́ÎÊÂÎñoóμ÷Óà /fsync() /
+ °ÑÊý3⁄4ÝË¢ÐÂμ1⁄2 ́ÅÅÌÉÏ¡£ Äã»1¿ÉÒÔÊ1Óà postmaster -B
+ Ñ¡ÏîÔö1⁄4Óoó¶Ë1⁄2ø3ÌÊ1ÓÃμÄ12ÏíÄÚ ́æ»o3åμÄÊýÄ¿¡£Èç
+ 1ûÄã°ÑÕâ ̧ö2ÎÊýÉèÖÃμÃÌ« ́ó£¬postmaster ¿ÉÄÜÎÞ· ̈Æô¶ ̄£¬ÒòÎaÄãÒÑ3⁄43¬1ýÁËÄãμÄ
+ ÄÚoËÔÚ12ÏíÄÚ ́æ¿Õ1⁄4äÉÏμÄÏÞÖÆ¡£Ã¿ ̧ö»o3åÇøÊÇ 8K 2¢ÇÒȱʡ 64 ̧ö»o3åÇø¡£
+ Äã»1¿ÉÒÔÊ1ÓÃoóÌ ̈1⁄2ø3ÌμÄ -S
+ Ñ¡ÏîÀ ́Ôö1⁄4Óÿ ̧öoóÌ ×ばつî ́óÄÚ ́æ ÊýÁ¿¡£-S
+ ×ばつÖ1⁄2Ú1⁄4ÆμÄ£¬È±Ê¡ÊÇ 512 £ ̈Ò23⁄4ÍÊÇË죬512K£©¡£ Äã»1¿ÉÒÔÊ1Óà CLUSTER
+ ÃüÁîÀ ́°Ñ±íÀïμÄÊý3⁄4ݰ ́ÕÕÄ3 ̧öË÷Òý1⁄2øÐÐ3⁄4Û1⁄4 ̄ ́æ·Å¡2ドルÎÔÄ CLUSTER
+ μÄÊÖ2áÒ3»ñÈ¡ ̧ü¶àÏ ̧1⁄2Ú¡£ 3.7) PostgreSQL Àï¿ÉÒÔ»ñμÃÊ2à ́ÑùμÄμ÷ÊÔÌØÐÔ£¿
+ PostgreSQL
+ ÓÐ1⁄4 ̧ ̧öÌØÐÔÓÃÓÚ± ̈ ×ばつ ̬́ÐÅÏ¢£¬ÕâЩÐÅÏ¢¿ÉÄܶÔμ÷ÊÔÓÃÍ3⁄4oÜÓаïÖú¡£
+ ×ばつÏÈ£¬Í ̈1ý ̧1⁄2 ́ø --enable-cassert Ñ¡ÏîÔËÐÐ configure£¬ÓÐoܶà /assert()/
+ 1⁄4à ¿ØoóÌ ̈1⁄2ø3ÌoÍÔÚ·¢ÉúÄ3ЩΠ́ÔøÔ¤ÁÏμÄÏÖÏóʱͣÖ13ÌÐòÔËÐС£ postmaster oÍ
+ postgres ×ばつÏÈ£¬μ±ÄãÆô¶ ̄ postmaster
+ ×ばつ1⁄4 ́íÎóÊä3ö¶ ̈Ïòμ1⁄2ÁËÒ» ̧öÈÕÖ3⁄4ÎÄ1⁄4þÀïÈ\ÁË£¬Ïó£o cd
+ /usr/local/pgsql ./bin/postmaster >server.log 2>&1 & ÕâÑù1⁄2«ÔÚ
+ PostgreSQL ¶1円⁄4¶Ä¿Â1⁄4ÏÂÊä3öÒ» ̧ö server.log ÎÄ1⁄4þ¡£Õâ ̧öÎÄ1⁄4þ°üo¬·þÎñ
+ Æ÷Åöμ1⁄2μÄÎÊÌâoÍ ́íÎóμÄÓÐÓÃÐÅÏ¢¡£postmaster ÓÐÒ» ̧ö -d
+ Ñ¡Ï ̧ÃÑ¡ÏîÔÊÐíÎÒÃÇ »ñμà ̧ü¶àμÄÏ ̧1⁄2ڻ㱠̈¡£-d
+ Ñ¡Ïî1⁄2ÓÊÜÒ» ×ばつÖ±êÃ÷μ÷ÊÔ1⁄4¶±ð¡£ÐèÒa3⁄4 ̄ ̧æμÄÊÇ ̧ßμÄμ÷
+ ÊÔ1⁄4¶±ð¿ÉÄÜ»áÉú3É3⁄4Þ ́óμÄÈÕÖ3⁄4ÎÄ1⁄4þ¡£ Èç1û postmaster
+ ûÓÐÔËÐУ¬Äã¿ÉÒÔÖ±1⁄2ÓÔÚÃüÁîÐÐÉÏÆô¶ ̄ postgres oóÌ ̈1⁄2ø3Ì£¬È» oóÖ±1⁄2Ó1⁄4üÈë
+ SQL Óï3⁄4ä¡£ÎÒÃÇ*Ö»* ÍÆ1⁄4öÔÚμ÷ÊÔμÄʱoòÕâà ́ ×ばつ¢ÒâÕâʱÓû»ÐÐÜÞ
+ ¶ø2»ÊÇ·ÖoűíÊ3⁄4Óï3⁄4ä1⁄2áÎ2¡£Èç1ûÄã ×ばつÅμ÷ÊÔ·ûoűàÒ룬Äã¿ÉÒÔÊ1ÓÃÒ» ̧öμ÷ÊÔÆ÷1Û
+ ¿ ́ ·¢ÉúÁËÊ2à ́ÊÂÇé¡£ÒòÎaoóÌ ̈1⁄2ø3ÌûÓÐÓÉ postmaster
+ Æô¶ ̄μÄ£¬Ëü2»ÊÇoÍÊμ1⁄4ÊμÄÔËÐÐ
+ »·3⁄43Ò»Ö£¬¶øÇÒËø¶ ̈/oóÌ ̈1⁄2»»\ÎÊÌâ¿ÉÄÜ2»ÄÜÖØÏÖ¡£ Èç1û postmaster ÒÑ3⁄4
+ ÔËÐУ¬¿ÉÔÚÒ» ̧ö ́°¿ÚÖÐÆô¶ ̄ /psql/£¬È»oóÕÒ3ö /psql/ ¶Ô Ó¦μÄ /postgres/
+ 1⁄2ø3ÌμÄ PID¡£Ê1ÓÃÒ» ̧öμ÷ÊÔÆ÷ ×ばつÅÔÚÕâ ̧ö /postgres /PID ÉÏ¡£
+ Äã¿ÉÒÔÔÚμ÷ÊÔÆ÷ÀïÉèÖöÏμã2¢ÇÒ ́Ó /psql/ ÀïÖ ́ÐÐ2éÑ ̄¡£Èç1ûÄãÔÚμ÷ÊÔ
+ /postgres/ μÄÆô¶ ̄£¬Äã¿ÉÒÔÉèÖà PGOPTIONS="-W n"£¬È»oóÆô¶ ̄
+ /psql/¡£ÕâÑù1⁄2« μ1⁄4ÖÂÆô¶ ̄ÑÓ3Ù /n/
+ Ã룬ÕâÑùÄã3⁄4Í¿ÉÒÔ ̧1⁄21⁄4ÓÒ» ̧öμ÷ÊÔÆ÷2¢ÇÒ ×ばつÙÆô¶ ̄Ë3ÐòμÄ1ý3Ì¡£ postgres 3ÌÐòÓÐ
+ -s£¬-A£¬oÍ -t Ñ¡Ïî¿ÉÄÜÔÚμ÷ÊÔoÍÐÔÄÜ2âÁ¿μÄʱoò·Ç3£ÓÐÓᣠÄã»1¿ÉÒÔ ́ø
+ profiling Ö§3Ö±àÒëoóÌ ̈£¬ÒÔ±ã1Û2ìÄÄЩo ̄ÊýÕ1⁄4ÓÃμÄÖ ́ÐÐʱ1⁄4ä1⁄2϶ࡣ profile
+ ÎÄ1⁄4þ1⁄2«·ÅÔÚ pgsql/data/base/dbname Ä¿Â1⁄4Ï¡£¿Í»§¶Ë profile ÎÄ1⁄4þ1⁄2«
+ ·ÅÔÚ¿Í»§¶Ëμ±Ç°Ä¿Â1⁄4Ï¡£ÔÚ Linux ÏÂÖ§3Ö profiling ÒaÔÚ±àÒëʱ1⁄4ÓÉÏ/-
+ DLINUX_PROFILE / ¡£ 3.8) ÎaÊ2à ́ÔÚÊÔÍ1⁄4Á¬1⁄2ÓμÇÂ1⁄4ʱÊÕμ1⁄2¡°Sorry, too many
+ clients¡±ÏûÏ¢£¿ ÄãÐèÒaÔö ́ó postmaster Æô¶ ̄ʱ֧3ÖμÄ2¢·¢oóÌ ̈1⁄2ø3ÌÊý¡£
+ ȱʡÏÞÖÆÊÇ 32 1⁄2ø3Ì¡£Äã¿ÉÒÔÍ ̈1ý ×ばつÅÊÊμ±μÄ /-N/ Öμ¿a1ØÆô¶ ̄ postmaster
+ Ôö1⁄4Ó Õâ ̧öÊýÄ¿¡£»òÕßÐÞ ̧Ä /postgresql.conf/ ÎÄ1⁄4þ¡£ Òa×ばつ¢ÒâÈç1ûÄã°Ñ /-N/
+ ÉèÖÃÎa ́óÓÚ 32£¬Äã±ØÐëͬÑùÔö ́ó /-B/£¬3¬1ýËüȱʡμÄ 64£»-B ×ばつîÉÙÊÇ -N
+ μÄÁ1⁄2±¶£¬¶øÇÒÎaÁË ̧üoÃμÄÐÔÄÜ¿ÉÄÜÒa±ÈÄÇ ×ばつÖÒa ́ó¡£¶Ô
+ ÓÚ ́óÊýÄ¿μÄoó¶Ë1⁄2ø3Ì£¬Äã¿ÉÄÜ»1»á·¢ÏÖÄã»1ÐèÒaÔö1⁄4ÓÐí¶à Unix
+ ÄÚoËÅäÖÃ2ÎÊýÖμ¡£
+ Òa1⁄4ì2éμĶ«Î÷°üÀ ̈12ÏíÄÚ ×ばつî ́ó3ß ×ばつî ́óÊýÄ¿£¬SEMMNS
+ oÍ
+ ×ばつî ×ばつî ́ó1⁄2ø3ÌÊý£¬MAXUPRC£¬ÒÔ1⁄4° ́ò¿aÎÄ1⁄4þ
+ ×ばつî ́óÊýÄ¿£¬NFILE oÍ NINODE ¡£Postgres ¶ÔÔÊÐíμÄoóÌ ̈1⁄2ø3ÌÊýÓÐÏÞÖÆμÄÔÒòÊÇ
+ Îa×ばつÊÔ ́¡£ ÔÚ Postgres ÔçÓÚ 6.5
+ ×ばつî ́óoóÌ ̈1⁄2ø3ÌÊýȱʡÊÇ 64£¬2¢ÇÒ¶ÔËüμÄÐÞ ×ばつÏÈ ÐèÒaÐÞ ̧Ä
+ /include/storage/sinvaladt.h/ ÀïμÄ MaxBackendId 3£Á¿£¬È»oóÖØÐ BUILD¡£
+ 3.9) pgsql_tmp Ä¿Â1⁄4Àï¶1⁄4ÓÐЩÊ2à ́£¿
+ ̧ÃÄ¿Â1⁄4ϱ£ ́æÁË2éÑ ̄Ö ́ÐÐÆ÷Éú3ÉμÄÁÙʱÎÄ1⁄4þ¡£ÀýÈ磬Èç1ûÐèÒaÎa×ばつã ORDER BY
+ Ìõ ×ばつöÅÅÐò£¬2¢ÇÒÅÅÐòÐèÒa±ÈoóÌ ̈μÄ -S
+ 2ÎÊý ̧ø3öμÄ ̧ü¶àμÄ¿Õ1⁄4䣬ÄÇà ́3⁄4Í»á ́ ́1⁄2 ̈Ò» ̧ö ÁÙʱÎÄ1⁄4þ±£ ́æ¶à3öÀ ́μÄÊý3⁄4Ý¡£
+ ÁÙʱÎÄ1⁄4þÓ¦ ×ばつÔ¶ ̄É3⁄43ý£¬2»1ýÈç1ûÔÚÅÅÐò1ý3ÌÖÐoóÌ ̈±ÀÀ£ÁË3⁄4Í¿ÉÄÜÁôÏÂÀ ́¡£Í£Ö1
+ 2¢ ÖØÆð postmaster 1⁄2«»áÉ3⁄43ýÕâЩÎÄ1⁄4þ¡£ 3.10) ÎaÊ2à ́ÒaÔÚÉý1⁄4¶ PostgreSQL
+ ×ばつö dump oÍ restore £¿ PostgreSQL
+ ¿a×ばつé¶Ôÿ ×ばつöÁË1⁄2ÏÉÙμÄÐÞ ̧Ä,Òò ́Ë ́Ó 7.2 Éý1⁄4¶μ1⁄2 7.2.1 2»ÐèÒa
+ dump oÍ restore¡£μ«ÊÇÖ÷ÒaμÄÉý1⁄4¶£ ̈ÀýÈç ́Ó 7.2 μ1⁄2 7.3£©Í ̈3£»áÐÞ ̧ÄÏμ
+ Í3±íoÍÊý3⁄4ݱíμÄÄÚ2¿ ̧ñÊ1⁄2¡£ÕâЩ±ä» ̄Ò»°ã±È1⁄2Ï ̧ ́ÔÓ£¬Òò ́ËÎÒÃÇ2»Î¬Êý3⁄4ÝÎÄ1⁄4þμÄÏò
+ oó 1⁄4æÈÝ¡£dump
+ 1⁄2«Êý3⁄4ݰ ́ÕÕÍ ̈ÓÃμÄ ̧ñÊ1⁄2Êä3ö£¬Ëæoó¿ÉÒÔ±»ÖØÐÂ1⁄4ÓÔØ2¢Ê1ÓÃÐÂμÄÄÚ2¿ ̧ñÊ1⁄2¡£
+ ́ÅÅÌÎÄ1⁄4þ ̧ñÊ1⁄2ûÓÐ±ä» ̄μÄÉý1⁄4¶£¬¿ÉÒÔÓà /pg_upgrade/ 1⁄2ű3⁄4£¬¶ø2»ÐèÒa×ばつö dump
+ oÍ restor¡£·21ドル⁄4ËμÃ÷script »áÖ ̧Ã÷ /pg_upgrade/ ¶Ô ̧à ́ÎÉý1⁄4¶ÊÇ·ñ¿ÉÓá£
+ ----------------------------------------------------------------------
+ -- ×ばつ÷ÎÊÌâ 4.1) ¶þ1⁄2øÖÆÓαêoÍÆÕÍ ̈ÓαêÖ®1⁄4äμÄÇø±ðÊÇÊ2à ́£¿ 2ÎÔÄ DECLARE
+ ÊÖ2áÒ3»ñÈ¡ÐÅÏ¢¡£ 4.2)ÈçoÎÖ» SELECT Ò» ̧ö2éÑ ̄1⁄2á1ûμÄÍ·1⁄4 ̧ÐУ¿ 2ÎÔÄ FETCH
+ ÊÖ2áÒ3£¬»òÕßÊ1Óà SELECT ... LIMIT....
+ 1⁄4 ́Ê1ÄãÖ»ÐèÒa¿aÍ·μÄ1⁄4 ̧ÐУ¬Ò2»áÉæ1⁄4°μ1⁄2Õû ̧ö2éÑ ×ばつÅÊ1Óà ́øÓÐ ORDER BY μÄ2é
+ Ñ ̄¡£Èç1ûÓÐÒ» ̧öË÷ÒýÓë ORDER BY Æ\Å䣬PostgreSQL
+ ¿ÉÄÜ3⁄4ÍÖ» ́¦ÀíÒaÇóμÄÍ·1⁄4 ̧Ìõ
+ 1⁄4ÇÂ1⁄4£¬·ñÔò1⁄2«¶ÔÕû ̧ö2éÑ ̄1⁄2øÐÐ ́¦ÀíÖ±μ1⁄2Éú3ÉÐèÒaμÄÐС£ 4.3)
+ ÎÒÈçoλñȡһ ̧ö±íμÄÁÐ±í£¬»òÕßÊÇÆäËûÎÒÄÜÔÚ /psql/ Àï¿ ́μ1⁄2μĶ«Î÷£¿
+ Äã¿ÉÒÔÔĶÁ /psql/ μÄÔ ́ ́úÂëÎÄ1⁄4þ/pgsql/src/bin/psql/describe.c/
+ ¡£Ëü°üÀ ̈Îa Éú3É psql μÄ· ́б ̧ÜÃüÁîμÄÊä3öμÄ SQL ÃüÁî¡£Äã»1¿ÉÒÔ ́ø /-E/
+ Ñ¡ÏîÆô¶ ̄ /psql/£¬ÕâÑùËü1⁄2« ́òÓ¡3öÖ ́ÐÐÄã ̧ø3öμÄÃüÁîËùÓÃμÄ2éÑ ̄¡£ 4.4)
+ ÔõÑù ́Ó±íÀïÃæÉ3⁄43ýÒ»ÁУ¿ 7.3 ÀïÔö1⁄4ÓÁË ALTER TABLE DROP
+ COLUMN£¬ÒÔÖ§3Ö ́ËÏî1¦ÄÜ¡£ÔÚÒÔǰμİæ±3⁄4ÖУ¬¿É ×ばつö£o 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)
+ Ò»ÐУ¬Ò» ̧ö±í£¬Ò» ×ばつî ́ó3ß ́çÊǶàÉÙ£¿ ÏÂÃæÊÇһЩÏÞÖÆ£o
+ Ò» ×ばつî ́ó3ß ́磿 ÎÞÏÞÖÆ£ ̈ ́æÔÚ 1TB μÄÊý3⁄4ݿ⣩ Ò» ×ばつî ́ó3ß ́磿
+ 16TB ×ばつî ́ó3ß ́磿 1.6TB Ò» ×ばつî ́ó3ß ́ç? 1GB Ò» ×ばつî ́óÐÐÊý£¿
+ ÎÞÏÞÖÆ Ò» ×ばつî ́óÁÐÊý£¿ ̧úÁÐÀàÐÍÓÐ1Ø,250-1600
+ Ò» ×ばつî ́óË÷ÒýÊýÁ¿£¿ÎÞÏÞÖÆ
+ μ±È»£¬Êμ1⁄4ÊÉÏûÓÐÕæÕýμÄÎÞÏÞÖÆ£¬»1ÊÇÒaÊÜ¿ÉÓà ́ÅÅÌ¿Õ1⁄4ä¡¢¿ÉÓÃÄÚ ́æ/1⁄2»»»ÇøμÄÖ
+ ÆÔ1⁄4¡£ ×ばつî ́ó3ß ́ç 16 TB 2»ÐèÒa×ばつ÷ÏμÍ3¶Ô ́óÎÄ1⁄4þμÄÖ§3Ö¡£ ́ó±íÓöà ̧ö 1 GB
+ μÄÎÄ1⁄4þ ́æ ́¢£¬Òò ́ËÎÄ1⁄4þÏμÍ33ß ́çμÄÏÞÖÆÊÇ2»ÖØÒaμÄ¡£ Èç1ûȱʡμÄ¿é ́óСÔö3¤μ1⁄2
+ 32K ×ばつî ́óμıí3ß ×ばつî ́óÁÐÊý¿ÉÒÔÔö1⁄4Ó¡£
+ 4.6) ́æ ́¢Ò» ̧öμäÐÍμÄÆ1⁄2ÃæÎÄ1⁄4þÀïμÄÊý3⁄4ÝÐèÒa¶àÉÙ ́ÅÅÌ¿Õ1⁄4䣿 Ò» ̧ö Postgres
+ ×ばつî¶à¿ÉÄÜÐèÒaÏàμ±ÓÚÔÚÒ» ̧öÆ1⁄2ÃæÎÄ1⁄4þÀï ́æ ́¢ÏàͬÊý3⁄4ÝμÄ5±¶ μÄ ́ÅÅÌ¿Õ1⁄4ä¡£
+ ÀýÈ磬1⁄4ÙÉèÓÐÒ» ̧ö 100,000
+ ÐÐμÄÎÄ1⁄4þ£¬Ã¿ÐÐÓÐÒ» ̧öÕûÊýoÍÒ» ̧öÎı3⁄4ÃèÊö¡1ドル⁄4ÙÉèÎÄ
+ ±3⁄4 ×ばつÖ1⁄2Ú¡£Æ1⁄2ÃæÎÄ1⁄4þÕ1⁄4Óà 2.8 MB¡£ ́æ·ÅÕâЩÊý3⁄4ÝμÄ PostgreSQL
+ Êý3⁄4Ý¿âÎÄ1⁄4þ ́óÔ1⁄4ÊÇ 6.4 MB: 36 ×ばつÖ1⁄2Ú: ÿÐÐμÄÍ·£ ̈1À1⁄4ÆÖ죩 24 ×ばつÖ1⁄2Ú:
+ Ò» ̧öin×ばつÖ¶ÎoÍÒ» ×ばつÖ¶Î + 4 ×ばつÖ1⁄2Ú: Ò3ÃæÄÚÖ ̧ÏòÔa×ばつéμÄÖ ̧Õë
+ ---------------------------------------- 64 ×ばつÖ1⁄2ÚÿÐÐ PostgreSQL
+ Êý3⁄4ÝÒ3μÄ ́óСÊÇ 8192 ×ばつÖ1⁄2Ú (8 KB)£¬Ôò£o 8192 ×ばつÖ1⁄2ÚÿÒ3
+ ------------------- = 128 ÐÐ/Êý3⁄4ÝÒ3£ ̈ÏòÏÂÈ¡Õû£© 64 ×ばつÖ1⁄2ÚÿÐÐ 100000
+ Êý3⁄4ÝÐÐ -------------------- = 782 Êý3⁄4ÝÒ3£ ̈ÏòÉÏÈ¡Õû£© 128 ÐÐÿÒ3 782
+ Êý3⁄4ÝÒ3 * 8192 ×ばつÖ1⁄2Ú/Ò3 = 6,406,144 ×ばつÖ1⁄2Ú£ ̈6.4 MB£©
+ Ë÷Òý2»ÐèÒaÕâà ́¶àμĶîÍâÏûoÄ£¬μ«Ò2È·Êμ°üÀ ̈±»Ë÷ÒýμÄÊý3⁄4Ý£¬Òò ́ËËüÃÇÒ2¿ÉÄÜoÜ
+ ́ó¡£ ¿ÕÖμ ́æ·ÅÔÚλÍ1⁄4ÖУ¬Òò ́ËÕ1⁄4ÓÃoÜÉÙμÄ¿Õ1⁄4ä¡£ 4.7)
+ ÈçoÎ2é¿ ́±í¡¢Ë÷Òý¡¢Êý3⁄4Ý¿âÒÔ1⁄4°Óû§μĶ ̈Ò壿 / psql/
+ ÓÐÐí¶à· ́б ̧ÜÃüÁîÓÃÓÚÏÔÊ3⁄4ÕâЩÐÅÏ¢¡£Óà \? ¿ ́¿ ́¶1⁄4ÓÐÄÄЩ¡£ÒÔ pg_ ́ò
+ Í·μÄÏμÍ3±íÒ2ÃèÊöÁËÕâЩÐÅÏ¢¡£ psql -l ¿ÉÒÔÁÐ3öËùÓÐμÄÊý3⁄4ݿ⡣
+ Ò2¿ÉÒÔÊÔÊÔÎÄ1⁄4þ
+ /pgsql/src/tutorial/syscat.source/¡£ËüÑÝÊ3⁄4ÁËÐí¶à ́ÓÊý3⁄4Ý¿â
+ ÏμÍ3±íÀï»ñÈ¡ÐÅÏ¢ÐèÒaμÄ SELECT¡£ 4.8)
+ ÎÒμÄ2éÑ ̄oÜÂý»òÕßûÓÐÀûÓÃË÷Òý¡£ÎaÊ2à ́£¿
+ 2¢·Çÿ ̧ö2éÑ ×ばつÔ¶ ̄Ê1ÓÃË÷Òý¡£Ö»ÓÐÔÚ±íμÄ ́óС3¬1ýÒ» ×ばつîСÖ죬2¢ÇÒ2éÑ ̄Ö»
+ ѡ
+ Ôñ±íÖÐ1⁄2ÏС±ÈÀýμÄÐÐʱ2ÉÓÃÊ1ÓÃË÷Òý¡£ÕâÊÇÒòÎaË÷ÒýÉ ̈ÃèÒýÆðμÄËæ1⁄4 ́ ́ÅÅÌ ́æÈ¡¿É
+ ÄÜ ±ÈÖ±1⁄2ÓμØ¶ÁÈ¡±í£ ̈Ë3ÐòÉ ̈Ã裩 ̧üÂý¡£ÎaÁËÅжÏÊÇ·ñÊ1ÓÃË÷Òý£¬PostgreSQL
+ ±ØÐë»ñ μÃÓÐ1رíμÄÍ31⁄4ÆÖμ¡£ÕâЩÍ31⁄4ÆÖμ¿ÉÒÔÊ1Óà VACUUM ANALYZE£¬»ò ANALYZE
+ »ñμá£Ê1
+ ÓÃÍ31⁄4ÆÖ죬ÓÅ» ̄Æ÷ÖaμÀ±íÖÐÓжàÉÙÐУ¬3⁄4ÍÄÜ1» ̧üoÃμØÅжÏÊÇ·ñÀûÓÃË÷Òý¡£Í31⁄4ÆÖμ
+ ¶Ô
+ È·¶ ̈ÓÅ» ̄μÄÁ¬1⁄2ÓË3ÐòoÍÁ¬1⁄2Ó·1⁄2· ̈Ò2oÜÓÐÓá£ÔÚ±íμÄÄÚÈÝ·¢Éú±ä» ̄ʱ£¬Ó¦¶ ̈ÆÚ1⁄2øÐÐ
+ Í3 1⁄4ÆÖμμÄ»ñÈ¡¡£ Ë÷ÒýÍ ̈32ドル»ÓÃÓÚ ORDER BY
+ »òÖ ́ÐÐÁ¬1⁄2Ó¡£¶ÔÒ» ̧ö ́ó±íμÄÒ» ́ÎË3ÐòÉ ×ばつöÒ» ̧öÏÔ
+ Ê1⁄2μÄÅÅÐòÍ ̈3£±ÈË÷ÒýÉ ̈ÃèÒa¿ì¡£ μ«ÊÇ£¬ÔÚ LIMIT oÍ ORDER BY 1⁄2áoÏÊ1ÓÃʱ3⁄4
+ 3£»áÊ1ÓÃË÷Òý£¬ÒòÎaÖ»»á·μ»Ø±íμÄÒ» С2¿·Ö¡£Êμ1⁄4ÊÉÏ£¬ËäÈ» MAX() oÍ MIN()
+ 22ドル»Ê1ÓÃË÷Òý£¬Í ̈1ý¶Ô ORDER BY oÍ LLIMIT
+ ×ばつî ×ばつîСÖμÒ2ÊÇ¿ÉÒÔμÄ£o SELECT col FROM tab ORDER BY
+ col [ DESC ] LIMIT 1; μ±Ê1ÓÃÍ ×ばつ÷£¬ÀýÈç LIKE »ò ~
+ ʱ£¬Ë÷ÒýÖ»ÄÜÔÚÌØ¶ ̈μÄÇé¿öÏÂÊ1Óão *
+ ×ばつÖ·û ́®μÄ¿aÊ1⁄42¿·Ö±ØÐëÊÇÆÕÍ ×ばつÖ·û ́®£¬Ò23⁄4ÍÊÇËμ£o o LIKE Ä£Ê1⁄22»ÄÜÒÔ %
+ ́òÍ·¡£ o ~ £ ̈ÕýÔò±í ́ïÊ1⁄2£©Ä£Ê1⁄2±ØÐëÒÔ ^ ́òÍ·¡£ *
+ ×ばつÖ·û ́®2»ÄÜÒÔÆ\Åä¶à ×ばつÖ·ûμÄÄ£Ê1⁄2Àà ́òÍ·£¬ÀýÈç [a-e]¡£ *
+ ́óСР́ÎÞ1ØμÄ2éÕÒ£¬Èç ILIKE oÍ ~* μÈ2»Ê1ÓÃË÷Òý¡£μ«¿ÉÒÔÓà 4.12 1⁄2ÚÃè
+ ÊöμÄo ̄ÊýË÷Òý¡£ * ×ばつö initdb ʱ±ØÐë2ÉÓÃȱʡμı3⁄4μØÉèÖà C locale¡£ 4.9)
+ ÎÒÈçoÎ2ÅÄÜ¿ ́μ1⁄22éÑ ̄ÓÅ» ̄Æ÷ÊÇÔõÑù ́¦ÀíÎÒμÄ2éÑ ̄μÄ£¿ 2ο1⁄4 EXPLAIN ÊÖ2áÒ3¡£
+ 4.10) R-tree Ë÷ÒýÊÇÊ2à ́£¿ R-tree
+ Ë÷ÒýÓÃÓÚË÷Òý¿Õ1⁄4äÊý3⁄4Ý¡£Ò» ̧ö1þÏ£Ë÷ÒýÎÞ· ̈ ́¦Àí·¶Î§ËÑË÷¡£¶ø B-tree Ë÷
+ ÒýÖ»ÄÜ ́¦ÀíһάμÄ·¶Î§ËÑË÷¡£R-tree
+ Ë÷Òý¿ÉÒÔ ́¦Àí¶àάÊý3⁄4Ý¡£ÀýÈ磬Èç1û¿ÉÒÔÔÚ Ò» ̧öÀàÐÍÎa point
+ ×ばつÖ¶ÎÉÏ1⁄2 ̈Á¢Ò» ̧ö R-tree Ë÷Òý£¬ÄÇà ́ÏμÍ3ÄÜ ̧ü ̧ßÐ§μØ»Ø ́ðÀà ËÆ
+ ¡°Ñ¡ÔñÔÚÒ» ̧ö3¤·1⁄2Ðη¶Î§ÄÚμÄËùÓÐμ㡱¡£ ×ばつî3õμÄ R-Tree
+ Éè1⁄4ÆμÄÕýÊ1⁄2ÂÛÎÄÊÇ£o 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. Äã»1¿ÉÒÔÔÚ Stonebraker μÄ¡°Readings in Database
+ Systems¡±ÀïÕÒμ1⁄2ÕâÆaÎÄÕ¡£ ÏμÍ3ÄÚÖÃμÄ R-Tree
+ ¿ÉÒÔ ́¦Àí¶à±ßÐÎoÍ·1⁄2ÐΡ£ÀíÂÛÉÏË죬R-tree ¿ÉÒÔÀ©Õ1Îa ́¦Àí
+ ̧ü¶àάÊý¡2ドル»1ýÔÚÊμ1⁄4ùÉÏ£¬À©Õ1 R-trees
+ ÐèÒaÒ»¶ ×ばつ÷Á¿£¬¶øÎÒÃÇĿǰûÓÐÈç ×ばつöμÄÎÄμμ¡£ 4.11)
+ Ê2à ́ÊÇ»ùÒò2éÑ ̄ÓÅ» ̄£ ̈Genetic Query Optimization£©£¿ GEQO
+ Ä£¿é2ÉÓûùÒòËã· ̈£ ̈Genetic Algorithm£¬GA£©1⁄4Ó¿ì¶à±íÁ¬1⁄2ÓμÄ2éÑ ̄ÓÅ» ̄¡£Ëü
+ ÔÊÐíÍ ̈1ý·ÇÇî3⁄4ÙËÑË÷ ́¦Àí ́óμÄÁ¬1⁄2Ó2éÑ ̄¡£ 4.12)
+ ×ばつöÕýÔò±í ́ïÊ1⁄2ËÑË÷oÍ ́óСР́ÎÞ1ØμÄÕýÔò±í ́ïÊ1⁄2ËÑË÷£¿ÔõÑùÀû
+ ÓÃË÷Òý1⁄2øÐÐ ́óСР́ÎÞ1ØËÑË÷£¿ ×ばつ÷·û ~ ́¦ÀíÕýÔò±í ́ïÊ1⁄2Æ\Å䣬¶ø ~*
+ ́¦Àí ́óСР́ÎÞ1ØμÄÕýÔò±í ́ïÊ1⁄2Æ\Åä¡£ ́óÐ ́ ЩÎÞ1ØμÄ LIKE ±äÖÖ3ÉÎa ILIKE¡£
+ ́óСР́ÎÞ1ØμÄμÈÊ1⁄2±È1⁄2ÏÍ ̈3£Ð ×ばつö£o SELECT * FROM tab WHERE lower(col) =
+ 'abc'; ×ばつ1⁄4μÄË÷Òý¡£μ«ÊÇ¿ÉÒÔ ́ ́1⁄2 ̈Ò» ̧ö¿É±»ÀûÓÃμÄo ̄ÊýË÷Òý:
+ CREATE INDEX tabindex ON tab (lower(col)); 4.13)
+ ÔÚÒ» ̧ö2éÑ ̄ÀÎÒÔõÑù1⁄4ì2âÒ» ×ばつÖ¶ÎÊÇ·ñÎa NULL£¿ Óà IS NULL oÍ IS NOT
+ NULL 2âÊÔÕâ ×ばつֶΡ£ 4.14) ×ばつÖ·ûÀàÐÍÖ®1⁄4äÓÐÊ2à ́2»Í¬£¿ ÀàÐÍ ÄÚ2¿Ãû3Æ
+ ËμÃ÷ -------------------------------------------------- "char" char
+ 1 ×ばつÖ·û character CHAR(#) bpchar
+ ¶ ×ばつÖ·û ×ばつã¶ ̈Òå3¤¶Èʱ£¬ÒÔ¿Õ ̧ñ21Æë VARCHAR(#) varchar
+ Ö ̧¶ ×ばつî ×ばつÖ·û ×ばつã¶ ̈Òå3¤¶ÈμÄ2¿·Ö 2»21Æë TEXT text
+ ×ばつî ́ó3¤¶ÈÏÞÖÆ BYTEA bytea
+ ×ばつÖ1⁄2ÚÐòÁУ ̈±ä3¤μĶþ1⁄2øÖÆÊý3⁄4Ý£©
+ ÔÚÏμÍ3±íoÍÔÚһЩ ́íÎóÐÅÏ¢ÀïÄã1⁄2«¿ ́μ1⁄2ÄÚ2¿Ãû3Æ¡£
+ ×ばつîoóËÄÖÖÀàÐÍÊÇ"varlena"£ ̈±ä3¤£©ÀàÐÍ£ ̈Ò23⁄4ÍÊÇË죬¿aÍ·μÄËÄ ×ばつÖ1⁄2ÚÊÇ3¤
+ ¶È£¬oóÃæ2ÅÊÇÊý3⁄4Ý£©¡£ÓÚÊÇÊμ1⁄4ÊÕ1⁄4ÓÃμÄ¿Õ1⁄4ä±ÈÉùÃ÷μÄ ́óСÒa¶àһЩ¡£È»¶øÕâЩÀà
+ ÐÍ ¶1⁄4¿ÉÒÔ±»Ñ1Ëõ ́æ ́¢£¬Ò2¿ÉÒÔÓà TOAST
+ ÍÑ»ú ́æ ́¢£¬Òò ́Ë ́ÅÅÌ¿Õ1⁄4äÒ2¿ÉÄܱÈÔ¤ÏëμÄÒaÉÙ¡£ CHAR(n)
+ ×ばつîÊÊoÏÓÚ ́æ ×ばつÖ·û ́®¡£VARCHAR(n) ÔÚ ́æ ×ばつî ́ó
+ ×ばつÖ·û ×ばつîoÃμÄ¡£TEXT ÊÊÓÃÓÚ ́æ ×ばつÖ·û ×ばつî ́ó¿É ́ï
+ 1G¡£BYTEA ÓÃÓÚ ́æ ́¢¶þ1⁄2øÖÆÊý3⁄4Ý£¬ÓÈÆäÊǰüo¬ NULL
+ ×ばつÖ1⁄2Ú£ ̈¶þ1⁄2øÖÆμÄ0£©μÄÖμ¡£Õâ ЩÀàÐÍ3⁄4ßÓÐÀàÐÍμÄÐÔÄÜ¡£ 4.15.1)
+ ÎÒÔõÑù ́ ́1⁄2 ̈Ò» ×ばつÔ¶ ×ばつֶΣ¿ PostgreSQL Ö§3Ö SERIAL
+ ×ばつÔ¶ ̄ ́ ́1⁄2 ̈Ò» ̧öÐòÁÐoÍË÷Òý¡£ÀýÈ磬 CREATE TABLE person
+ ( id SERIAL, name TEXT ); ×ばつÔ¶ ×ばつa»»Îa£o 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 ); 2ο1⁄4 create_sequence
+ ÊÖ2áÒ3»ñÈ¡1ØÓÚÐòÁÐμÄ ̧ü¶àÐÅÏ¢¡£Äã»1¿ÉÒÔÓÃÿÐÐμÄ oid
+ ×ばつ÷ÎaÒ» ̧öÎ ̈Ò»Öμ¡2ドル»1ý£¬Èç1ûÄãÐèÒaÇãμ1oÍÖØÔØÊý3⁄4ݿ⣬ÄãÐèÒaÊ1ÓÃ
+ pg_dump μÄ -o Ñ¡Ïî»òÕß COPY WITH OIDS Ñ¡ÏîÒÔ±£Áô OID¡£ 4.15.2)
+ ÎÒÈçoλñμÃÒ» ̧ö2åÈëμÄÐòÁÐoÅμÄÖμ£¿ Ò»ÖÖ·1⁄2· ̈ÊÇÔÚ2åÈë֮ǰÏÈÓÃo ̄Êý
+ nextval() ́ÓÐòÁжÔÏóÀï1⁄4ìË÷3öÏÂÒ» ̧ö SERIAL Öμ£¬È»oóÔÙÏÔÊ1⁄22åÈë¡£Ê1ÓÃ
+ 4.15.1 <#4.15.1> ÀïμÄÀý±í£¬¿ÉÓÃαÂëÕâÑùÃèÊö£o new_id = execute("SELECT
+ nextval('person_id_seq')"); execute("INSERT INTO person (id, name)
+ VALUES (new_id, 'Blaise Pascal')"); ÕâÑù»1ÄÜÔÚÆäËû2éÑ ̄ÖÐÊ1Óà ́æ·ÅÔÚ
+ new_id ÀïμÄÐÂÖμ£ ×ばつ÷Îa person ±íμÄÍâ ×ばつÔ¶ ̄ ́ ́1⁄2 ̈μÄ
+ SEQUENCE ¶ÔÏóμÄÃû3Æ1⁄2«»áÊÇ
+
+ __seq£¬ÕâÀï table oÍ serialcolumn ·Ö±ðÊÇÄãμıíμÄÃû 3ÆoÍÄãμÄ SERIAL
+ ×ばつÖ¶ÎμÄÃû3Æ¡£ ÀàËÆμÄ£¬ÔÚ SERIAL ¶ÔÏóȱʡ2åÈëoóÄã¿ÉÒÔÓÃo ̄Êý currval()
+ 1⁄4ìË÷ ̧Õ ̧3ÖμμÄ SERIAL Ö죬ÀýÈ磬 execute("INSERT INTO person (name)
+ VALUES ('Blaise Pascal')"); new_id = execute("SELECT
+ currval('person_id_seq')"); ×ばつîoó£¬Äã¿ÉÒÔÊ1Óà ́Ó INSERT Óï3⁄4ä·μ»ØμÄ OID
+ <4.16> 2éÕÒȱʡÖ죬3⁄4¡1ÜÕâ¿ÉÄÜÊÇ ×ばつîȱ·¦ÒÆÖ2ÐÔμÄ·1⁄2· ̈¡£ÔÚ Perl
+ ÀÊ1Óà ́øÓÐ Edmund Mergl μÄ DBD::Pg Ä£¿éμÄ DBI£¬oid Öμ¿ÉÒÔÍ ̈1ý
+ $sth->execute() oóμÄ $sth->{pg_oid_status} »ñμᣠ4.15.3) Ê1ÓÃ
+ currval() oÍ nextval() »áμ1⁄4ÖÂÒ» ̧öÓëÆäËûÓû§Ö®1⁄4äμÄÎÉ ÂÒÇé¿öÂð£¿
+ 2»»á¡£currval() ·μ»ØoóÌ ̈1⁄2ø3̶ø2»ÊÇËùÓÐÓû§ ̧3ÓèμÄμ±Ç°Öμ¡£ 4.15.4)
+ ÎaÊ2à ́2»ÔÚÊÂÎñÒì3£ÖÐÖ1oóÖØÓÃÐòÁÐoÅÄØ£¿ÎaÊ2à ×ばつÖ¶Î
+ μÄÈ¡ÖμÖÐ ́æÔÚ1⁄4ä¶ÏÄØ£¿
+ ÎaÁËÌá ̧ß2¢·¢ÐÔ£¬ÐòÁÐoÅÔÚÐèÒaμÄʱoò ̧3ÓèÕýÔÚÔËÐÐμÄÊÂÎñ£¬2¢ÇÒÖ»ÔÚÊÂÎñ1⁄2áÊø
+ Ö® ǰ2»·âËø¡£Õâ3⁄4Í»áμ1⁄4ÖÂØ2ÕÛÊÂÎñoóμÄÐòÁÐoÅ3öÏÖ1⁄4ä ̧ô¡£ 4.16) Ê2à ́ÊÇ
+ OID£¿Ê2à ́ÊÇ TID£¿ OID ÊÇ PostgreSQL ÖÐÐÐμÄÎ ̈Ò»±êʶ¡£PostgreSQL
+ Àï ́ ́1⁄2 ̈μÄÿһÐж1⁄4»ñμÃÒ» ̧öÎ ̈ Ò»μÄ OID¡£ËùÓÐÔÚ initdb 1ý3ÌÖÐ ́ ́1⁄2 ̈μÄ OID
+ ¶1⁄4СÓÚ 16384 £ ̈2Î1⁄4û include/access/transam.h£©¡£ËùÓÐÓû§ ́ ́1⁄2 ̈μÄ OID
+ ¶1⁄4 ́óÓÚ»òμÈÓÚÕâ ̧öÖμ¡£È±Ê¡ ʱ£¬ËùÓÐÕâЩ OID
+ 2»1⁄2öÔÚÒ» ̧ö±í»òÒ» ̧öÊý3⁄4Ý¿âÀïÃæÎ ̈Ò»£¬¶øÇÒÔÚÕû ̧ö PostgreSQL
+ ×ばつ°ÀïÒ2ÊÇÎ ̈Ò»μÄ¡£ PostgreSQL ÔÚËüμÄÄÚ2¿ÏμÍ3±íÀïÊ1Óà OID
+ ÔÚ±íÖ®1⁄4ä1⁄2 ̈Á¢ÁaÏμ¡£ÕâЩ OID ¿ÉÒÔÓÃ
+ ÓÚ±êÊ¶ÌØ¶ ̈μÄÓû§ÐÐÒÔ1⁄4°ÓÃÔÚÁ¬1⁄2ÓÀï¡1ドル⁄2 ×ばつÖ¶ÎÀàÐÍ OID ́æ ́¢ OID
+ Öμ¡£¿ÉÒÔ ÔÚ OID ×ばつÖ¶ÎÉÏ ́ ́1⁄2 ̈Ò» ̧öË÷ÒýÒÔ¿ìËÙ·ÃÎÊ¡£ OID
+ ́ÓÒ» ̧ö±»ËùÓÐÊý3⁄4Ý¿âÊ1ÓÃμÄÖÐÐÄÇøÓòÀï ̧3Öμ ̧øËùÓÐÐÂÐС£Èç1ûÄãÏë°Ñ OID ̧Ä
+ ×ばつöÒ»·Ý±íμÄ ́øÔÊ1⁄4 OID μÄ¿1⁄2± ×ばつöμ1⁄2£o 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
+ ×ばつÖ1⁄2ÚμÄÕûÊý±£ ́棬ÔÚ3¬1ý40ÒÚʱ1⁄2«Òç3ö¡£Ã»ÓÐÈ˱ ̈ ̧æ3öÏÖ1ýÒç3ö£¬¶øÎÒÃÇ
+ ́òËãÔÚÓÐÈ˱ ̈ ̧æÖ®Ç°Ïû3ýÕâ ̧öÏÞÖÆ¡£ TID
+ ÓÃÓÚ±êʶ ×ばつÅÊý3⁄4Ý¿é£ ̈μØÖ·£©oÍ£ ̈¿éÄÚ£©Æ«ÒÆμÄÌØ¶ ̈μÄÎïÀíÐС£TID ÔÚÐб» ̧ü
+ ̧Ä»òÖØÔØoó·¢Éú ̧ı䡣Ë÷ÒýÈë¿ÚÊ1ÓÃËüÃÇÖ ̧ÏòÎïÀíÐС£ 4.17) PostgreSQL
+ Ê1ÓÃμÄһЩÊõÓïμÄo¬ÒåÊÇÊ2à ́£¿
+ Ò»Ð©Ô ́ ́úÂëoÍһЩ3⁄4ÉÒ»μãμÄÎÄμμÊ1ÓÃһЩÓÐ ̧ü3£ÓÃÓ÷ ̈μÄÊõÓï¡£ÏÂÃæÊÇÆäÖÐÒ»2¿
+ ·Ö£o 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
+ ÓÐÒ» ̧öÍ ̈ÓÃÊý3⁄4Ý¿âÊõÓïμÄÁбí£ohttp://hea-
+ www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.h
+ tml ¡£ 4.18) ÎaÊ2à ́ÎÒÊÕμ1⁄2 ́íÎó¡°/ERROR: Memory exhausted in
+ AllocSetAlloc()/¡±£¿
+ ÕâoÜ¿ÉÄÜÊÇÏμÍ3μÄÐéÄâÄÚ ×ばつÊÔ ́ÓÐ1⁄2ÏμÍμÄÏÞÖÆÖμ¡£ÔÚÆô
+ ¶ ̄ postmaster ֮ǰÊÔÊÔÏÂÃæμÄÃüÁî£o ulimit -d 262144 limit datasize
+ 256m È¡3⁄4öÓÚÄãÓÃμÄ
+ shell£¬ÉÏÃæÃüÁîÖ»ÓÐÒ»ÌõÄÜ3É1¦£¬μ«ÊÇËü1⁄2«°ÑÄãμÄ1⁄2ø3ÌÊý3⁄4ݶÎÏÞÖÆ
+ ÉèμñÈ1⁄2Ï ̧ߣ¬Òò¶øÒ2ÐíÄÜÈÃ2éÑ ̄Íê3É¡£ÕâÌõÃüÁîÓ¦ÓÃÓÚμ±Ç°1⁄2ø3Ì£¬ÒÔ1⁄4°ËùÓÐÔÚÕâ
+ Ìõ
+ ÃüÁîÔËÐÐoó ́ ́1⁄2 ×ばつÓ1⁄2ø3Ì¡£Èç1ûÄãÊÇÔÚÔËÐÐSQL¿Í»§¶ËʱÒòÎaoóÌ ̈·μ»ØÁËÌ«¶àμÄÊ
+ ý 3⁄4ݶø3öÏÖÎÊÌ⣬ÇëÔÚÔËÐпͻ§¶ËÖ®Ç°Ö ́ÐÐÉÏÊöÃüÁî¡£ 4.19)
+ ÎÒÈçoÎ2ÅÄÜÖaμÀËùÔËÐÐμÄ PostgreSQL μİæ±3⁄4£¿ ́Ó psql À1⁄4üÈë SELECT
+ version()£» 4.20) ÎaÊ2à ́ÎÒμÄ ×ばつ÷μ1⁄4Ö ́íÎó¡°/invalid large obj
+ descriptor¡±£ ̈·Ç· ̈μÄ ́ó¶ÔÏóÃèÊö·û£©/£¿
+ ÄãÐèÒaÔÚÊ1ÓÃÈÎoÎ ́ó¶ÔÏó3⁄4ä±úμÄǰoó·ÅÉÏ BEGIN WORK oÍ
+ COMMIT£¬Ò23⁄4ÍÊÇË죬°ü Χ lo_open ... lo_close¡£ Ŀǰ PostgreSQL
+ Ç¿ÖÆÊμÊ©ÕâÌõ1æÔò£oÔÚÊÂÎñÌá1⁄2»Ê±1Ø±Õ ́ó¶ÔÏó3⁄4ä±ú£¬ÕâÑù£¬£ ̈û
+ ×ばつ ́Î¶Ô ×ばつöÈÎoÎÊÂÇéμÄÆóÍ1⁄4¶1⁄4»áμ1⁄4ÖÂÒ» ̧ö invalid
+ large obj
+ descriptor¡£ËùÒÔ£¬Èç1ûÄãûÓÐÊ1ÓÃÒ» ×ばつ÷μÄ ́úÂë£ ̈ÖÁ
+ ÉÙÊÇ ́ó¶àÊýʱ1⁄4䣩1⁄2«»áÉú3ÉÕâà ́Ò» ̧ö ́íÎóÐÅÏ¢¡£ Èç1ûÄãÊ1Óÿͻ§¶Ë1⁄2Ó¿Ú£¬Èç
+ ODBC£¬Äã¿ÉÄÜÐèÒa set auto-commit off¡£ 4.21)
+ ÎÒÈçoÎ ́ ́1⁄2 ̈Ò» ×ばつֶΣ¿ Ê1Óà CURRENT_TIMESTAMP£o CREATE
+ TABLE test(x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP); 4.22)
+ ÎaÊ2à ́Ê1Óà IN ×ばつÓ2éÑ ̄Õâà ́Âý£¿
+ Ŀǰ£¬ÎÒÃÇÍ ̈1ýÎaÍâ2éÑ ̄μÄÿһÐÐË3ÐòÉ ×ばつÓ2éÑ ̄μÄ1⁄2á1ûÀ ×ばつÓ2éÑ ̄oÍÍâ2éÑ ̄
+ ¡£ ×ばつÓ2éÑ ̄·μ»ØÉÙÊý1⁄4 ̧ÐУ¬¶øÍâ2éÑ ̄·μ»ØoܶàÐУ¬IN
+ Ö ́ÐÐμÃoܿ졣ÎaÁË1⁄4Ó¿ìÆäËû IN 2éÑ ̄μÄÖ ́ÐУ¬¿ÉÒÔÓà EXISTS Ìæ»» IN£o SELECT
+ * FROM tab WHERE col IN (SELECT subcol FROM subtab); ̧ÄÎa£o SELECT *
+ FROM tab WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);
+ oóÕßÒaÏëÖ ́ÐÐμà ̧ü¿ì£¬subcol
+ Ó¦ ̧ÃÊÇÒ» ̧öË÷ÒýÁС£ÎÒÃÇÏ£ÍûÔÚÎ ́À ́μÄ·21ドル⁄4°æ±3⁄4ÖÐ ÐÞ21Õâ ̧öÏÞÖÆ¡£ 4.23)
+ ÎÒÔõÑù1⁄2øÐÐ outer join £ ̈ÍâÁ¬1⁄2Ó£©£¿ PostgreSQL ×ばつ1⁄4μÄ SQL
+ Óï· ̈Ö§3ÖÍâÁ¬1⁄2Ó¡£ÕâÀïÊÇÁ1⁄2 ×ばつÓ£o SELECT * FROM t1 LEFT OUTER JOIN t2
+ ON (t1.col = t2.col); »ò SELECT * FROM t1 LEFT OUTER JOIN t2 USING
+ (col); ÕâÁ1⁄2 ̧öμÈ1⁄4ÛμÄ2éÑ ̄ÔÚ t1.col oÍ t2.col ×ばつöÁ¬1⁄2Ó£¬2¢ÇÒ·μâ»?t1
+ ÖÐËùÓÐÎ ́Á¬1⁄2ÓμÄ ÐУ ̈ÄÇЩÔÚ t2 ÖÐûÓÐÆ\ÅäμÄÐУ©¡£ÓÒ[Íâ]Á¬1⁄2Ó(RIGHT OUTER
+ JOIN)1⁄2«·μ»Ø t2 ÖÐ Î ́Á¬1⁄2ÓμÄÐС£ÍêÈ«ÍâÁ¬1⁄2Ó£ ̈FULL OUTER JOIN£©1⁄2«·μ»Ø t1
+ oÍ t2 ÖÐÎ ́Á¬1⁄2ÓμÄÐС£ ×ばつÖ OUTER
+ ×ばつó[Íâ]Á¬1⁄2Ó¡¢ÓÒ[Íâ]Á¬1⁄2ÓoÍÍêÈ«[Íâ]Á¬1⁄2ÓÖÐÊÇ¿ÉÑ¡μÄ£¬ÆÕÍ ̈Á¬1⁄2Ó
+ ±»3ÉÎaÄÚÁ¬1⁄2Ó£ ̈INNER JOIN£©¡£ ÔÚ ́Ëǰμİæ±3⁄4ÖУ¬ÍâÁ¬1⁄2Ó¿ÉÒÔÓà UNION oÍ NOT
+ IN À ×ばつÓÔÚ ±í tab1 oÍ tab2 ×ばつöÍâÁ¬1⁄2Ó£o 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)
+ ÈçoÎÊ1ÓÃÉæ1⁄4°¶à ̧öÊý3⁄4Ý¿âμÄ2éÑ ̄£¿
+ ûÓÐ°ì· ̈2éÑ ̄μ±Ç°Êý3⁄4Ý¿âÖ®ÍâμÄÊý3⁄4ݿ⡣ÒòÎa PostgreSQL
+ 1⁄4ÓÔØÊý3⁄4Ý¿âÏà1ØμÄÏμÍ3 Ä¿Â1⁄4£ ̈ÏμÍ3±í£©£¬¿çÊý3⁄4Ý¿âμÄ2éÑ ̄ÈçoÎÖ ́ÐÐÒ2Î ́Ã÷È·¡£
+ contrib/dblink
+ ÔÊÐí2ÉÓÃo ̄Êýμ÷ÓÃÊμÏÖ¿ç¿â2éÑ ̄¡£μ±È»¿ÉÒÔͬʱÁ¬1⁄2Óμ1⁄22»Í¬μÄÊý
+ 3⁄4Ý¿â2¢ÔÚ¿Í»§¶ËoÏ21ドル⁄2á1û¡£ 4.25) ÈçoÎÈÃo ̄Êý·μ»Ø¶àÐлò¶àÁУ¿ ¿ÉÒÔÔÚ
+ PL/pgSQL o ̄ÊýÖÐÊ1Óà refcursors ·μ»Ø1⁄2á1û1⁄4 ̄¡2ドルο ́
+ http://www.PostgreSQL.org/idocs/index.php?plpgsql-cursors.html
+ www.PostgreSQL.org/idocs/index.php?plpgsql-cursors.html>, 23.7.3.31⁄2Ú¡£
+ 4.26) ÎaÊ2à ́ÔÚ PL/PgSQL o ̄ÊýÖÐ2»Äܿɿ¿μØ ́ ́1⁄2 ̈»òÉ3⁄43ýÁÙʱ±í£¿ PL/PgSQL
+ »o ́æo ̄ÊýμÄÄÚÈÝ£¬ÓÉ ́Ë ́øÀ ́μÄÒ» ̧ö2»oÃμÄ ×ばつ÷ÓÃÊÇÈôÒ» ̧ö PL/PgSQL o ̄
+ Êý·ÃÎÊÁËÒ» ̧öÁÙʱ±í£¬È»oó ̧Ã±í±»É3⁄43ý2¢ÖØ1⁄2 ̈ÁË£¬ÔòÔÙ ́Îμ÷Óà ̧Ão ̄Êý1⁄2«Ê§°Ü£¬Òò
+ Îa »o ́æμÄo ̄ÊýÄÚÈÝÈÔÈ»Ö ̧Ïò3⁄4ÉμÄÁÙʱ±í¡1ドル⁄2â3⁄4öμÄ·1⁄2· ̈ÊÇÔÚ PL/PgSQL ÖÐÓÃ
+ EXECUTE ¶ÔÁÙʱ±í1⁄2øÐзÃÎÊ¡£ÕâÑù»á±£Ö¤2éÑ ̄ÔÚÖ ×ばつÜÊÇÖØÐ·ÖÎö¡£ 4.27)
+ ÓÐÄÄЩÊý3⁄4Ý ̧ ́ÖÆÑ¡Ï
+ ÓÐ1⁄4 ̧ÖÖÖ÷/ ́Ó·1⁄2Ê1⁄2μÄ ̧ ́ÖÆÑ¡Ïî¡£ÕâЩѡÏîÖ»ÔÊÐíÖ÷Êý3⁄4Ý¿â1⁄2øÐÐ ̧üУ¬ ́ÓÊý3⁄4Ý¿âÖ»Ä
+ Ü 1⁄2øÐжÁ¡£ÍøÒ3
+ http://gborg.PostgreSQL.org/genpage?replication_research
+ ×ばつîoóÁÐ3öÁËÕâЩѡÏî¡£ÔÚ
+ http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php
+ gborg.PostgreSQL.org/project/pgreplication/projdisplay.php> ÕýÔÚ
+ 1⁄2øÐÐÒ» ̧ö¶àÖ÷±3⁄4 ̧ ́ÖÆμÄ1⁄2â3⁄4ö·1⁄2° ̧¡£ 4.28) ÓÐÄÄЩÊý3⁄4Ý1⁄4ÓÃÜÑ¡Ï
+ contrib/pgcrypto °üo¬ÁËoܶàÔÚ SQL
+ 2éÑ ̄ÖÐÊ1ÓÃμÄ1⁄4ÓÃÜo ̄Êý¡1ドル⁄4ÓÃܿͻ§¶Ëμ1⁄2·þÎñ Æ÷¶Ë ́«ÊäÊý3⁄4ÝμÄÎ ̈Ò»·1⁄2· ̈ÊÇÔÚ
+ pg_hba.conf ÖÐ2ÉÓÃ hostss ¡£ 7.3
+ ×ばつÔ¶ ̄¶ÔÊý3⁄4Ý¿âÓû§ÃÜÂë1⁄2øÐÐ1⁄4ÓÃÜ¡£ÔÚÒÔǰμİæ±3⁄4ÖУ¬±ØÐëÔÚ
+ postgresql.conf ÖÐ ́ò¿a PASSWORD_ENCRYPTION
+ Ñ¡Ïî¡£·þÎñÆ÷¿ÉÒÔÔËÐÐÔÚ1⁄4ÓÃÜμÄ ÎÄ1⁄4þÏμÍ3ÉÏ£ ̈ÒÔ ́ïμ1⁄21⁄4ÓÃÜμÄÄ¿μÄ£©¡£
+ ----------------------------------------------------------------------
+ ---------- À©Õ1 PostgreSQL 5.1) ÎÒÐ ́ÁËÒ» ̧öÓû§¶ ̈Òåo ̄Êý¡£μ±ÎÒÔÚ psql
+ ÀïÔËÐÐʱ£¬ÎaÊ2à ́»áμ1⁄4Ö core dump£¿ 2úÉúÕâ ̧öÎÊÌâμÄÔ
+ ÒòoܶࡣÇëÏÈÔÚÒ» ×ばつÔ¶ ̈Òåo ̄Êý¡£ 5.2) ÎÒÈçoÎÄÜ ̧ø
+ PostgreSQL ×ばつһЩͦ2» ́íμÄÐÂÀàÐÍoÍo ̄Êý£¿ 1⁄2«ÄãμÄÀ©Õ1·¢ËÍμ1⁄2
+ pgsql-hackers ×ばつîÖջᱻ·Åμ1⁄2 contrib/ ×ばつÓÄ¿Â1⁄4¡£ 5.3)
+ ÎÒÔõÑùÐ ́Ò» ̧ö·μ»ØÒ»ÌõÔa×ばつéμÄ C o ̄Êý£¿ ÔÚ PostgreSQL 7.3 ÒÔoóμİæ±3⁄4ÖУ¬C,
+ PL/PgSQL oÍ SQL Íêȫ֧3Ö·μ»ØÖμÎa±íμÄ o ̄Êý¡£ ̧ü¶àÐÅÏ¢Çë2ο1⁄4
+ 3ÌÐòÔ±Ö ̧ÄÏ£ ̈the Programmer's Guide£©¡£ÔÚ contrib/tablefunc
+ ÖÐÓÐÒ» ×ばつÓÊÇÓà C Ð ́μÄ·μ»ØÖμÎa±íμÄo ̄Êý¡£ 5.4)
+ ÎÒÐÞ ̧ÄÁËÒ» ̧öÔ ́ÎÄ1⁄4þ£¬ÎaÊ2à ́ÖØÐ±àÒëoóûÓп ́μ1⁄2 ̧ı䣿 Makefiles
+ ×ばつömake clean£¬ ×ばつöÒ» ́Î make
+ ¡£Èç1ûÄúÊ1ÓÃμÄÊÇ GCC £¬Ôò¿ÉÒÔ2ÉÓÃÑ¡Ïî --enable-depend ×ばつÔ¶ ̄
+ Éú3ÉÍ·ÎÄ1⁄4þμÄÒÀÀμ1ØÏμ¡£
new file mode 100644
(file)
index 0000000..
be96a4c
--- /dev/null
+\r
+ PostgreSQL 31ドル⁄4ûÎÊÌ⣠̈FAQ£©\r
+\r
×ばつî1⁄2ü ̧üУo2003 Äê 01 Ô 06 ÈÕ ÐÇÆÚÒ» 22:27:35 CST\r
+\r
+Ŀǰά»¤ÈËÔ±£oBruce Momjian (pgman@candle.pha.pa.us\r
+<mailto:pgman@candle.pha.pa.us>)\r
+ÖÐÎİæÎ¬»¤ÈËÔ±£ooÎΰÆ1⁄2 £ ̈laser@pgsqldb.com £©\r
+\r
×ばつîаæ±3⁄4¿ÉÒÔÔÚhttp:\r
+//www.postgresql.org/files/documentation/faqs/FAQ.html 2é¿ ́¡£\r
+\r
×ばつ÷ÏμÍ3Æ1⁄2Ì ̈Ïà1ØμÄÎÊÌâÔÚhttp://www.postgresql.org/docs/faq/Àï»Ø ́ð¡£\r
+\r
+------------------------------------------------------------------------\r
+\r
+\r
+ 31ドル⁄4ûÎÊÌâ\r
+\r
+1.1 <#1.1>) PostgreSQL ÊÇÊ2à ́£¿ ̧ÃÔõà ́·¢Òô£¿\r
+1.2 <#1.2>) PostgreSQL μİæÈ ̈ÊÇÊ2à ́?\r
+1.3 <#1.3>) PostgreSQL ÔËÐÐÔÚÊ2à ́ Unix Æ1⁄2Ì ̈ÉÏ£¿\r
+1.4 <#1.4>) ¿ÉÓÃμÄ·Ç Unix Æ1⁄2Ì ̈ÓÐÄÇЩ£¿\r
+1.5 <#1.5>) ÎÒ ́ÓÄÄÀïÄÜμÃμ1⁄2 PostgreSQL£¿\r
+1.6 <#1.6>) ÎÒ ́ÓÄÄÀïÄÜμÃμ1⁄2¶Ô PostgreSQL μÄÖ§3Ö£¿\r
+1.7 <#1.7>) PostgreSQL ×ばつîÐÂμİæ±3⁄4ÊÇÊ2à ́£¿\r
+1.8 <#1.8>) ÓÐÄÄЩ¿ÉÓÃμÄ PostgreSQL μÄÎÄμμ£¿\r
+1.9 <#1.9>) ÎÒÈçoÎÁË1⁄2âÒÑÖaμÄ BUG »òȱʧμÄÌØÐÔ£¿\r
+1.10 <#1.10>) ÎÒÓ¦ ̧ÃÔõÑùѧϰ SQL £¿\r
+1.11 <#1.11>) PostgreSQL ÊÇ Y2K 1⁄4æÈÝμÄÂð£¿\r
+1.12 <#1.12>) ÎÒÓ¦ ̧ÃÔõÑù1⁄4ÓÈë¿a·¢¶ÓÎ飿\r
+1.13 <#1.13>) ÎÒÓ¦ ̧ÃÔõÑùÌá1⁄2»Ò» ̧ö BUG ± ̈ ̧棿\r
+1.14 <#1.14>) PostgreSQL oÍÆäËû DBMS ±ÈÆðÀ ́ÈçoΣ¿\r
+1.15 <#1.15>) ÎÒÓ¦ ̧ÃÔõÑùÔÞÖú PostgreSQL £¿\r
+\r
+\r
+ Óû§¿Í»§¶ËÎÊÌâ\r
+\r
+2.1 <#2.1>) ÓÐ PostgreSQL μÄ ODBC Çý¶ ̄3ÌÐòà ́£¿\r
+2.2 <#2.2>) ÓÐÊ2à ́1¤3⁄4ß¿ÉÒÔ°Ñ PostgreSQL ÓÃÓÚ Web Ò3Ãæ£¿\r
+2.3 <#2.3>) PostgreSQL ÓμÓÐÍ1⁄4ÐÎÓû§1⁄2çÃæÂð£¿\r
+2.4 <#2.4>) ÎÒÃÇ¿ÉÒÔÓÃÊ2à ́ÓïÑÔoÍ PostgreSQL ́ò1⁄2»μÀ£¿\r
+\r
+\r
+ ÏμÍ31ÜÀíÎÊÌâ\r
+\r
+3.1 <#3.1>) ÎÒÔõÑùÄÜ°Ñ PostgreSQL ×ばつ°ÔÚ /usr/local/pgsql ÒÔÍâμÄμØ·1⁄2£¿\r
+3.2 <#3.2>) μ±ÎÒÔËÐÐ postmaster ʱ£¬3öÏÖ/ Bad System Call/£ ̈ÏμÍ3μ÷Óà ́í£©\r
+»ò Core Dumped ́íÎó¡£ÎaÊ2à ́£¿\r
+3.3 <#3.3>) μ±ÎÒÊÔÍ1⁄4ÔËÐÐ postmaster ʱ£¬3öÏÖ /IpcMemoryCreate/ ́íÎó¡£Îa\r
+Ê2à ́£¿\r
+3.4 <#3.4>) μ±ÎÒÊÔÍ1⁄4ÔËÐÐ postmaster ʱ£¬3öÏÖ /IpcSemaphoreCreate/ ́íÎó¡£\r
+ÎaÊ2à ́£¿\r
+3.5 <#3.5>) ÎÒÈçoοØÖÆÀ ×ばつÔÆäËûÖ÷»úμÄÁ¬1⁄2Ó£¿\r
+3.6 <#3.6>) ÎÒÔõÑùμ÷ÕûÊý3⁄4Ý¿âÒýÇæÒÔ»ñμà ̧üoÃμÄÐÔÄÜ£¿\r
+3.7 <#3.7>) PostgreSQL Àï¿ÉÒÔ»ñμÃÊ2à ́ÑùμÄμ÷ÊÔÌØÐÔ£¿\r
+3.8 <#3.8>) ÎaÊ2à ́ÔÚÊÔÍ1⁄4Á¬1⁄2ÓμÇÂ1⁄4ʱÊÕμ1⁄2¡°Sorry, too many clients¡± ÏûÏ¢£¿\r
+3.9 <#3.9>) pgsql_tmp Ä¿Â1⁄4Àï¶1⁄4ÓÐЩÊ2à ́£¿\r
+3.10 <#3.10>) ÎaÊ2à ́ÒaÔÚÉý1⁄4¶ PostgreSQL ×ばつö dump oÍ restore £¿\r
+\r
+\r
+ ×ばつ÷ÎÊÌâ\r
+\r
+4.1 <#4.1>) ¶þ1⁄2øÖÆÓαêoÍÆÕÍ ̈ÓαêÖ®1⁄4äμÄÇø±ðÊÇÊ2à ́£¿\r
+4.2 <#4.2>) ÈçoÎֻѡÔñÒ» ̧ö2éÑ ̄1⁄2á1ûμÄÍ·1⁄4 ̧ÐУ¿\r
+4.3 <#4.3>) ÎÒÈçoλñȡһ ̧öÊý3⁄4Ý¿âÖбíμÄÁÐ±í£¬»òÕßÊÇÆäËûÎÒÄÜÔÚ /psql /Àï¿ ́\r
+μ1⁄2μĶ«Î÷£¿\r
+4.4 <#4.4>) ÔõÑù ́Ó±íÀïÃæÉ3⁄43ýÒ»ÁУ¿\r
+4.5 <#4.5>) Ò»ÐУ¬Ò» ̧ö±í£¬Ò» ×ばつî ́ó3ß ́çÊǶàÉÙ£¿\r
+4.6 <#4.6>) ́æ ́¢Ò» ̧öμäÐÍμÄÎı3⁄4ÎÄ1⁄4þÀïμÄÊý3⁄4ÝÐèÒa¶àÉÙ ́ÅÅÌ¿Õ1⁄4䣿\r
+4.7 <#4.7>) ÈçoÎ2é¿ ́±í¡¢Ë÷Òý¡¢Êý3⁄4Ý¿âÒÔ1⁄4°Óû§μĶ ̈Ò壿\r
+4.8 <#4.8>) ÎÒμÄ2éÑ ̄oÜÂý»òÕßûÓÐÀûÓÃË÷Òý¡£ÎaÊ2à ́£¿\r
+4.9 <#4.9>) ÎÒÈçoÎ2ÅÄÜ¿ ́μ1⁄22éÑ ̄ÓÅ» ̄Æ÷ÊÇÔõÑù ́¦ÀíÎÒμÄ2éÑ ̄μÄ£¿\r
+4.10 <#4.10>) R-tree Ë÷ÒýÊÇÊ2à ́£¿\r
+4.11 <#4.11>) Ê2à ́ÊÇ»ùÒò2éÑ ̄ÓÅ» ̄£ ̈Genetic Query Optimization£©£¿\r
+4.12 <#4.12>) ×ばつöÕýÔò±í ́ïÊ1⁄2ËÑË÷oÍ ́óСР́ÎÞ1ØμÄÕýÔò±í ́ïÊ1⁄22éÕÒ£¿ÔõÑùÀû\r
+ÓÃË÷Òý1⁄2øÐÐ ́óСР́ÎÞ1Ø2éÕÒ£¿\r
+4.13 <#4.13>) ÔÚÒ» ̧ö2éÑ ̄ÀÎÒÔõÑù1⁄4ì2âÒ» ×ばつÖ¶ÎÊÇ·ñÎa NULL£¿\r
+4.14 <#4.14>) ×ばつÖ·ûÀàÐÍÖ®1⁄4äÓÐÊ2à ́2»Í¬£¿\r
+4.15.1 <#4.15.1>) ÎÒÔõÑù ́ ́1⁄2 ̈Ò» ×ばつÔ¶ ×ばつֶΣ¿\r
+4.15.2 <#4.15.2>) ÎÒÈçoλñμÃÒ» ̧ö2åÈëμÄÐòÁÐoÅμÄÖμ£¿\r
+4.15.3 <#4.15.3>) Ê1Óà currval() oÍ nextval() »áμ1⁄4ÖÂoÍÆäËûÓû§μÄÎÉÂÒÇé¿ö\r
+£ ̈race condition£©Âð£¿\r
+4.15.4 <#4.15.4>) ÎaÊ2à ́2»ÔÚÊÂÎñÒì3£ÖÐÖ1oóÖØÓÃÐòÁÐoÅÄØ£¿ÎaÊ2à ×ばつÖ\r
+¶ÎμÄÈ¡ÖμÖÐ ́æÔÚ1⁄4ä¶ÏÄØ£¿\r
+4.16 <#4.16>) Ê2à ́ÊÇ OID£¿Ê2à ́ÊÇ TID £¿\r
+4.17 <#4.17>) PostgreSQL Ê1ÓÃμÄһЩÊõÓïμÄo¬ÒåÊÇÊ2à ́£¿\r
+4.18 <#4.18>) ÎaÊ2à ́ÎÒÊÕμ1⁄2 ́íÎó¡°/ERROR: Memory exhausted in\r
+AllocSetAlloc()/¡±£¿\r
+4.19 <#4.19>) ÎÒÈçoÎ2ÅÄÜÖaμÀËùÔËÐÐμÄ PostgreSQL μİæ±3⁄4£¿\r
+4.20 <#4.20>) ÎaÊ2à ́ÎÒμÄ ×ばつ÷μ1⁄4Ö ́íÎó¡°/invalid large obj\r
+descriptor¡±£ ̈·Ç· ̈μÄ ́ó¶ÔÏóÃèÊö·û£©/£¿\r
+4.21 <#4.21>) ÎÒÈçoÎ ́ ́1⁄2 ̈Ò» ×ばつֶΣ¿\r
+4.22 <#4.22>) ÎaÊ2à ́Ê1Óà IN ×ばつÓ2éÑ ̄Õâà ́Âý£¿\r
+4.23 <#4.23>) ÈçoÎ1⁄2øÐÐ outer join £ ̈ÍâÁ¬1⁄2Ó£©£¿\r
+4.24 <#4.24>) ÈçoÎÊ1ÓÃÉæ1⁄4°¶à ̧öÊý3⁄4Ý¿âμÄ2éÑ ̄£¿\r
+\r
+4.25 <#4.25>) ÈçoÎÈÃo ̄Êý·μ»Ø¶àÐлò¶àÁУ¿\r
+\r
+4.26 <#4.26>) ÎaÊ2à ́ÔÚ PL/PgSQL o ̄ÊýÖÐ2»Äܿɿ¿μØ ́ ́1⁄2 ̈»òÉ3⁄43ýÁÙʱ±í£¿\r
+\r
+4.27 <#4.27>) ÓÐÄÄЩÊý3⁄4Ý ̧ ́ÖÆÑ¡Ï\r
+4.28 <#4.28>) ÓÐÄÄЩÊý3⁄4Ý1⁄4ÓÃÜÑ¡Ï\r
+\r
+\r
+ À©Õ1 PostgreSQL\r
+\r
+5.1 <#5.1>) ÎÒÐ ́ÁËÒ» ̧öÓû§¶ ̈Òåo ̄Êý¡£μ±ÎÒÔÚ/ psql/ ÀïÔËÐÐʱ£¬ÎaÊ2à ́»áμ1⁄4ÖÂ\r
+core dump£¿\r
+5.2 <#5.2>) ÎÒÈçoÎÄÜ ̧ø PostgreSQL ×ばつһЩͦ2» ́íμÄÐÂÀàÐÍoÍo ̄Êý£¿\r
+5.3 <#5.3>) ÎÒÔõÑùÐ ́Ò» ̧ö·μ»ØÒ»Ìõ1⁄4ÇÂ1⁄4μÄ C o ̄Êý£¿\r
+5.4 <#5.4>) ÎÒÐÞ ̧ÄÁËÒ» ̧öÔ ́ÎÄ1⁄4þ£¬ÎaÊ2à ́ÖØÐ±àÒëoóûÓп ́μ1⁄2 ̧ı䣿\r
+------------------------------------------------------------------------\r
+\r
+\r
+ 31ドル⁄4ûÎÊÌâ\r
+\r
+\r
+ 1.1) PostgreSQL ÊÇÊ2à ́£¿ ̧ÃÔõà ́·¢Òô£¿\r
+\r
+PostgreSQL ×ばつ÷ /Post-Gres-Q-L// ¡£/\r
+\r
+PostgreSQL ÊÇÏÂÒ» ́ú DBMS μÄÑÐ3⁄4¿ÔÐÍ POSTGRES Êý3⁄4Ý¿â1ÜÀíÏμÍ3μÄÔöÇ¿°æ¡£\r
+PostgreSQL ÔÚ±3ドルÖ POSTGRES μÄÇ¿ ́óμÄÊý3⁄4ÝÄ£ÐÍoÍ·á ̧»μÄÊý3⁄4ÝÀàÐÍμÄ»ù ́¡ÉÏ£¬ÓÃ\r
+Ò» ̧öÀ©Õ1ÁËμÄ SQL ×ばつÓ1⁄4 ̄È¡ ́úÁËÔÏÈμÄ PostQuel 2éÑ ̄ÓïÑÔ¡£PostgreSQL ×ばつÔÓÉμÄ\r
+2¢ÇÒËùÓÐÔ ́ ́úÂë¶1⁄4¿ÉÒÔ»ñμá£\r
+\r
+PostgreSQL μÄ¿a·¢ÓÉ2Î1⁄4Ó PostgreSQL ¿a·¢ÓÊ1⁄4þÁбíμÄÒ» ̧ö¿a×ばつé1⁄2øÐС£\r
+ĿǰμÄÐμ÷ÈËÊÇ Marc G. Fournier £ ̈scrappy@postgreSQL.org\r
+<mailto:scrappy@postgreSQL.org> £©¡££ ̈1ØÓÚÈçoÎ1⁄4ÓÈë2Î1⁄4û1.61⁄2Ú£©¡£Õâ ̧ö¶ÓÎé\r
+ÏÖÔÚ ̧oÔð PostgreSQL μÄËùÓпa·¢¡£\r
+\r
+PostgreSQL 1.01 ×ばつ÷ÕßÊÇ Andrew Yu oÍ Jolly Chen¡£»1ÓÐÐí¶àÆäËûÈËÎaÒÆÖ2£¬\r
+2âÊÔ£¬μ÷ÊÔoÍÔöÇ¿ ×ばつöÁË ×ばつ¡£PostgreSQL ×ばつî3õÆðÔ ́ Postgres£¬ÊÇÔÚ1⁄4Ó\r
+ÖÝ ́óѧ2®¿ËÀû·ÖУμÄ Michael Stonebraker 1⁄2ÌÊÚμÄÖ ̧μ1⁄4Ï£¬ÓÉÐí¶àÑÐ3⁄4¿Éú£¬±3⁄4¿Æ\r
+Éúoͱà3ÌÖ°Ô±Íê3ÉμÄ¡£\r
+\r
+Õâ ×ばつÖÊÇ Postgres¡£ÔÚ 1995 Ä꣬μ±Ôö1⁄4ÓÁË SQL 1¦ÄÜoó£¬\r
×ばつÖ ̧Ä3É Postgres95¡£ÔÚ 1996ÄêÄ©£¬2Å ̧ÄÃûÎa PostgreSQL¡£\r
+\r
+\r
+ 1.2) PostgreSQL μİæÈ ̈ÊÇÊ2à ́?\r
+\r
+PostgreSQL ÊÜÏÂÃæμİæÈ ̈Ô1⁄4Êø¡£\r
+\r
+PostgreSQL Êý3⁄4Ý¿â1ÜÀíÏμÍ3\r
+\r
+£ ̈PostgreSQL Data Base Management System£©\r
+\r
+2¿·Ö°æÈ ̈£ ̈c£©1996-2002£¬PostgreSQL È«Çò¿a×ばつé\r
+2¿·Ö°æÈ ̈£ ̈c£©1994-6 1⁄4ÓÖÝ ́óѧ¶ÊÂ\r
+\r
+£ ̈Portions copyright (c) 1996-2002, PostgreSQL Global Development Group\r
+ Portions Copyright (c) 1994-6 Regents of the University of California£©\r
+\r
+ÔÊÐíÎaÈÎoÎÄ¿μÄÊ1Ó㬿1⁄2± ́£¬ÐÞ ̧ÄoÍ·Ö·¢Õâ ̧öÈí1⁄4þoÍËüμÄÎÄμμ¶ø2»ÊÕÈ¡ÈÎoηÑÓã¬\r
+2¢ÇÒÎÞÐëÇ©ÊðÒò ́˶ø2úÉúμÄÖ¤Ã÷£¬Ç°ÌáÊÇÉÏÃæμİæÈ ×ばつÖ\r
+3öÏÖÔÚËùÓп1⁄2± ́ÖС£\r
+\r
+£ ̈Permission to use, copy, modify, and distribute this software and its\r
+documentation for any purpose, without fee, and without a written\r
+agreement is hereby granted, provided that the above copyright notice\r
+and this paragraph and the following two paragraphs appear in all copies.£©\r
+\r
+ÔÚÈÎoÎÇé¿öÏ£¬1⁄4ÓÖÝ ́óѧ¶1⁄42»3Ðμ£ÒòÊ1Óà ́ËÈí1⁄4þ1⁄4°ÆäÎÄμμ¶øμ1⁄4ÖÂμĶÔÈÎoÎμ±ÊÂÈËμÄ\r
+Ö±1⁄2ÓμÄ£¬1⁄4ä1⁄2ÓμÄ£¬ÌØÊâμÄ£¬ ̧1⁄21⁄4ÓμÄ»òÕßÏà°é¶øÉúμÄËð»μ£¬°üÀ ̈ÀûÒæËðʧμÄÔðÈΣ¬1⁄4 ́\r
+Ê11⁄4ÓÖÝ ́óѧÒÑ3⁄41⁄2 ̈ÒéÁËÕâЩËðʧμÄ¿ÉÄÜÐÔʱÒ2ÊÇÈç ́Ë¡£\r
+\r
+£ ̈IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY\r
+FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,\r
+INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS\r
+DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF\r
+THE POSSIBILITY OF SUCH DAMAGE.£©\r
+\r
+1⁄4ÓÖÝ ́óѧÃ÷È··ÅÆúÈÎoα£Ö¤£¬°üÀ ̈μ«2»3⁄4ÖÏÞÓÚÄ3Ò»ÌØ¶ ̈ÓÃÍ3⁄4μÄÉÌÒμoÍÀûÒæμÄÒþo¬±£\r
×ばつ÷ÊÇ¡±μÄ»ù ́¡μÄ£¬Òò¶ø1⁄4ÓÖÝ ́óѧûÓÐÔðÈÎÌá1©Î¬\r
+»¤£¬Ö§3Ö£¬ ̧üУ¬ÔöÇ¿»òÕßÐÞ ̧ÄμÄ·þÎñ¡£\r
+\r
+£ ̈THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,\r
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY\r
+AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS\r
+ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS\r
+TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.£©\r
+\r
+ÉÏÃæ3⁄4ÍÊÇ BSD °æÈ ̈ÉùÃ÷£¬Ò» ̧ö3⁄4μäμÄ¿aÔ ́°æÈ ̈ÉùÃ÷¡£Ëü¶ÔÔ ́ ́úÂëμÄÊ1ÓÃÎ ×ばつ÷ÈÎoÎ\r
+ÏÞÖÆ¡£ÎÒÃÇÏ2»¶Ëü2¢ÇÒ2» ́òËã ̧ıäËü¡£\r
+\r
+\r
+ 1.3) PostgreSQL ÔËÐÐÔÚÊ2à ́ Unix Æ1⁄2Ì ̈ÉÏ£¿\r
+\r
+Ò»°ãËμÀ ́£¬Ò» ̧öÏÖ ́úμÄ UNIX 1⁄4æÈÝμÄÆ1⁄2Ì ̈¶1⁄4ÄÜÔËÐÐ PostgreSQL ×ばつ°Ö ̧ÄÏÀïÁÐ\r
+3öÁË·21ドル⁄4ʱ3⁄41ýÃ÷È·2âÊÔμÄÆ1⁄2Ì ̈¡£\r
+\r
+\r
+ 1.4) ¿ÉÓÃμÄ·Ç Unix Æ1⁄2Ì ̈ÓÐÄÄЩ£¿\r
+\r
+¿Í»§¶Ë\r
+\r
+°Ñ libpq C ¿â£¬psql£¬ÆäËû1⁄2Ó¿ÚoͿͻ§¶ËÓ¦ÓÃ3ÌÐò±àÒë3É¿ÉÒÔÔÚ MS Windows Æ1⁄2\r
+Ì ̈ÉÏÔËÐÐÊÇ¿ÉÄÜμÄ¡£ÕâÖÖÇé¿öÏ£¬¿Í»§¶ËÔÚ MS Windows ÉÏÔËÐУ¬2¢ÇÒÍ ̈1ý\r
+TCP/IP ÓëÒ» ̧öÔËÐÐÔÚÎÒÃÇÖ§3ÖμÄ Unix Æ1⁄2Ì ̈ÉÏμÄ·þÎñÆ÷1⁄2øÐÐÍ ̈Ѷ¡£·21ドル⁄4°æ±3⁄4Öаü\r
+o¬Ò» ̧öÎÄ1⁄4þ win32.mak ÓÃÓÚÉú3É Win32 libpq ¿âoÍ psql ¡£PostgreSQL Ò2¿ÉÒÔ\r
+oÍ ODBC ¿Í»§¶ËÍ ̈Ѷ¡£\r
+\r
+·þÎñÆ÷\r
+\r
+Êý3⁄4Ý¿â·þÎñÆ÷ÏÖÔÚ¿ÉÒÔÍ ̈1ý Cygwin £¬Cygnus μÄ Unix/NT ÒÆÖ2¿âÔÚ Windows NT\r
+oÍ Win2k ÉÏÔËÐС2ドルÎÔÄ·21ドル⁄4°æ±3⁄4ÀïμÄ See /pgsql/doc/FAQ_MSWIN/ ÎÄ1⁄4þ»ò\r
+http://www.PostgreSQL.org/docs/faq-mswin.html ¡£\r
+\r
+ÒÆÖ2μ1⁄2 MS Win NT/2000/XP ×ばつ÷ÕýÔÚ1⁄2øÐС£\r
+\r
+\r
+ 1.5) ÎÒ ́ÓÄÄÀïÄÜμÃμ1⁄2 PostgreSQL£¿\r
+\r
+PostgreSQL μÄÖ÷ÄäÃûFTPÕ3⁄4μãÊÇ ftp://ftp.PostgreSQL.org/pub£¬3⁄4μÏñÕ3⁄4μã¿ÉÒÔ\r
+2ο1⁄4ÎÒÃÇÍøÕ3⁄4μÄÖ÷Ò3¡£\r
+\r
+\r
+ 1.6) ÎÒ ́ÓÄÄÀïÄÜμÃμ1⁄2¶Ô PostgreSQL μÄÖ§3Ö£¿\r
+\r
+Ö÷ÒaμÄÓÊ1⁄4þÁбíÊÇ£opgsql-general@postgreSQL.org\r
+<mailto:pgsql-general@postgreSQL.org>¡£¿ÉÒÔÔÚÄÇÀïÌÖÂÛÓÐ1Ø PostgreSQL μÄ\r
+ÎÊÌâ¡£Òa1⁄4ÓÈëÁÐ±í£¬·¢Ò»·âÓÊ1⁄4þÄÚÈÝ£ ̈2»ÊÇÖ÷ÌâÐУ©Îa\r
+\r
+ subscribe\r
+ end\r
+\r
+μÄÓÊ1⁄4þμ1⁄2 pgsql-general-request@postgreSQL.org\r
+<mailto:pgsql-general-request@postgreSQL.org> ¡£\r
+\r
+»1¿ÉÒÔ»ñÈ¡ÕaÒaÁÐ±í¡£Òa1⁄4ÓÈëÕâ ̧öÁÐ±í£¬·¢ÓÊ1⁄4þμ1⁄2£opgsql-general-digest-\r
+request@postgreSQL.org\r
+<mailto:pgsql-general-digest-request@postgreSQL.org>£¬ÆäÄÚÈÝÎa£o\r
+\r
+ subscribe\r
+ end\r
+\r
+ÿμ±Ö÷Áбí ́ïμ1⁄2 ́óÔ1⁄4 30k μÄÏûÏ¢ÄÚÈÝʱ£¬ÕaÒa3⁄4Í·¢ËÍ ̧øÕâ ̧öÁбíμÄ3ÉÔ±¡£\r
+\r
+»1¿ÉÒÔ2Î1⁄4Ó3ô3æÓÊ1⁄4þÁÐ±í¡£Òa1⁄4ÓÈëÕâ ̧öÁÐ±í£¬·¢ËÍÒ» ̧öÓÊ1⁄4þμ1⁄2\r
+bugs-request@postgreSQL.org <mailto:bugs-request@postgreSQL.org>£¬ÄÚÈÝÎa£o\r
+\r
+ subscribe\r
+ end\r
+\r
+»1¿ÉÒÔ2Î1⁄4Ó¿a·¢ÈËÔ±ÓÊ1⁄4þÁÐ±í¡£Òa1⁄4ÓÈëÕâ ̧öÁÐ±í£¬·¢ËÍÒ» ̧öÓÊ1⁄4þμ1⁄2\r
+hackers-request@postgreSQL.org <mailto:hackers-request@postgreSQL.org>£¬\r
+ÄÚÈÝÎa£o\r
+\r
+ subscribe\r
+ end\r
+\r
+ÆäËûμÄ1ØÓÚ PostgreSQL ÓÊ1⁄4þÁбíoÍÆäËûÐÅÏ¢¿ÉÒÔÔÚ PostgreSQL μÄ WWW Ö÷Ò3ÕÒμ1⁄2£o\r
+\r
+ http://postgresql.org/\r
+\r
+ÔÚ EFNet Àï»1ÓÐÒ» ̧ö IRC ÆμμÀ£¬ÆμμÀ #PostgreSQL¡£ÎÒÓà unix ÃüÁîirc -c\r
+'#PostgreSQL' "$USER" irc.phoenix.net\r
+\r
+ÉÌÒμÖ§3Ö1«Ë3⁄4μÄÁбíÔÚ\r
+http://www.PostgreSQL.org/users-lounge/commercial-support.html ¡£\r
+\r
+\r
+ 1.7) PostgreSQL ×ばつîÐÂμİæ±3⁄4ÊÇÊ2à ́£¿\r
+\r
+PostgreSQL ×ばつîÐÂμİæ±3⁄4Êǰæ±3⁄4 7.2.3¡££ ×ばつ¢£oÏÖÔÚÓ¦ ̧ÃÊÇ 7.3.1 ÁË¡££©\r
+\r
+ÎÒÃÇ1⁄4Æ»®Ã¿ËÄ ̧öÔ·21ドル⁄4Ò» ̧öÖ÷Òa°æ±3⁄4¡£\r
+\r
+\r
+ 1.8) ÓÐÄÄЩ¿ÉÓÃμÄ PostgreSQL μÄÎÄμμ£¿\r
+\r
×ばつÓ¡2ドルÎ1⁄4û /doc Ä¿Â1⁄4¡££ ×ばつ¢£o\r
+Ó¦Îa $PGHOME/doc£©¡£Äã»1¿ÉÒÔÔÚÏßä ̄ÀÀ PostgreSQL μÄÊÖ2ᣬÔÚ\r
+http://www.PostgreSQL.org/users-lounge/docs/ ¡£\r
+\r
+ÓÐÁ1⁄2±3⁄41ØÓÚ PostgreSQL μÄÊéÔÚÏßÌá1©£¬ÔÚ\r
+http://www.PostgreSQL.org/docs/awbook.html\r
+<http://www.PostgreSQL.org/docs/awbook.html> oÍ\r
+http://www.commandprompt.com/ppbook/\r
+<http://www.commandprompt.com/ppbook/> ¡£ÔÚ\r
+http://www.ca.PostgreSQL.org/books/\r
+<http://www.ca.PostgreSQL.org/books/> ÉÏÓÐ1ØÓÚ PostgreSQL μÄ¿É1oÊé1⁄4®μÄÁÐ\r
+±í¡£ÔÚ http://techdocs.PostgreSQL.org/ <http://techdocs.PostgreSQL.org/>\r
+ÉÏÊÕ1⁄4 ̄ÁËÓÐ1Ø PostgreSQL μÄ1⁄41⁄4ÊõÎÄÕ¡£\r
+\r
+/psql/ ÓÐһЩ2» ́íμÄ \d ×ばつ÷·û£¬o ̄Êý£¬3⁄4Û1⁄4 ̄μÈμÄÐÅÏ¢¡£\r
+\r
+ÎÒÃÇμÄ web Õ3⁄4μã°üo¬ ̧ü¶àμÄÎÄμμ£®\r
+\r
+\r
+ 1.9) ÎÒÈçoÎÁË1⁄2âÒÑÖaμÄ BUG oÍȱʧμÄÌØÐÔ£¿\r
+\r
+PostgreSQL Ö§3ÖÒ» ̧öÀ©Õ1ÁËμÄ SQL-92 ×ばつÓ1⁄4 ̄¡2ドルÎÔÄÎÒÃÇμÄ TODO\r
+<http://www.postgresql.org/docs/todo.html>\r
+<http://www.postgresql.org/docs/todo.html>ÁÐ±í£¬»ñȡһ ̧öÒÑÖa3ô3æ£¬È±Ê§ÌØ\r
+ÐÔoÍÎ ́À ́1⁄4Æ»®¡£\r
+\r
+\r
+ 1.10) ÎÒÓ¦ ̧ÃÔõÑùѧϰ SQL£¿\r
+\r
+ÔÚ http://www.postgresql.org/docs/awbook.html μÄ1ØÓÚ PostgreSQL μÄÊé1⁄2ÌÊÚ\r
+SQL¡££ ×ばつ¢£oÎÒÏÂÔØμ1⁄2±3⁄4μØÁË¡££©ÔÚ http://www.commandprompt.com/ppbook\r
+<http://www.commandprompt.com/ppbook/> ÓÐÁíÍâÒ»±3⁄41ØÓÚ PostgreSQL μÄÊé¡£\r
+ÔÚhttp://www.intermedia.net/support/sql/sqltut.shtm£¬http:\r
+//ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM \r
+<http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM>\r
+oÍ http://sqlcourse.com <http://sqlcourse.com/> ÓÐÒ» ̧ö2» ́íμÄÈëÃÅ1⁄2Ì3Ì¡£\r
+\r
+ÁíÒ» ̧öÊÇ "Teach Yourself SQL in 21 Days, Second Edition"£ ̈21Ììѧ»áSQL£¬\r
+μÚ¶þ°æ£©£¬ÔÚ http://members.tripod.com/er4ebus/sql/index.htm\r
+<http://members.tripod.com/er4ebus/sql/index.htm>\r
+\r
+ÎÒÃÇμÄÐí¶àÓû§Ï2»¶ /The Practical SQL Handbook, Bowman, Judith S., et\r
+al., Addison-Wesley ¡£ / ÆäËûμÄÓÐ/ The Complete Reference SQL, Groff et\r
+al., McGraw-Hill ¡£/\r
+\r
+\r
+ 1.11) PostgreSQL ÊÇ Y2K 1⁄4æÈÝμÄÂð£¿\r
+\r
×ばつ¿ØÖÆ 2000 AD Ö®oóoÍ 2000 BC ֮ǰμÄÈÕÆÚ¡£\r
+\r
+\r
+ 1.12) ÎÒÓ¦ ̧ÃÔõÑù1⁄4ÓÈë¿a·¢¶ÓÎ飿\r
+\r
×ばつîÐÂμÄÔ ́ ́úÂë2¢ÔĶÁÎÒÃÇ web Õ3⁄4μã»ò·21ドル⁄4°üÖÐμÄ PostgreSQL ¿a·¢Õß\r
+ÎÄμμ¡£Æä ́Σ¬1⁄4ÓÈë pgsql-hackers oÍ pgsql-patches ÓÊ1⁄4þÁÐ±í¡£μÚÈý£¬Ïò\r
+pgsql-patches Ìá1⁄2» ̧ßÖÊÁ¿μÄ21¶¡3ÌÐò¡£\r
+\r
+ÏÖÔÚ ́ó ̧ÅÓÐÊ®1⁄4 ̧ ̧öÈËÓÐ PostgreSQL CVS 1éμμ COMMIT μÄÈ ̈ÏÞ¡£ËûÃǶ1⁄4ÒÑ3⁄4Ìá1⁄2»ÁË\r
+·Ç3£¶à ̧ßÖÊÁ¿μÄ21¶¡ÁË£¬ÒÔÖÁÓÚÏÖÓÐμÄÌá1⁄2»ÈËoÜÄÑ ×ばつ࣬2¢ÇÒÎÒÃÇÏàÐÅËûÃÇÌá\r
+1⁄2»μÄ21¶¡¶1⁄4ÊÇ ̧ßÖÊÁ¿μÄ¡£\r
+\r
+\r
+ 1.13) ÎÒÓ¦ ̧ÃÔõÑùÌá1⁄2»Ò» ̧öBUG± ̈ ̧棿\r
+\r
+Çë·ÃÎÊ http://www.PostgreSQL.org/bugs/bugs.php μÄ PostgreSQL BugTool Ò3\r
+Ãæ, ÄÇÀï ̧ø3öÁËÈçoÎÌá1⁄2»Ò» ̧öBUG± ̈ ̧æμÄÖ ̧ÄÏ¡£\r
+\r
+ͬÑùÒ2Òa¿ ́¿ ́ÎÒÃÇμÄ ftp Õ3⁄4μã ftp://ftp.postgreSQL.org/pub\r
+<ftp://ftp.postgresql.org/pub>£¬¿ ́ÓÐûÓÐ ̧üÐÂμÄ PostgreSQL °æ±3⁄4»ò21¶¡¡£\r
+\r
+\r
+ 1.14) PostgreSQL oÍÆäËû DBMS ±ÈÆðÀ ́ÈçoΣ¿\r
+\r
+ÆÀ1⁄4ÛÈí1⁄4þÓÐoÃ1⁄4 ̧ÖÖ·1⁄2· ̈£oÌØÐÔ£¬ÐÔÄÜ£¬¿É¿¿ÐÔ£¬Ö§3ÖoÍ1⁄4Û ̧ñ¡£\r
+\r
+*ÌØÐÔ*\r
+ PostgreSQL ÓμÓÐ ́óÐÍÉÌÓà DBMS Àï ×ばつÓ2éÑ ̄£¬ ́\·¢\r
+ Æ÷£¬ÊÓÍ1⁄4£¬Íâ1⁄4ü2ο1⁄4ÍêÕûÐÔoÍ ̧ ́ÔÓμÄËøμÈ¡£ÎÒÃÇ»1ÓÐһЩËüÃÇûÓÐμÄÌØÐÔ£¬Èç\r
+ Óû§¶ ̈ÒåÀàÐÍ£¬1⁄4Ì3У¬1æÔòoÍ¶à°æ±3⁄42¢ÐпØÖÆÒÔ1⁄4õÉÙËøμÄÕùÓÃμÈ¡£\r
+ \r
+*ÐÔÄÜ*\r
+ PostgreSQL oÍÆäËûÉÌÓÃoÍ¿aÔ ́μÄÊý3⁄4Ý¿â3⁄4ßÓÐÀàËÆμÄÐÔÄÜ¡£¶ÔÄ3Щ ́¦ÀíËü±È1⁄2Ï\r
+ ¿ì£¬¶ÔÆäËûһЩ ́¦ÀíËü±È1⁄2ÏÂý¡£Óë MySQL »ò ̧üÇá±ãμÄÊý3⁄4Ý¿âÏμÍ3±È1⁄2Ï£¬ÎÒÃÇ\r
+ ÔÚ insert/update ʱÂý£¬ÒòÎaÎÒÃÇÓÐÊÂÎñ ́¦Àí¡£μ±È» MySQL 2»3⁄4ßÓÐÎÒÃÇÔÚÉÏ\r
+ ÃæμÄ/ÌØÐÔ /¶ÎÀï ̧ø3öμÄÈÎoÎÌØÐÔ¡£ÎÒÃÇμÄÖ÷Òa·1⁄2ÏòÊǿɿ¿ÐÔoÍÌØÐÔ£¬3⁄4¡1ÜÎÒ\r
+ ÃÇÔÚÿ ́η21ドル⁄4ʱ2»¶ÏμØ ̧Ä1⁄2øÐÔÄÜ¡£ÓÐÒ» ̧öoÜÓÐȤμÄÍøÒ3±È1⁄2ÏÁË PostgreSQL oÍ\r
+ MySQL http://openacs.org/why-not-mysql.html¡£\r
+*¿É¿¿ÐÔ*\r
+ ÎÒÃÇÖaμÀ DBMS ×ばつöμ1⁄2·21ドル⁄43⁄4\r
+ 1ýÈÏÕæ2âÊÔμÄ£¬Îȶ ×ばつîÉÙμÄ ́úÂ롣ÿ ̧ö°æ±3⁄4ÖÁÉÙÓÐÒ» ̧öÔÂμÄ beta 2â\r
+ ÊÔ£¬2¢ÇÒÎÒÃÇμÄ·21ドル⁄4ÀúÊ·ÏÔÊ3⁄4ÎÒÃÇ¿ÉÒÔÌá1©Îȶ ̈μÄ£¬ÀÎ1ÌμÄ£¬¿ÉÓÃÓÚÉú2úÊ1ÓÃ\r
+ μİæ±3⁄4¡£ÎÒÃÇÏàÐÅÔÚÕâ·1⁄2ÃæÎÒÃÇÓëÆäËûμÄÊý3⁄4Ý¿âÈí1⁄4þÊÇÏàμ±μÄ¡£\r
+ \r
+*Ö§3Ö*\r
+ ÎÒÃÇμÄÓÊ1⁄4þÁбíÌá1©Ò» ̧ö·Ç3£ ́óμÄ¿a×ばつéÒÔ°ïÖú1⁄2â3⁄4öËùÅöμ1⁄2μÄÈÎ\r
+ oÎÎÊÌâ¡£ÎÒÃÇ2»Äܱ£Ö¤¿Ï¶ ̈ÄÜ1⁄2â3⁄4öÎÊÌ⣬Ïà±È֮ϣ¬ÉÌÓà DBMS ×ばつÜÄÜ\r
+ 1»Ìá1©1⁄2â3⁄4ö·1⁄2· ̈¡£Ö±1⁄2ÓÓë¿a·¢ÈËÔ±£¬Óû§Èo£¬ÊÖ2áoÍÔ ́3ÌÐò1⁄2Ó ́\Áî\r
+ PostgreSQL μÄÖ§3Ö±ÈÆäËû DBMS »1Òa×ばつ°μÄÖ§3Ö£¬\r
+ ¿ÉÒÔ ̧øÌá1© ̧øÄÇЩÐèÒaμÄÈË¡££ ̈2ÎÔÄÖ§3Ö FAQ Ìõ¿î 1.6 С1⁄2Ú¡££©\r
+ \r
+*1⁄4Û ̧ñ*\r
+ ÎÒÃǶÔÈÎoÎÓÃÍ3⁄4¶1⁄4Ãâ·Ñ£¬°üÀ ̈ÉÌÓÃoÍ·ÇÉÌÓÃÄ¿μÄ¡£Äã¿ÉÒÔ2»1⁄4ÓÏÞÖÆμØÏòÄãμÄ2ú\r
+ Æ·Àï1⁄4ÓÈëÎÒÃÇμÄ ́úÂ룬3ýÁËÄÇЩÎÒÃÇÔÚÉÏÃæμİæÈ ̈ÉùÃ÷ÀïÉùÃ÷μÄ BSD ·ç ̧ñμÄ\r
+ °æÈ ̈Íâ¡£ \r
+\r
+\r
+ 1.15) ÎÒÓ¦ ̧ÃÔõÑùÔÞÖú PostgreSQL £¿\r
+\r
×ばつÔ ́Ó1996Äê¿aÊ1⁄4£¬PostgreSQL ÒÑ3⁄4ÓÐÁËÒ» ×ばつéÖ ̄¡£ÕâЩӦ ̧Ã1é1¦ÓÚ Marc\r
+Fournier£¬ÊÇËû ́ ́1⁄2 ̈ÁË2¢ÔÚÕâЩÄêÒ»Ö±1ÜÀíÕâ ×ばつéÖ ̄¡£\r
+\r
+¶ÔÓÚÒ» ̧ö¿aÔ ́ÏîÄ¿À ́Ë죬ÖÊÁ¿»ù ́¡ÉèÊ©ÊÇ·Ç3£ÖØÒaμÄ¡£ËüÄÜ·ÀÖ13öÏÖÑÏÖØÑÓ3ÙÏîÄ¿\r
+ǰ1⁄2øμÄ»ìÂÒ¡£\r
+\r
+ÏÔÈ»£¬Õâ ×ばつéÖ ×ばつa3ɱ3⁄42»·Æ¡£Î¬3ÖÆäǰ1⁄2øÓÐ ̧÷ÖÖÔ¶ÈμÄ¡¢Ò» ́ÎÐÔμÄ¿aÖ§¡£Èç1û\r
+Äã»òÕßÄãμÄ1«Ë3⁄4ÄÜ1⁄2øÐÐ3⁄4èÔùÒÔÖ§3ÖÕâÏîÊÂÒ죬Çë·ÃÎÊ\r
+http://store.pgsql.com/shopping/ <http://store.pgsql.com/shopping/> 1⁄2øÐÐ\r
+3⁄4èÔù¡£\r
+\r
+ËäÈ» ̧ÃÍøÒ3Ìá1⁄4°ÁË PostgreSQL 1«Ë3⁄4£¬ÕâЩ3⁄4èÔù1⁄2«1⁄2öÓÃÓÚÖ§3Ö PostgreSQL ÏîÄ¿£¬\r
×ばつÊÖúû ̧öÌØ¶ ̈μÄ1«Ë3⁄4¡£Èç1ûÄãÔ ̧Ò⣬Ò2¿ÉÒÔÓÊ1⁄4Ä֧Ʊμ1⁄2ÁaÏμμØÖ·¡£\r
+\r
+------------------------------------------------------------------------\r
+\r
+\r
+ Óû§¿Í»§¶ËÎÊÌâ\r
+\r
+\r
+ 2.1) ÓÐ PostgreSQL μÄ ODBC Çý¶ ̄à ́£¿\r
+\r
+ÓÐÁ1⁄2 ̧ö ODBC Çý¶ ̄¿ÉÒÔ»ñμã¬PsqlODBC oÍ OpenLink ODBC.\r
+\r
+¿ÉÒÔÔÚhttp://gborg.postgresql.org/project/psqlodbc/projdisplay.php ÏÂÔØ\r
+PsqlODBC ¡£\r
+\r
+OpenLink ODBC ¿ÉÒÔ ́Ó http://www.openlinksw.com/ ×ばつ1⁄4\r
+ODBC ¿Í»§¶ËÈí1⁄4þ1⁄4æÈÝ£¬Òò¶øÄã¿ÉÒÔÔÚÈÎoÎËûÃÇÖ§3ÖμĿͻ§¶ËÆ1⁄2Ì ̈£ ̈Win, Mac,\r
+Unix, VMS£©ÉÏÊ1Óà PostgreSQL ODBC¡£\r
+\r
+ËûÃÇ¿ÉÄÜ1⁄2«Õâ ̧ö2úÆ·ÏúÊÛ ̧øÄÇЩÐèÒa×ばつÜÊÇÓÐÒ» ̧ö freeware\r
+£ ×ばつÔÓÉÈí1⁄4þ£©μİæ±3⁄4¿ÉÒÔμÃμ1⁄2¡£ÇëÑ ̄ÎÊ postgres95@openlink.co.uk\r
+<mailto:postgres95@openlink.co.uk>¡£\r
+\r
+\r
+ 2.2) ÓÐÊ2à ́1¤3⁄4ß¿ÉÒÔ°Ñ PostgreSQL ÓÃÓÚ Web Ò3Ãæ£¿\r
+\r
+Ò» ̧ö1⁄2éÉÜÒÔÊý3⁄4Ý¿âÎaoóÌ ̈μÄͦ2» ́íμÄ Õ3⁄4μãÊÇ£ohttp://www.webreview.com ¡£\r
+\r
+¶ÔÓÚ Web 1⁄4 ̄3É£¬PHP ÊÇÒ» ̧ö1⁄4«oÃμÄ1⁄2Ó¿Ú¡£ËüÔÚ£ohttp://www.php.net/ ¡£\r
+\r
+¶ÔÓÚ ̧ ́ÔÓμÄÈÎÎñ£¬oܶàÈË2ÉÓà Perl 1⁄2Ó¿ÚoÍ CGI.pm »ò mod_perl ¡£\r
+\r
+\r
+ 2.3) PostgreSQL ÓμÓÐÍ1⁄4ÐÎÓû§1⁄2çÃæÂð£¿\r
+\r
+ÊÇμÄ¡£ÓÐ1⁄4 ̧ ̧öÊÊÓÃÓÚ PostgreSQL μÄÍ1⁄4ÐÎ1⁄2Ó¿Ú¡£°üÀ ̈PgAccess£ ̈http:\r
+//www.pgaccess.com)£¬PgAdmin II £ ̈http://www.pgadmin.org£¬1⁄2öÊÊÓÃÓÚ\r
+Win32£©£¬ RHDB Admin (http://sources.redhat.com/rhdb/£© ÒÔ1⁄4° Rekall\r
+£ ̈http://www.thekompany.com/products/rekall/£¬ ×ばつ ̈ÓÐμÄ/proprietary)¡£»1ÓÐ\r
+PHPPgAdmin £ ̈http://phppgadmin.sourceforge.net/£©\r
+<http://phppgadmin.sourceforge.net/> £¬Ò» ̧ö»ùÓÚ web μÄ PostgreSQL ·ÃÎÊ1⁄2Ó\r
+¿Ú¡£\r
+\r
+ÎÒÃÇÓÐÒ» ̧ö2» ́íμÄÍ1⁄4ÐÎÓû§1⁄2çÃæ£¬3ÆÎa PgAccess ×ばつ÷± ̈±íÉú3ÉÆ÷¡£Íø\r
+Ò3ÊÇ http://www.pgaccess.org/¡£\r
+\r
+\r
+ 2.4) ÎÒÃÇ¿ÉÒÔÓÃÊ2à ́ÓïÑÔoÍ PostgreSQL ́ò1⁄2»μÀ£¿\r
+\r
+ ́ó¶àÊýÁ÷ÐÐμıà3ÌÓïÑÔ¶1⁄4ÓзÃÎÊ PostgreSQL μÄ1⁄2Ó¿Ú¡£Çë1⁄4ì2é±à3ÌÓïÑÔμÄÀ©Õ1Ä£¿é\r
+ÁÐ±í¡£\r
+\r
+PostgreSQL ·21ドル⁄4°üÖаüo¬ÁËÒÔÏÂ1⁄2Ó¿Ú£o\r
+\r
+ * C (libpq)\r
+ * Embedded C (ecpg)\r
+ * Java (jdbc)\r
+ * Python (PyGreSQL)\r
+ * TCL (libpgtcl)\r
+\r
+ÆäËûμÄ1⁄2Ó¿ÚÔÚ http://gborg.postgresql.org ÉÏμÄ /Drivers/Interfaces/ С1⁄2Ú¡£\r
+\r
+------------------------------------------------------------------------\r
+\r
+\r
+ ÏμÍ31ÜÀíÎÊÌâ\r
+\r
+\r
+ 3.1) ÎÒÔõÑùÄÜ°Ñ PostgreSQL ×ばつ°ÔÚ /usr/local/pgsql ÒÔÍâμÄμØ·1⁄2£¿\r
+\r
+ÔÚÔËÐÐ configure ʱ1⁄4ÓÉÏ --prefix Ñ¡Ïî¡£\r
+\r
+\r
+ 3.2) μ±ÎÒÔËÐÐ postmaster ʱ£¬3öÏÖ/ Bad System Call/£ ̈ÏμÍ3μ÷ÓÃ\r
+ ́í£©»ò Core Dumped ́íÎó¡£ÎaÊ2à ́£¿\r
+\r
×ばつ÷ÏμÍ3oËÐÄÊÇ·ñÖ§3Ö System V À©Õ1¡£\r
+PostgreSQL ÐèÒaÄÚoËÖ§3Ö12ÏíÄÚ ́æoÍÐÅoÅμÆ¡£\r
+\r
+\r
+ 3.3) μ±ÎÒÊÔÍ1⁄4ÔËÐÐ postmaster ʱ£¬3öÏÖ /IpcMemoryCreate/ ́íÎó¡£Îa\r
+ Ê2à ́£¿\r
+\r
+ÄãÒaà ́ÊÇûÓÐÔÚÄÚoËÀïÕýÈ·ÅäÖÃ12ÏíÄÚ ́棬Òaà ́ÊÇÄãÐèÒaÀ© ́óÄãμÄÄÚoËμÄ¿ÉÓÃ12Ïí\r
+ÄÚ ́æ¡£ÐèÒaμÄ12ÏíÄÚ ́æ3⁄4ßÌåμÄÊýÁ¿È¡3⁄4öÓÚÄãμÄÌåÏμ1⁄2á11oÍÄãÅäÖÃÄãμÄ postmaster\r
+ÔËÐÐʱÊ1ÓÃμÄ»o3åÇøoÍoó¶Ë1⁄2ø3ÌÊýÄ¿¡£¶Ô ́ó¶àÊýÏμÍ3£¬Ê1ÓÃȱʡ»o3åÇøoÍ1⁄2ø3ÌÊýÄ¿\r
×ばつîÉÙÐèÒa~1MB¡£ÓÐ1Ø12ÏíÄÚ ́æoÍÐÅoÅμÆμÄÏêÏ ̧ÐÅÏ¢Çë2ο1⁄4 PostgreSQL\r
+Administrator's Guide\r
+<http://www.postgresql.org/idocs/index.php?kernel-resources.html> ¡£\r
+\r
+\r
+ 3.4) μ±ÎÒÊÔÍ1⁄4ÔËÐÐ postmaster ʱ£¬3öÏÖ /IpcSemaphoreCreate/ ́í\r
+ Îó¡£ÎaÊ2à ́£¿\r
+\r
+Èç1û ́íÎóÐÅÏ¢ÊÇ /IpcSemaphoreCreate: semget failed (No space left on\r
+device)/£¬ÄÇà ×ばつÊÔ ́¡£Postgres μÄÿ ̧öDZ\r
+ÔÚμÄoóÌ ̈1⁄2ø3̶1⁄4ÐèÒaÒ» ̧öÐÅoÅμÆ¡£Ò» ̧öÁÙʱμÄ1⁄2â3⁄4ö·1⁄2· ̈ÊÇÒÔ±È1⁄2ÏÉÙμÄoóÌ ̈1⁄2ø3ÌÊý\r
+£ ̈2ÎÊý£©Æô¶ ̄ postmaster¡£Ê1Óÿa1Ø /-N/ ́øÒ» ̧öÉÙÓÚȱʡÖμ 32 μÄ2ÎÊýÔËÐÐ\r
+postmaster¡£ ̧ü3¤3⁄4ÃμÄ1⁄2â3⁄4ö·1⁄2· ̈ÊÇ1⁄4Ó ́óÄãμÄÄÚoËμÄ SEMMNS oÍ SEMMNI 2ÎÊý¡£\r
+\r
+ÔÚÊý3⁄4Ý¿â·ÃÎÊÁ¿oÜ ́óʱ£¬ÐÅoÅμÆ2»¿ÉÓÿÉÄÜμ1⁄4ÖÂÏμÍ3±ÀÀ£¡£\r
+\r
+Èç1û ́íÎóÐÅÏ¢ÊÇÆäËûμÄÊ2à ́¶«Î÷£¬Äã¿ÉÄÜ3⁄4Í ̧ù±3⁄4ûÓÐÔÚÄÚoËÀïÃæÅäÖÃÐÅoÅμÆÖ§3Ö¡£\r
+ÓÐ1Ø12ÏíÄÚ ́æoÍÐÅoÅμÆμÄÏêÏ ̧ÐÅÏ¢Çë2ο1⁄4 PostgreSQL Administrator's Guide\r
+<http://www.postgresql.org/idocs/index.php?kernel-resources.html> ¡£\r
+\r
+\r
+ 3.5) ÎÒÈçoοØÖÆÀ ×ばつÔÆäËûÖ÷»úμÄÁ¬1⁄2Ó£¿\r
+\r
+ȱʡʱ£¬PostgreSQL Ö»ÔÊÐíÍ ̈1ý unix ×ばつÖÀ ×ばつÔ±3⁄4»úμÄÁ¬1⁄2Ó¡3ドルý·ÇÄãÊ1ÓÃ\r
+/-i/ ¿a1ØÆô¶ ̄ /postmaster/£¬*2¢ÇÒ*Í ̈1ý¶ÔÓ¦μıà1⁄4 /$PGDATA/pg_hba.conf/\r
+ÎÄ1⁄4þ ́ò¿aÁËÖ÷»úÎa»ù ́¡£ ̈ host-based £©μÄÈÏÖ¤£¬·ñÔòÆäËû»úÆ÷ÊÇ2»ÄÜÓëÄãμÄ»úÆ÷\r
+Á¬1⁄2ÓμÄ¡£ÕâÑù1⁄2«ÔÊÐí TCP/IP Á¬1⁄2Ó¡£\r
+\r
+\r
+ 3.6) ÎÒÔõÑùμ÷ÕûÊý3⁄4Ý¿âÒýÇæÒÔ»ñμà ̧üoÃμÄÐÔÄÜ£¿\r
+\r
+μ±È»£¬Ë÷Òý¿ÉÒÔ1⁄4ÓËÙ2éÑ ̄¡£EXPLAIN ÃüÁîÔÊÐíÄã1Û2ì PostgreSQL ÈçoÎ1⁄2âÊÍÄãμÄ2é\r
+Ñ ̄£¬ÒÔ1⁄4°Ê1ÓÃÁËÄÄЩË÷Òý¡£\r
+\r
+Èç1ûÄãÕý ́¦ÀíÒ»¶Ñ INSERT£¬¿1⁄4ÂÇÊ1Óà COPY ÃüÁîÒÔ ×ばつö±È\r
+μ\¶ÀμÄÒ» ̧ö ̧ö INSERT ¿ìμöࡣÆä ́Σ¬Ã»ÓÐ ́¦ÓÚ BEGIN WORK/COMMIT ÊÂÎñ¿éÖ®1⁄4ä\r
+μÄÓï3⁄4ä±»ÈÏÎaÊôÓÚͬһ ×ばつÅÔÚÒ» ̧öÊÂÎñ¿éÀïÃæ ́¦Àí ̧ü¶àμÄÓï3⁄4ä¡£ÕâÑù¿ÉÒÔ\r
+1⁄4õÉÙÊÂÎñ ́øÀ ́μĶîÍâ¿a×ばつö ́óÁ¿μÄÊý3⁄4Ý ̧ıäʱ¿1⁄4ÂÇÉ3⁄43ýoÍÖØ1⁄2 ̈Ë÷Òý¡£\r
+\r
+»1ÓÐ1⁄4 ̧ ̧öμ÷1⁄2ÚμÄÑ¡Ïî¿ÉÒÔÊ1Óá£Äã¿ÉÒÔÍ ̈1ý ́ø /-o -F/ Ñ¡ÏîÆô¶ ̄ postmaster À ́\r
+1⁄2ûÖ1 fsync()¡£ÕâÑù1⁄2«±ÜÃâÿ ́ÎÊÂÎñoóμ÷Óà /fsync() / °ÑÊý3⁄4ÝË¢ÐÂμ1⁄2 ́ÅÅÌÉÏ¡£\r
+\r
+Äã»1¿ÉÒÔÊ1Óà postmaster -B Ñ¡ÏîÔö1⁄4Óoó¶Ë1⁄2ø3ÌÊ1ÓÃμÄ12ÏíÄÚ ́æ»o3åμÄÊýÄ¿¡£Èç\r
+1ûÄã°ÑÕâ ̧ö2ÎÊýÉèÖÃμÃÌ« ́ó£¬postmaster ¿ÉÄÜÎÞ· ̈Æô¶ ̄£¬ÒòÎaÄãÒÑ3⁄43¬1ýÁËÄãμÄ\r
+ÄÚoËÔÚ12ÏíÄÚ ́æ¿Õ1⁄4äÉÏμÄÏÞÖÆ¡£Ã¿ ̧ö»o3åÇøÊÇ 8K 2¢ÇÒȱʡ 64 ̧ö»o3åÇø¡£\r
+\r
+Äã»1¿ÉÒÔÊ1ÓÃoóÌ ̈1⁄2ø3ÌμÄ -S Ñ¡ÏîÀ ́Ôö1⁄4Óÿ ̧öoóÌ ×ばつî ́óÄÚ ́æ\r
+ÊýÁ¿¡£-S ×ばつÖ1⁄2Ú1⁄4ÆμÄ£¬È±Ê¡ÊÇ 512 £ ̈Ò23⁄4ÍÊÇË죬512K£©¡£\r
+\r
+Äã»1¿ÉÒÔÊ1Óà CLUSTER ÃüÁîÀ ́°Ñ±íÀïμÄÊý3⁄4ݰ ́ÕÕÄ3 ̧öË÷Òý1⁄2øÐÐ3⁄4Û1⁄4 ̄ ́æ·Å¡2ドルÎÔÄ\r
+CLUSTER μÄÊÖ2áÒ3»ñÈ¡ ̧ü¶àÏ ̧1⁄2Ú¡£\r
+\r
+\r
+ 3.7) PostgreSQL Àï¿ÉÒÔ»ñμÃÊ2à ́ÑùμÄμ÷ÊÔÌØÐÔ£¿\r
+\r
+PostgreSQL ÓÐ1⁄4 ̧ ̧öÌØÐÔÓÃÓÚ± ̈ ×ばつ ̬́ÐÅÏ¢£¬ÕâЩÐÅÏ¢¿ÉÄܶÔμ÷ÊÔÓÃÍ3⁄4oÜÓаïÖú¡£\r
+\r
×ばつÏÈ£¬Í ̈1ý ̧1⁄2 ́ø --enable-cassert Ñ¡ÏîÔËÐÐ configure£¬ÓÐoܶà /assert()/ 1⁄4à\r
+¿ØoóÌ ̈1⁄2ø3ÌoÍÔÚ·¢ÉúÄ3ЩΠ́ÔøÔ¤ÁÏμÄÏÖÏóʱͣÖ13ÌÐòÔËÐС£\r
+\r
+postmaster oÍ postgres ×ばつÏÈ£¬μ±ÄãÆô¶ ̄ postmaster\r
×ばつ1⁄4 ́íÎóÊä3ö¶ ̈Ïòμ1⁄2ÁËÒ» ̧öÈÕÖ3⁄4ÎÄ1⁄4þÀïÈ\ÁË£¬Ïó£o\r
+\r
+ cd /usr/local/pgsql\r
+ ./bin/postmaster >server.log 2>&1 &\r
+\r
+ÕâÑù1⁄2«ÔÚ PostgreSQL ¶1円⁄4¶Ä¿Â1⁄4ÏÂÊä3öÒ» ̧ö server.log ÎÄ1⁄4þ¡£Õâ ̧öÎÄ1⁄4þ°üo¬·þÎñ\r
+Æ÷Åöμ1⁄2μÄÎÊÌâoÍ ́íÎóμÄÓÐÓÃÐÅÏ¢¡£postmaster ÓÐÒ» ̧ö -d Ñ¡Ï ̧ÃÑ¡ÏîÔÊÐíÎÒÃÇ\r
+»ñμà ̧ü¶àμÄÏ ̧1⁄2ڻ㱠̈¡£-d Ñ¡Ïî1⁄2ÓÊÜÒ» ×ばつÖ±êÃ÷μ÷ÊÔ1⁄4¶±ð¡£ÐèÒa3⁄4 ̄ ̧æμÄÊÇ ̧ßμÄμ÷\r
+ÊÔ1⁄4¶±ð¿ÉÄÜ»áÉú3É3⁄4Þ ́óμÄÈÕÖ3⁄4ÎÄ1⁄4þ¡£\r
+\r
+Èç1û postmaster ûÓÐÔËÐУ¬Äã¿ÉÒÔÖ±1⁄2ÓÔÚÃüÁîÐÐÉÏÆô¶ ̄ postgres oóÌ ̈1⁄2ø3Ì£¬È»\r
+oóÖ±1⁄2Ó1⁄4üÈë SQL Óï3⁄4ä¡£ÎÒÃÇ*Ö»* ÍÆ1⁄4öÔÚμ÷ÊÔμÄʱoòÕâà ́ ×ばつ¢ÒâÕâʱÓû»ÐÐÜÞ\r
+¶ø2»ÊÇ·ÖoűíÊ3⁄4Óï3⁄4ä1⁄2áÎ2¡£Èç1ûÄã ×ばつÅμ÷ÊÔ·ûoűàÒ룬Äã¿ÉÒÔÊ1ÓÃÒ» ̧öμ÷ÊÔÆ÷1Û¿ ́\r
+·¢ÉúÁËÊ2à ́ÊÂÇé¡£ÒòÎaoóÌ ̈1⁄2ø3ÌûÓÐÓÉ postmaster Æô¶ ̄μÄ£¬Ëü2»ÊÇoÍÊμ1⁄4ÊμÄÔËÐÐ\r
+»·3⁄43Ò»Ö£¬¶øÇÒËø¶ ̈/oóÌ ̈1⁄2»»\ÎÊÌâ¿ÉÄÜ2»ÄÜÖØÏÖ¡£\r
+\r
+Èç1û postmaster ÒÑ3⁄4ÔËÐУ¬¿ÉÔÚÒ» ̧ö ́°¿ÚÖÐÆô¶ ̄ /psql/£¬È»oóÕÒ3ö /psql/ ¶Ô\r
+Ó¦μÄ /postgres/ 1⁄2ø3ÌμÄ PID¡£Ê1ÓÃÒ» ̧öμ÷ÊÔÆ÷ ×ばつÅÔÚÕâ ̧ö /postgres /PID ÉÏ¡£\r
+Äã¿ÉÒÔÔÚμ÷ÊÔÆ÷ÀïÉèÖöÏμã2¢ÇÒ ́Ó /psql/ ÀïÖ ́ÐÐ2éÑ ̄¡£Èç1ûÄãÔÚμ÷ÊÔ\r
+/postgres/ μÄÆô¶ ̄£¬Äã¿ÉÒÔÉèÖà PGOPTIONS="-W n"£¬È»oóÆô¶ ̄ /psql/¡£ÕâÑù1⁄2«\r
+μ1⁄4ÖÂÆô¶ ̄ÑÓ3Ù /n/ Ã룬ÕâÑùÄã3⁄4Í¿ÉÒÔ ̧1⁄21⁄4ÓÒ» ̧öμ÷ÊÔÆ÷2¢ÇÒ ×ばつÙÆô¶ ̄Ë3ÐòμÄ1ý3Ì¡£\r
+\r
+postgres 3ÌÐòÓÐ -s£¬-A£¬oÍ -t Ñ¡Ïî¿ÉÄÜÔÚμ÷ÊÔoÍÐÔÄÜ2âÁ¿μÄʱoò·Ç3£ÓÐÓá£\r
+\r
+Äã»1¿ÉÒÔ ́ø profiling Ö§3Ö±àÒëoóÌ ̈£¬ÒÔ±ã1Û2ìÄÄЩo ̄ÊýÕ1⁄4ÓÃμÄÖ ́ÐÐʱ1⁄4ä1⁄2϶ࡣ\r
+profile ÎÄ1⁄4þ1⁄2«·ÅÔÚ pgsql/data/base/dbname Ä¿Â1⁄4Ï¡£¿Í»§¶Ë profile ÎÄ1⁄4þ1⁄2«\r
+·ÅÔÚ¿Í»§¶Ëμ±Ç°Ä¿Â1⁄4Ï¡£ÔÚ Linux ÏÂÖ§3Ö profiling ÒaÔÚ±àÒëʱ1⁄4ÓÉÏ/-\r
+DLINUX_PROFILE / ¡£\r
+\r
+\r
+ 3.8) ÎaÊ2à ́ÔÚÊÔÍ1⁄4Á¬1⁄2ÓμÇÂ1⁄4ʱÊÕμ1⁄2¡°Sorry, too many clients¡±ÏûÏ¢£¿\r
+\r
+ÄãÐèÒaÔö ́ó postmaster Æô¶ ̄ʱ֧3ÖμÄ2¢·¢oóÌ ̈1⁄2ø3ÌÊý¡£\r
+\r
+ȱʡÏÞÖÆÊÇ 32 1⁄2ø3Ì¡£Äã¿ÉÒÔÍ ̈1ý ×ばつÅÊÊμ±μÄ /-N/ Öμ¿a1ØÆô¶ ̄ postmaster Ôö1⁄4Ó\r
+Õâ ̧öÊýÄ¿¡£»òÕßÐÞ ̧Ä /postgresql.conf/ ÎÄ1⁄4þ¡£\r
+\r
+Òa×ばつ¢ÒâÈç1ûÄã°Ñ /-N/ ÉèÖÃÎa ́óÓÚ 32£¬Äã±ØÐëͬÑùÔö ́ó /-B/£¬3¬1ýËüȱʡμÄ\r
+64£»-B ×ばつîÉÙÊÇ -N μÄÁ1⁄2±¶£¬¶øÇÒÎaÁË ̧üoÃμÄÐÔÄÜ¿ÉÄÜÒa±ÈÄÇ ×ばつÖÒa ́ó¡£¶Ô\r
+ÓÚ ́óÊýÄ¿μÄoó¶Ë1⁄2ø3Ì£¬Äã¿ÉÄÜ»1»á·¢ÏÖÄã»1ÐèÒaÔö1⁄4ÓÐí¶à Unix ÄÚoËÅäÖÃ2ÎÊýÖμ¡£\r
+Òa1⁄4ì2éμĶ«Î÷°üÀ ̈12ÏíÄÚ ×ばつî ́ó3ß ×ばつî ́óÊýÄ¿£¬SEMMNS\r
+oÍ ×ばつî ×ばつî ́ó1⁄2ø3ÌÊý£¬MAXUPRC£¬ÒÔ1⁄4° ́ò¿aÎÄ1⁄4þ\r
×ばつî ́óÊýÄ¿£¬NFILE oÍ NINODE ¡£Postgres ¶ÔÔÊÐíμÄoóÌ ̈1⁄2ø3ÌÊýÓÐÏÞÖÆμÄÔÒòÊÇ\r
+Îa×ばつÊÔ ́¡£\r
+\r
+ÔÚ Postgres ÔçÓÚ 6.5 ×ばつî ́óoóÌ ̈1⁄2ø3ÌÊýȱʡÊÇ 64£¬2¢ÇÒ¶ÔËüμÄÐÞ ×ばつÏÈ\r
+ÐèÒaÐÞ ̧Ä /include/storage/sinvaladt.h/ ÀïμÄ MaxBackendId 3£Á¿£¬È»oóÖØÐÂ\r
+BUILD¡£\r
+\r
+\r
+ 3.9) pgsql_tmp Ä¿Â1⁄4Àï¶1⁄4ÓÐЩÊ2à ́£¿\r
+\r
+ ̧ÃÄ¿Â1⁄4ϱ£ ́æÁË2éÑ ̄Ö ́ÐÐÆ÷Éú3ÉμÄÁÙʱÎÄ1⁄4þ¡£ÀýÈ磬Èç1ûÐèÒaÎa×ばつã ORDER BY Ìõ\r
×ばつöÅÅÐò£¬2¢ÇÒÅÅÐòÐèÒa±ÈoóÌ ̈μÄ -S 2ÎÊý ̧ø3öμÄ ̧ü¶àμÄ¿Õ1⁄4䣬ÄÇà ́3⁄4Í»á ́ ́1⁄2 ̈Ò» ̧ö\r
+ÁÙʱÎÄ1⁄4þ±£ ́æ¶à3öÀ ́μÄÊý3⁄4Ý¡£\r
+\r
+ÁÙʱÎÄ1⁄4þÓ¦ ×ばつÔ¶ ̄É3⁄43ý£¬2»1ýÈç1ûÔÚÅÅÐò1ý3ÌÖÐoóÌ ̈±ÀÀ£ÁË3⁄4Í¿ÉÄÜÁôÏÂÀ ́¡£Í£Ö12¢\r
+ÖØÆð postmaster 1⁄2«»áÉ3⁄43ýÕâЩÎÄ1⁄4þ¡£\r
+\r
+\r
+ 3.10) ÎaÊ2à ́ÒaÔÚÉý1⁄4¶ PostgreSQL ×ばつö dump oÍ restore £¿\r
+\r
+PostgreSQL ¿a×ばつé¶Ôÿ ×ばつöÁË1⁄2ÏÉÙμÄÐÞ ̧Ä,Òò ́Ë ́Ó 7.2 Éý1⁄4¶μ1⁄2 7.2.1\r
+2»ÐèÒa dump oÍ restore¡£μ«ÊÇÖ÷ÒaμÄÉý1⁄4¶£ ̈ÀýÈç ́Ó 7.2 μ1⁄2 7.3£©Í ̈3£»áÐÞ ̧ÄÏμ\r
+Í3±íoÍÊý3⁄4ݱíμÄÄÚ2¿ ̧ñÊ1⁄2¡£ÕâЩ±ä» ̄Ò»°ã±È1⁄2Ï ̧ ́ÔÓ£¬Òò ́ËÎÒÃÇ2»Î¬Êý3⁄4ÝÎÄ1⁄4þμÄÏòoó\r
+1⁄4æÈÝ¡£dump 1⁄2«Êý3⁄4ݰ ́ÕÕÍ ̈ÓÃμÄ ̧ñÊ1⁄2Êä3ö£¬Ëæoó¿ÉÒÔ±»ÖØÐÂ1⁄4ÓÔØ2¢Ê1ÓÃÐÂμÄÄÚ2¿ ̧ñÊ1⁄2¡£\r
+\r
+ ́ÅÅÌÎÄ1⁄4þ ̧ñÊ1⁄2ûÓÐ±ä» ̄μÄÉý1⁄4¶£¬¿ÉÒÔÓà /pg_upgrade/ 1⁄2ű3⁄4£¬¶ø2»ÐèÒa×ばつö dump oÍ\r
+restor¡£·21ドル⁄4ËμÃ÷script »áÖ ̧Ã÷ /pg_upgrade/ ¶Ô ̧à ́ÎÉý1⁄4¶ÊÇ·ñ¿ÉÓá£\r
+\r
+------------------------------------------------------------------------\r
+\r
+\r
+ ×ばつ÷ÎÊÌâ\r
+\r
+\r
+ 4.1) ¶þ1⁄2øÖÆÓαêoÍÆÕÍ ̈ÓαêÖ®1⁄4äμÄÇø±ðÊÇÊ2à ́£¿\r
+\r
+2ÎÔÄ DECLARE ÊÖ2áÒ3»ñÈ¡ÐÅÏ¢¡£\r
+\r
+\r
+ 4.2)ÈçoÎÖ» SELECT Ò» ̧ö2éÑ ̄1⁄2á1ûμÄÍ·1⁄4 ̧ÐУ¿\r
+\r
+2ÎÔÄ FETCH ÊÖ2áÒ3£¬»òÕßÊ1Óà SELECT ... LIMIT....\r
+\r
+1⁄4 ́Ê1ÄãÖ»ÐèÒa¿aÍ·μÄ1⁄4 ̧ÐУ¬Ò2»áÉæ1⁄4°μ1⁄2Õû ̧ö2éÑ ×ばつÅÊ1Óà ́øÓÐ ORDER BY μÄ2é\r
+Ñ ̄¡£Èç1ûÓÐÒ» ̧öË÷ÒýÓë ORDER BY Æ\Å䣬PostgreSQL ¿ÉÄÜ3⁄4ÍÖ» ́¦ÀíÒaÇóμÄÍ·1⁄4 ̧Ìõ\r
+1⁄4ÇÂ1⁄4£¬·ñÔò1⁄2«¶ÔÕû ̧ö2éÑ ̄1⁄2øÐÐ ́¦ÀíÖ±μ1⁄2Éú3ÉÐèÒaμÄÐС£\r
+\r
+\r
+ 4.3) ÎÒÈçoλñȡһ ̧ö±íμÄÁÐ±í£¬»òÕßÊÇÆäËûÎÒÄÜÔÚ /psql/ Àï¿ ́μ1⁄2μĶ«Î÷£¿\r
+\r
+Äã¿ÉÒÔÔĶÁ /psql/ μÄÔ ́ ́úÂëÎÄ1⁄4þ/pgsql/src/bin/psql/describe.c/ ¡£Ëü°üÀ ̈Îa\r
+Éú3É psql μÄ· ́б ̧ÜÃüÁîμÄÊä3öμÄ SQL ÃüÁî¡£Äã»1¿ÉÒÔ ́ø /-E/ Ñ¡ÏîÆô¶ ̄\r
+/psql/£¬ÕâÑùËü1⁄2« ́òÓ¡3öÖ ́ÐÐÄã ̧ø3öμÄÃüÁîËùÓÃμÄ2éÑ ̄¡£\r
+\r
+\r
+ 4.4) ÔõÑù ́Ó±íÀïÃæÉ3⁄43ýÒ»ÁУ¿\r
+\r
+7.3 ÀïÔö1⁄4ÓÁË ALTER TABLE DROP COLUMN£¬ÒÔÖ§3Ö ́ËÏî1¦ÄÜ¡£ÔÚÒÔǰμİæ±3⁄4ÖУ¬¿É\r
×ばつö£o\r
+\r
+ BEGIN;\r
+ LOCK TABLE old_table;\r
+ SELECT ... -- select all columns but the one you want to remove\r
+ INTO TABLE new_table\r
+ FROM old_table;\r
+ DROP TABLE old_table;\r
+ ALTER TABLE new_table RENAME TO old_table;\r
+ COMMIT;\r
+\r
+\r
+ 4.5) Ò»ÐУ¬Ò» ̧ö±í£¬Ò» ×ばつî ́ó3ß ́çÊǶàÉÙ£¿\r
+\r
+ÏÂÃæÊÇһЩÏÞÖÆ£o\r
+\r
+ Ò» ×ばつî ́ó3ß ́磿 ÎÞÏÞÖÆ£ ̈ ́æÔÚ 1TB μÄÊý3⁄4ݿ⣩\r
+ Ò» ×ばつî ́ó3ß ́磿 16TB\r
+ ×ばつî ́ó3ß ́磿 1.6TB\r
+ Ò» ×ばつî ́ó3ß ́ç? 1GB\r
+ Ò» ×ばつî ́óÐÐÊý£¿ ÎÞÏÞÖÆ\r
+ Ò» ×ばつî ́óÁÐÊý£¿ ̧úÁÐÀàÐÍÓÐ1Ø,250-1600\r
+ Ò» ×ばつî ́óË÷ÒýÊýÁ¿£¿ÎÞÏÞÖÆ\r
+\r
+μ±È»£¬Êμ1⁄4ÊÉÏûÓÐÕæÕýμÄÎÞÏÞÖÆ£¬»1ÊÇÒaÊÜ¿ÉÓà ́ÅÅÌ¿Õ1⁄4ä¡¢¿ÉÓÃÄÚ ́æ/1⁄2»»»ÇøμÄÖÆÔ1⁄4¡£\r
+\r
×ばつî ́ó3ß ́ç 16 TB 2»ÐèÒa×ばつ÷ÏμÍ3¶Ô ́óÎÄ1⁄4þμÄÖ§3Ö¡£ ́ó±íÓöà ̧ö 1 GB μÄÎÄ1⁄4þ\r
+ ́æ ́¢£¬Òò ́ËÎÄ1⁄4þÏμÍ33ß ́çμÄÏÞÖÆÊÇ2»ÖØÒaμÄ¡£\r
+\r
+Èç1ûȱʡμÄ¿é ́óСÔö3¤μ1⁄2 32K ×ばつî ́óμıí3ß ×ばつî ́óÁÐÊý¿ÉÒÔÔö1⁄4Ó¡£\r
+\r
+\r
+ 4.6) ́æ ́¢Ò» ̧öμäÐÍμÄÆ1⁄2ÃæÎÄ1⁄4þÀïμÄÊý3⁄4ÝÐèÒa¶àÉÙ ́ÅÅÌ¿Õ1⁄4䣿\r
+\r
+Ò» ̧ö Postgres ×ばつî¶à¿ÉÄÜÐèÒaÏàμ±ÓÚÔÚÒ» ̧öÆ1⁄2ÃæÎÄ1⁄4þÀï ́æ ́¢ÏàͬÊý3⁄4ÝμÄ5±¶\r
+μÄ ́ÅÅÌ¿Õ1⁄4ä¡£\r
+\r
+ÀýÈ磬1⁄4ÙÉèÓÐÒ» ̧ö 100,000 ÐÐμÄÎÄ1⁄4þ£¬Ã¿ÐÐÓÐÒ» ̧öÕûÊýoÍÒ» ̧öÎı3⁄4ÃèÊö¡1ドル⁄4ÙÉèÎÄ\r
+±3⁄4 ×ばつÖ1⁄2Ú¡£Æ1⁄2ÃæÎÄ1⁄4þÕ1⁄4Óà 2.8 MB¡£ ́æ·ÅÕâЩÊý3⁄4ÝμÄ PostgreSQL\r
+Êý3⁄4Ý¿âÎÄ1⁄4þ ́óÔ1⁄4ÊÇ 6.4 MB:\r
+\r
+ 36 ×ばつÖ1⁄2Ú: ÿÐÐμÄÍ·£ ̈1À1⁄4ÆÖ죩\r
+ 24 ×ばつÖ1⁄2Ú: Ò» ̧öin×ばつÖ¶ÎoÍÒ» ×ばつÖ¶Î\r
+ + 4 ×ばつÖ1⁄2Ú: Ò3ÃæÄÚÖ ̧ÏòÔa×ばつéμÄÖ ̧Õë\r
+ ----------------------------------------\r
+ 64 ×ばつÖ1⁄2ÚÿÐÐ\r
+\r
+ PostgreSQL Êý3⁄4ÝÒ3μÄ ́óСÊÇ 8192 ×ばつÖ1⁄2Ú (8 KB)£¬Ôò£o\r
+\r
+ 8192 ×ばつÖ1⁄2ÚÿÒ3\r
+ ------------------- = 128 ÐÐ/Êý3⁄4ÝÒ3£ ̈ÏòÏÂÈ¡Õû£©\r
+ 64 ×ばつÖ1⁄2ÚÿÐÐ\r
+\r
+ 100000 Êý3⁄4ÝÐÐ\r
+ -------------------- = 782 Êý3⁄4ÝÒ3£ ̈ÏòÉÏÈ¡Õû£©\r
+ 128 ÐÐÿÒ3\r
+\r
+ 782 Êý3⁄4ÝÒ3 * 8192 ×ばつÖ1⁄2Ú/Ò3 = 6,406,144 ×ばつÖ1⁄2Ú£ ̈6.4 MB£©\r
+\r
+Ë÷Òý2»ÐèÒaÕâà ́¶àμĶîÍâÏûoÄ£¬μ«Ò2È·Êμ°üÀ ̈±»Ë÷ÒýμÄÊý3⁄4Ý£¬Òò ́ËËüÃÇÒ2¿ÉÄÜoÜ ́ó¡£\r
+\r
+¿ÕÖμ ́æ·ÅÔÚλÍ1⁄4ÖУ¬Òò ́ËÕ1⁄4ÓÃoÜÉÙμÄ¿Õ1⁄4ä¡£\r
+\r
+\r
+ 4.7) ÈçoÎ2é¿ ́±í¡¢Ë÷Òý¡¢Êý3⁄4Ý¿âÒÔ1⁄4°Óû§μĶ ̈Ò壿\r
+\r
+/ psql/ ÓÐÐí¶à· ́б ̧ÜÃüÁîÓÃÓÚÏÔÊ3⁄4ÕâЩÐÅÏ¢¡£Óà \? ¿ ́¿ ́¶1⁄4ÓÐÄÄЩ¡£ÒÔ pg_ ́ò\r
+Í·μÄÏμÍ3±íÒ2ÃèÊöÁËÕâЩÐÅÏ¢¡£ psql -l ¿ÉÒÔÁÐ3öËùÓÐμÄÊý3⁄4ݿ⡣\r
+\r
+Ò2¿ÉÒÔÊÔÊÔÎÄ1⁄4þ /pgsql/src/tutorial/syscat.source/¡£ËüÑÝÊ3⁄4ÁËÐí¶à ́ÓÊý3⁄4Ý¿â\r
+ÏμÍ3±íÀï»ñÈ¡ÐÅÏ¢ÐèÒaμÄ SELECT¡£\r
+\r
+\r
+ 4.8) ÎÒμÄ2éÑ ̄oÜÂý»òÕßûÓÐÀûÓÃË÷Òý¡£ÎaÊ2à ́£¿\r
+\r
+2¢·Çÿ ̧ö2éÑ ×ばつÔ¶ ̄Ê1ÓÃË÷Òý¡£Ö»ÓÐÔÚ±íμÄ ́óС3¬1ýÒ» ×ばつîСÖ죬2¢ÇÒ2éÑ ֻ̄ѡ\r
+Ôñ±íÖÐ1⁄2ÏС±ÈÀýμÄÐÐʱ2ÉÓÃÊ1ÓÃË÷Òý¡£ÕâÊÇÒòÎaË÷ÒýÉ ̈ÃèÒýÆðμÄËæ1⁄4 ́ ́ÅÅÌ ́æÈ¡¿ÉÄÜ\r
+±ÈÖ±1⁄2ÓμØ¶ÁÈ¡±í£ ̈Ë3ÐòÉ ̈Ã裩 ̧üÂý¡£ÎaÁËÅжÏÊÇ·ñÊ1ÓÃË÷Òý£¬PostgreSQL ±ØÐë»ñ\r
+μÃÓÐ1رíμÄÍ31⁄4ÆÖμ¡£ÕâЩÍ31⁄4ÆÖμ¿ÉÒÔÊ1Óà VACUUM ANALYZE£¬»ò ANALYZE »ñμá£Ê1\r
+ÓÃÍ31⁄4ÆÖ죬ÓÅ» ̄Æ÷ÖaμÀ±íÖÐÓжàÉÙÐУ¬3⁄4ÍÄÜ1» ̧üoÃμØÅжÏÊÇ·ñÀûÓÃË÷Òý¡£Í31⁄4ÆÖμ¶Ô\r
+È·¶ ̈ÓÅ» ̄μÄÁ¬1⁄2ÓË3ÐòoÍÁ¬1⁄2Ó·1⁄2· ̈Ò2oÜÓÐÓá£ÔÚ±íμÄÄÚÈÝ·¢Éú±ä» ̄ʱ£¬Ó¦¶ ̈ÆÚ1⁄2øÐÐÍ3\r
+1⁄4ÆÖμμÄ»ñÈ¡¡£\r
+\r
+Ë÷ÒýÍ ̈32ドル»ÓÃÓÚ ORDER BY »òÖ ́ÐÐÁ¬1⁄2Ó¡£¶ÔÒ» ̧ö ́ó±íμÄÒ» ́ÎË3ÐòÉ ×ばつöÒ» ̧öÏÔ\r
+Ê1⁄2μÄÅÅÐòÍ ̈3£±ÈË÷ÒýÉ ̈ÃèÒa¿ì¡£\r
+\r
+μ«ÊÇ£¬ÔÚ LIMIT oÍ ORDER BY 1⁄2áoÏÊ1ÓÃʱ3⁄43£»áÊ1ÓÃË÷Òý£¬ÒòÎaÖ»»á·μ»Ø±íμÄÒ»\r
+С2¿·Ö¡£Êμ1⁄4ÊÉÏ£¬ËäÈ» MAX() oÍ MIN() 22ドル»Ê1ÓÃË÷Òý£¬Í ̈1ý¶Ô ORDER BY oÍ\r
+LLIMIT ×ばつî ×ばつîСÖμÒ2ÊÇ¿ÉÒÔμÄ£o\r
+\r
+ SELECT col\r
+ FROM tab\r
+ ORDER BY col [ DESC ]\r
+ LIMIT 1;\r
+\r
+μ±Ê1ÓÃÍ ×ばつ÷£¬ÀýÈç LIKE »ò ~ ʱ£¬Ë÷ÒýÖ»ÄÜÔÚÌØ¶ ̈μÄÇé¿öÏÂÊ1Óão \r
+\r
+ * ×ばつÖ·û ́®μÄ¿aÊ1⁄42¿·Ö±ØÐëÊÇÆÕÍ ×ばつÖ·û ́®£¬Ò23⁄4ÍÊÇËμ£o\r
+ o LIKE Ä£Ê1⁄22»ÄÜÒÔ % ́òÍ·¡£\r
+ o ~ £ ̈ÕýÔò±í ́ïÊ1⁄2£©Ä£Ê1⁄2±ØÐëÒÔ ^ ́òÍ·¡£\r
+ * ×ばつÖ·û ́®2»ÄÜÒÔÆ\Åä¶à ×ばつÖ·ûμÄÄ£Ê1⁄2Àà ́òÍ·£¬ÀýÈç [a-e]¡£\r
+ * ́óСР́ÎÞ1ØμÄ2éÕÒ£¬Èç ILIKE oÍ ~* μÈ2»Ê1ÓÃË÷Òý¡£μ«¿ÉÒÔÓà 4.12 1⁄2ÚÃè\r
+ ÊöμÄo ̄ÊýË÷Òý¡£\r
+ * ×ばつö initdb ʱ±ØÐë2ÉÓÃȱʡμı3⁄4μØÉèÖà C locale¡£\r
+\r
+\r
+ 4.9) ÎÒÈçoÎ2ÅÄÜ¿ ́μ1⁄22éÑ ̄ÓÅ» ̄Æ÷ÊÇÔõÑù ́¦ÀíÎÒμÄ2éÑ ̄μÄ£¿\r
+\r
+2ο1⁄4 EXPLAIN ÊÖ2áÒ3¡£\r
+\r
+\r
+ 4.10) R-tree Ë÷ÒýÊÇÊ2à ́£¿\r
+\r
+R-tree Ë÷ÒýÓÃÓÚË÷Òý¿Õ1⁄4äÊý3⁄4Ý¡£Ò» ̧ö1þÏ£Ë÷ÒýÎÞ· ̈ ́¦Àí·¶Î§ËÑË÷¡£¶ø B-tree Ë÷\r
+ÒýÖ»ÄÜ ́¦ÀíһάμÄ·¶Î§ËÑË÷¡£R-tree Ë÷Òý¿ÉÒÔ ́¦Àí¶àάÊý3⁄4Ý¡£ÀýÈ磬Èç1û¿ÉÒÔÔÚ\r
+Ò» ̧öÀàÐÍÎa point ×ばつÖ¶ÎÉÏ1⁄2 ̈Á¢Ò» ̧ö R-tree Ë÷Òý£¬ÄÇà ́ÏμÍ3ÄÜ ̧ü ̧ßÐ§μØ»Ø ́ðÀà\r
+ËÆ ¡°Ñ¡ÔñÔÚÒ» ̧ö3¤·1⁄2Ðη¶Î§ÄÚμÄËùÓÐμ㡱¡£\r
+\r
×ばつî3õμÄ R-Tree Éè1⁄4ÆμÄÕýÊ1⁄2ÂÛÎÄÊÇ£o\r
+\r
+Guttman, A. "R-Trees: A Dynamic Index Structure for Spatial Searching."\r
+Proc of the 1984 ACM SIGMOD Int'l Conf on Mgmt of Data, 45-57.\r
+\r
+Äã»1¿ÉÒÔÔÚ Stonebraker μÄ¡°Readings in Database Systems¡±ÀïÕÒμ1⁄2ÕâÆaÎÄÕ¡£\r
+\r
+ÏμÍ3ÄÚÖÃμÄ R-Tree ¿ÉÒÔ ́¦Àí¶à±ßÐÎoÍ·1⁄2ÐΡ£ÀíÂÛÉÏË죬R-tree ¿ÉÒÔÀ©Õ1Îa ́¦Àí\r
+ ̧ü¶àάÊý¡2ドル»1ýÔÚÊμ1⁄4ùÉÏ£¬À©Õ1 R-trees ÐèÒaÒ»¶ ×ばつ÷Á¿£¬¶øÎÒÃÇĿǰûÓÐÈç\r
×ばつöμÄÎÄμμ¡£\r
+\r
+\r
+ 4.11) Ê2à ́ÊÇ»ùÒò2éÑ ̄ÓÅ» ̄£ ̈Genetic Query Optimization£©£¿\r
+\r
+GEQO Ä£¿é2ÉÓûùÒòËã· ̈£ ̈Genetic Algorithm£¬GA£©1⁄4Ó¿ì¶à±íÁ¬1⁄2ÓμÄ2éÑ ̄ÓÅ» ̄¡£Ëü\r
+ÔÊÐíÍ ̈1ý·ÇÇî3⁄4ÙËÑË÷ ́¦Àí ́óμÄÁ¬1⁄2Ó2éÑ ̄¡£\r
+\r
+\r
+ 4.12) ×ばつöÕýÔò±í ́ïÊ1⁄2ËÑË÷oÍ ́óСР́ÎÞ1ØμÄÕýÔò±í ́ïÊ1⁄2ËÑË÷£¿ÔõÑùÀû\r
+ ÓÃË÷Òý1⁄2øÐÐ ́óСР́ÎÞ1ØËÑË÷£¿\r
+\r
×ばつ÷·û ~ ́¦ÀíÕýÔò±í ́ïÊ1⁄2Æ\Å䣬¶ø ~* ́¦Àí ́óСР́ÎÞ1ØμÄÕýÔò±í ́ïÊ1⁄2Æ\Åä¡£ ́óÐ ́\r
+ЩÎÞ1ØμÄ LIKE ±äÖÖ3ÉÎa ILIKE¡£\r
+\r
+ ́óСР́ÎÞ1ØμÄμÈÊ1⁄2±È1⁄2ÏÍ ̈3£Ð ×ばつö£o\r
+\r
+ SELECT *\r
+ FROM tab\r
+ WHERE lower(col) = 'abc';\r
+\r
×ばつ1⁄4μÄË÷Òý¡£μ«ÊÇ¿ÉÒÔ ́ ́1⁄2 ̈Ò» ̧ö¿É±»ÀûÓÃμÄo ̄ÊýË÷Òý:\r
+\r
+ CREATE INDEX tabindex ON tab (lower(col));\r
+\r
+\r
+ 4.13) ÔÚÒ» ̧ö2éÑ ̄ÀÎÒÔõÑù1⁄4ì2âÒ» ×ばつÖ¶ÎÊÇ·ñÎa NULL£¿\r
+\r
+Óà IS NULL oÍ IS NOT NULL 2âÊÔÕâ ×ばつֶΡ£ \r
+\r
+\r
+ 4.14) ×ばつÖ·ûÀàÐÍÖ®1⁄4äÓÐÊ2à ́2»Í¬£¿\r
+\r
+ ÀàÐÍ ÄÚ2¿Ãû3Æ ËμÃ÷\r
+ --------------------------------------------------\r
+ "char" char 1 ×ばつÖ·û character\r
+ CHAR(#) bpchar ¶ ×ばつÖ·û ×ばつã¶ ̈Òå3¤¶Èʱ£¬ÒÔ¿Õ ̧ñ21Æë\r
+ VARCHAR(#) varchar Ö ̧¶ ×ばつî ×ばつÖ·û ×ばつã¶ ̈Òå3¤¶ÈμÄ2¿·Ö\r
+2»21Æë\r
+ TEXT text ×ばつî ́ó3¤¶ÈÏÞÖÆ\r
+ BYTEA bytea ×ばつÖ1⁄2ÚÐòÁУ ̈±ä3¤μĶþ1⁄2øÖÆÊý3⁄4Ý£©\r
+\r
+ÔÚÏμÍ3±íoÍÔÚһЩ ́íÎóÐÅÏ¢ÀïÄã1⁄2«¿ ́μ1⁄2ÄÚ2¿Ãû3Æ¡£ \r
+\r
×ばつîoóËÄÖÖÀàÐÍÊÇ"varlena"£ ̈±ä3¤£©ÀàÐÍ£ ̈Ò23⁄4ÍÊÇË죬¿aÍ·μÄËÄ ×ばつÖ1⁄2ÚÊÇ3¤\r
+¶È£¬oóÃæ2ÅÊÇÊý3⁄4Ý£©¡£ÓÚÊÇÊμ1⁄4ÊÕ1⁄4ÓÃμÄ¿Õ1⁄4ä±ÈÉùÃ÷μÄ ́óСÒa¶àһЩ¡£È»¶øÕâЩÀàÐÍ\r
+¶1⁄4¿ÉÒÔ±»Ñ1Ëõ ́æ ́¢£¬Ò2¿ÉÒÔÓà TOAST ÍÑ»ú ́æ ́¢£¬Òò ́Ë ́ÅÅÌ¿Õ1⁄4äÒ2¿ÉÄܱÈÔ¤ÏëμÄÒaÉÙ¡£\r
+\r
+CHAR(n) ×ばつîÊÊoÏÓÚ ́æ ×ばつÖ·û ́®¡£VARCHAR(n) ÔÚ ́æ ×ばつî ́ó\r
×ばつÖ·û ×ばつîoÃμÄ¡£TEXT ÊÊÓÃÓÚ ́æ ×ばつÖ·û ×ばつî ́ó¿É ́ï\r
+1G¡£BYTEA ÓÃÓÚ ́æ ́¢¶þ1⁄2øÖÆÊý3⁄4Ý£¬ÓÈÆäÊǰüo¬ NULL ×ばつÖ1⁄2Ú£ ̈¶þ1⁄2øÖÆμÄ0£©μÄÖμ¡£Õâ\r
+ЩÀàÐÍ3⁄4ßÓÐÀàÐÍμÄÐÔÄÜ¡£\r
+\r
+\r
+ 4.15.1) ÎÒÔõÑù ́ ́1⁄2 ̈Ò» ×ばつÔ¶ ×ばつֶΣ¿\r
+\r
+PostgreSQL Ö§3Ö SERIAL ×ばつÔ¶ ̄ ́ ́1⁄2 ̈Ò» ̧öÐòÁÐoÍË÷Òý¡£ÀýÈ磬\r
+ CREATE TABLE person ( \r
+ id SERIAL, \r
+ name TEXT \r
+ );\r
+\r
×ばつÔ¶ ×ばつa»»Îa£o \r
+ \r
+ CREATE SEQUENCE person_id_seq;\r
+ CREATE TABLE person ( \r
+ id INT4 NOT NULL DEFAULT nextval('person_id_seq'),\r
+ name TEXT \r
+ );\r
+ CREATE UNIQUE INDEX person_id_key ON person ( id );\r
+\r
+2ο1⁄4 create_sequence ÊÖ2áÒ3»ñÈ¡1ØÓÚÐòÁÐμÄ ̧ü¶àÐÅÏ¢¡£Äã»1¿ÉÒÔÓÃÿÐÐμÄ oid\r
×ばつ÷ÎaÒ» ̧öÎ ̈Ò»Öμ¡2ドル»1ý£¬Èç1ûÄãÐèÒaÇãμ1oÍÖØÔØÊý3⁄4ݿ⣬ÄãÐèÒaÊ1Óà pg_dump\r
+μÄ -o Ñ¡Ïî»òÕß COPY WITH OIDS Ñ¡ÏîÒÔ±£Áô OID¡£ \r
+\r
+\r
+ 4.15.2) ÎÒÈçoλñμÃÒ» ̧ö2åÈëμÄÐòÁÐoÅμÄÖμ£¿\r
+\r
+Ò»ÖÖ·1⁄2· ̈ÊÇÔÚ2åÈë֮ǰÏÈÓÃo ̄Êý nextval() ́ÓÐòÁжÔÏóÀï1⁄4ìË÷3öÏÂÒ» ̧ö SERIAL\r
+Öμ£¬È»oóÔÙÏÔÊ1⁄22åÈë¡£Ê1Óà 4.15.1 <#4.15.1> ÀïμÄÀý±í£¬¿ÉÓÃαÂëÕâÑùÃèÊö£o \r
+\r
+ new_id = execute("SELECT nextval('person_id_seq')");\r
+ execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise\r
+Pascal')");\r
+\r
+ÕâÑù»1ÄÜÔÚÆäËû2éÑ ̄ÖÐÊ1Óà ́æ·ÅÔÚ new_id ÀïμÄÐÂÖμ£ ×ばつ÷Îa person ±íμÄÍâ\r
×ばつÔ¶ ̄ ́ ́1⁄2 ̈μÄ SEQUENCE ¶ÔÏóμÄÃû3Æ1⁄2«»áÊÇ\r
+<table>_<serialcolumn>_seq£¬ÕâÀï table oÍ serialcolumn ·Ö±ðÊÇÄãμıíμÄÃû\r
+3ÆoÍÄãμÄ SERIAL ×ばつÖ¶ÎμÄÃû3Æ¡£ \r
+\r
+ÀàËÆμÄ£¬ÔÚ SERIAL ¶ÔÏóȱʡ2åÈëoóÄã¿ÉÒÔÓÃo ̄Êý currval() 1⁄4ìË÷ ̧Õ ̧3ÖμμÄ\r
+SERIAL Ö죬ÀýÈ磬 \r
+\r
+ execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");\r
+ new_id = execute("SELECT currval('person_id_seq')");\r
+\r
×ばつîoó£¬Äã¿ÉÒÔÊ1Óà ́Ó INSERT Óï3⁄4ä·μ»ØμÄ OID <4.16> 2éÕÒȱʡÖ죬3⁄4¡1ÜÕâ¿ÉÄÜÊÇ\r
×ばつîȱ·¦ÒÆÖ2ÐÔμÄ·1⁄2· ̈¡£ÔÚ Perl ÀÊ1Óà ́øÓÐ Edmund Mergl μÄ DBD::Pg Ä£¿éμÄ\r
+DBI£¬oid Öμ¿ÉÒÔÍ ̈1ý $sth->execute() oóμÄ $sth->{pg_oid_status} »ñμᣠ\r
+\r
+\r
+ 4.15.3) Ê1Óà currval() oÍ nextval() »áμ1⁄4ÖÂÒ» ̧öÓëÆäËûÓû§Ö®1⁄4äμÄÎÉ\r
+ ÂÒÇé¿öÂð£¿\r
+\r
+2»»á¡£currval() ·μ»ØoóÌ ̈1⁄2ø3̶ø2»ÊÇËùÓÐÓû§ ̧3ÓèμÄμ±Ç°Öμ¡£\r
+\r
+\r
+ 4.15.4) ÎaÊ2à ́2»ÔÚÊÂÎñÒì3£ÖÐÖ1oóÖØÓÃÐòÁÐoÅÄØ£¿ÎaÊ2à ×ばつÖ¶Î\r
+ μÄÈ¡ÖμÖÐ ́æÔÚ1⁄4ä¶ÏÄØ£¿\r
+\r
+ÎaÁËÌá ̧ß2¢·¢ÐÔ£¬ÐòÁÐoÅÔÚÐèÒaμÄʱoò ̧3ÓèÕýÔÚÔËÐÐμÄÊÂÎñ£¬2¢ÇÒÖ»ÔÚÊÂÎñ1⁄2áÊøÖ®\r
+ǰ2»·âËø¡£Õâ3⁄4Í»áμ1⁄4ÖÂØ2ÕÛÊÂÎñoóμÄÐòÁÐoÅ3öÏÖ1⁄4ä ̧ô¡£\r
+\r
+\r
+\r
+ 4.16) Ê2à ́ÊÇ OID£¿Ê2à ́ÊÇ TID£¿\r
+\r
+OID ÊÇ PostgreSQL ÖÐÐÐμÄÎ ̈Ò»±êʶ¡£PostgreSQL Àï ́ ́1⁄2 ̈μÄÿһÐж1⁄4»ñμÃÒ» ̧öÎ ̈\r
+Ò»μÄ OID¡£ËùÓÐÔÚ initdb 1ý3ÌÖÐ ́ ́1⁄2 ̈μÄ OID ¶1⁄4СÓÚ 16384 £ ̈2Î1⁄4û\r
+include/access/transam.h£©¡£ËùÓÐÓû§ ́ ́1⁄2 ̈μÄ OID ¶1⁄4 ́óÓÚ»òμÈÓÚÕâ ̧öÖμ¡£È±Ê¡\r
+ʱ£¬ËùÓÐÕâЩ OID 2»1⁄2öÔÚÒ» ̧ö±í»òÒ» ̧öÊý3⁄4Ý¿âÀïÃæÎ ̈Ò»£¬¶øÇÒÔÚÕû ̧ö PostgreSQL\r
×ばつ°ÀïÒ2ÊÇÎ ̈Ò»μÄ¡£ \r
+\r
+PostgreSQL ÔÚËüμÄÄÚ2¿ÏμÍ3±íÀïÊ1Óà OID ÔÚ±íÖ®1⁄4ä1⁄2 ̈Á¢ÁaÏμ¡£ÕâЩ OID ¿ÉÒÔÓÃ\r
+ÓÚ±êÊ¶ÌØ¶ ̈μÄÓû§ÐÐÒÔ1⁄4°ÓÃÔÚÁ¬1⁄2ÓÀï¡1ドル⁄2 ×ばつÖ¶ÎÀàÐÍ OID ́æ ́¢ OID Öμ¡£¿ÉÒÔ\r
+ÔÚ OID ×ばつÖ¶ÎÉÏ ́ ́1⁄2 ̈Ò» ̧öË÷ÒýÒÔ¿ìËÙ·ÃÎÊ¡£ \r
+\r
+OID ́ÓÒ» ̧ö±»ËùÓÐÊý3⁄4Ý¿âÊ1ÓÃμÄÖÐÐÄÇøÓòÀï ̧3Öμ ̧øËùÓÐÐÂÐС£Èç1ûÄãÏë°Ñ OID ̧Ä\r
×ばつöÒ»·Ý±íμÄ ́øÔÊ1⁄4 OID μÄ¿1⁄2± ×ばつöμ1⁄2£o \r
+\r
+ CREATE TABLE new(old_oid oid, mycol int);\r
+ SELECT old_oid, mycol INTO new FROM old;\r
+ COPY new TO '/tmp/pgtable';\r
+ DELETE FROM new;\r
+ COPY new WITH OIDS FROM '/tmp/pgtable';\r
+\r
+OID ×ばつÖ1⁄2ÚμÄÕûÊý±£ ́棬ÔÚ3¬1ý40ÒÚʱ1⁄2«Òç3ö¡£Ã»ÓÐÈ˱ ̈ ̧æ3öÏÖ1ýÒç3ö£¬¶øÎÒÃÇ\r
+ ́òËãÔÚÓÐÈ˱ ̈ ̧æÖ®Ç°Ïû3ýÕâ ̧öÏÞÖÆ¡£\r
+\r
+TID ÓÃÓÚ±êʶ ×ばつÅÊý3⁄4Ý¿é£ ̈μØÖ·£©oÍ£ ̈¿éÄÚ£©Æ«ÒÆμÄÌØ¶ ̈μÄÎïÀíÐС£TID ÔÚÐб» ̧ü\r
+ ̧Ä»òÖØÔØoó·¢Éú ̧ı䡣Ë÷ÒýÈë¿ÚÊ1ÓÃËüÃÇÖ ̧ÏòÎïÀíÐС£\r
+\r
+\r
+ 4.17) PostgreSQL Ê1ÓÃμÄһЩÊõÓïμÄo¬ÒåÊÇÊ2à ́£¿\r
+\r
+Ò»Ð©Ô ́ ́úÂëoÍһЩ3⁄4ÉÒ»μãμÄÎÄμμÊ1ÓÃһЩÓÐ ̧ü3£ÓÃÓ÷ ̈μÄÊõÓï¡£ÏÂÃæÊÇÆäÖÐÒ»2¿·Ö£o \r
+ table, relation, class \r
+ row, record, tuple \r
+ column, field, attribute \r
+ retrieve, select \r
+ replace, update \r
+ append, insert \r
+ OID, serial value \r
+ portal, cursor \r
+ range variable, table name, table alias \r
+\r
+ÓÐÒ» ̧öÍ ̈ÓÃÊý3⁄4Ý¿âÊõÓïμÄÁбí£ohttp://hea-\r
+www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html\r
+¡£ \r
+\r
+\r
+ 4.18) ÎaÊ2à ́ÎÒÊÕμ1⁄2 ́íÎó¡°/ERROR: Memory exhausted in\r
+ AllocSetAlloc()/¡±£¿\r
+\r
+ÕâoÜ¿ÉÄÜÊÇÏμÍ3μÄÐéÄâÄÚ ×ばつÊÔ ́ÓÐ1⁄2ÏμÍμÄÏÞÖÆÖμ¡£ÔÚÆô¶ ̄\r
+postmaster ֮ǰÊÔÊÔÏÂÃæμÄÃüÁî£o \r
+\r
+ ulimit -d 262144\r
+ limit datasize 256m\r
+\r
+È¡3⁄4öÓÚÄãÓÃμÄ shell£¬ÉÏÃæÃüÁîÖ»ÓÐÒ»ÌõÄÜ3É1¦£¬μ«ÊÇËü1⁄2«°ÑÄãμÄ1⁄2ø3ÌÊý3⁄4ݶÎÏÞÖÆ\r
+ÉèμñÈ1⁄2Ï ̧ߣ¬Òò¶øÒ2ÐíÄÜÈÃ2éÑ ̄Íê3É¡£ÕâÌõÃüÁîÓ¦ÓÃÓÚμ±Ç°1⁄2ø3Ì£¬ÒÔ1⁄4°ËùÓÐÔÚÕâÌõ\r
+ÃüÁîÔËÐÐoó ́ ́1⁄2 ×ばつÓ1⁄2ø3Ì¡£Èç1ûÄãÊÇÔÚÔËÐÐSQL¿Í»§¶ËʱÒòÎaoóÌ ̈·μ»ØÁËÌ«¶àμÄÊý\r
+3⁄4ݶø3öÏÖÎÊÌ⣬ÇëÔÚÔËÐпͻ§¶ËÖ®Ç°Ö ́ÐÐÉÏÊöÃüÁî¡£\r
+\r
+\r
+ 4.19) ÎÒÈçoÎ2ÅÄÜÖaμÀËùÔËÐÐμÄ PostgreSQL μİæ±3⁄4£¿\r
+\r
+ ́Ó psql À1⁄4üÈë SELECT version()£»\r
+\r
+\r
+ 4.20) ÎaÊ2à ́ÎÒμÄ ×ばつ÷μ1⁄4Ö ́íÎó¡°/invalid large obj\r
+ descriptor¡±£ ̈·Ç· ̈μÄ ́ó¶ÔÏóÃèÊö·û£©/£¿\r
+\r
+ÄãÐèÒaÔÚÊ1ÓÃÈÎoÎ ́ó¶ÔÏó3⁄4ä±úμÄǰoó·ÅÉÏ BEGIN WORK oÍ COMMIT£¬Ò23⁄4ÍÊÇË죬°ü\r
+Χ lo_open ... lo_close¡£ \r
+\r
+Ŀǰ PostgreSQL Ç¿ÖÆÊμÊ©ÕâÌõ1æÔò£oÔÚÊÂÎñÌá1⁄2»Ê±1Ø±Õ ́ó¶ÔÏó3⁄4ä±ú£¬ÕâÑù£¬£ ̈û\r
×ばつ ́Î¶Ô ×ばつöÈÎoÎÊÂÇéμÄÆóÍ1⁄4¶1⁄4»áμ1⁄4ÖÂÒ» ̧ö invalid\r
+large obj descriptor¡£ËùÒÔ£¬Èç1ûÄãûÓÐÊ1ÓÃÒ» ×ばつ÷μÄ ́úÂë£ ̈ÖÁ\r
+ÉÙÊÇ ́ó¶àÊýʱ1⁄4䣩1⁄2«»áÉú3ÉÕâà ́Ò» ̧ö ́íÎóÐÅÏ¢¡£ \r
+\r
+Èç1ûÄãÊ1Óÿͻ§¶Ë1⁄2Ó¿Ú£¬Èç ODBC£¬Äã¿ÉÄÜÐèÒa set auto-commit off¡£\r
+\r
+\r
+ 4.21) ÎÒÈçoÎ ́ ́1⁄2 ̈Ò» ×ばつֶΣ¿\r
+\r
+Ê1ÓÃ CURRENT_TIMESTAMP£o\r
+\r
+ CREATE TABLE test(x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP);\r
+\r
+\r
+ 4.22) ÎaÊ2à ́Ê1Óà IN ×ばつÓ2éÑ ̄Õâà ́Âý£¿\r
+\r
+Ŀǰ£¬ÎÒÃÇÍ ̈1ýÎaÍâ2éÑ ̄μÄÿһÐÐË3ÐòÉ ×ばつÓ2éÑ ̄μÄ1⁄2á1ûÀ ×ばつÓ2éÑ ̄oÍÍâ2éÑ ̄¡£\r
×ばつÓ2éÑ ̄·μ»ØÉÙÊý1⁄4 ̧ÐУ¬¶øÍâ2éÑ ̄·μ»ØoܶàÐУ¬IN Ö ́ÐÐμÃoܿ졣ÎaÁË1⁄4Ó¿ìÆäËû\r
+IN 2éÑ ̄μÄÖ ́ÐУ¬¿ÉÒÔÓà EXISTS Ìæ»» IN£o \r
+\r
+ SELECT *\r
+ FROM tab\r
+ WHERE col IN (SELECT subcol FROM subtab);\r
+\r
+ ̧ÄÎa£o \r
+\r
+ SELECT *\r
+ FROM tab\r
+ WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);\r
+\r
+oóÕßÒaÏëÖ ́ÐÐμà ̧ü¿ì£¬subcol Ó¦ ̧ÃÊÇÒ» ̧öË÷ÒýÁС£ÎÒÃÇÏ£ÍûÔÚÎ ́À ́μÄ·21ドル⁄4°æ±3⁄4ÖÐ\r
+ÐÞ21Õâ ̧öÏÞÖÆ¡£\r
+\r
+\r
+ 4.23) ÎÒÔõÑù1⁄2øÐÐ outer join £ ̈ÍâÁ¬1⁄2Ó£©£¿\r
+\r
+PostgreSQL ×ばつ1⁄4μÄ SQL Óï· ̈Ö§3ÖÍâÁ¬1⁄2Ó¡£ÕâÀïÊÇÁ1⁄2 ×ばつÓ£o\r
+\r
+ SELECT *\r
+ FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);\r
+\r
+»ò \r
+ SELECT *\r
+ FROM t1 LEFT OUTER JOIN t2 USING (col);\r
+\r
+ÕâÁ1⁄2 ̧öμÈ1⁄4ÛμÄ2éÑ ̄ÔÚ t1.col oÍ t2.col ×ばつöÁ¬1⁄2Ó£¬2¢ÇÒ·μâ»?t1 ÖÐËùÓÐÎ ́Á¬1⁄2ÓμÄ\r
+ÐУ ̈ÄÇЩÔÚ t2 ÖÐûÓÐÆ\ÅäμÄÐУ©¡£ÓÒ[Íâ]Á¬1⁄2Ó(RIGHT OUTER JOIN)1⁄2«·μ»Ø t2 ÖÐ\r
+Î ́Á¬1⁄2ÓμÄÐС£ÍêÈ«ÍâÁ¬1⁄2Ó£ ̈FULL OUTER JOIN£©1⁄2«·μ»Ø t1 oÍ t2 ÖÐÎ ́Á¬1⁄2ÓμÄÐС£\r
×ばつÖ OUTER ×ばつó[Íâ]Á¬1⁄2Ó¡¢ÓÒ[Íâ]Á¬1⁄2ÓoÍÍêÈ«[Íâ]Á¬1⁄2ÓÖÐÊÇ¿ÉÑ¡μÄ£¬ÆÕÍ ̈Á¬1⁄2Ó\r
+±»3ÉÎaÄÚÁ¬1⁄2Ó£ ̈INNER JOIN£©¡£\r
+\r
+ÔÚ ́Ëǰμİæ±3⁄4ÖУ¬ÍâÁ¬1⁄2Ó¿ÉÒÔÓà UNION oÍ NOT IN À ×ばつÓÔÚ\r
+±í tab1 oÍ tab2 ×ばつöÍâÁ¬1⁄2Ó£o\r
+\r
+ SELECT tab1.col1, tab2.col2\r
+ FROM tab1, tab2\r
+ WHERE tab1.col1 = tab2.col1\r
+\r
+ UNION ALL\r
+\r
+ SELECT tab1.col1, NULL\r
+ FROM tab1\r
+ WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2)\r
+ ORDER BY col1\r
+\r
+\r
+ 4.24) ÈçoÎÊ1ÓÃÉæ1⁄4°¶à ̧öÊý3⁄4Ý¿âμÄ2éÑ ̄£¿\r
+\r
+ûÓÐ°ì· ̈2éÑ ̄μ±Ç°Êý3⁄4Ý¿âÖ®ÍâμÄÊý3⁄4ݿ⡣ÒòÎa PostgreSQL 1⁄4ÓÔØÊý3⁄4Ý¿âÏà1ØμÄÏμÍ3\r
+Ä¿Â1⁄4£ ̈ÏμÍ3±í£©£¬¿çÊý3⁄4Ý¿âμÄ2éÑ ̄ÈçoÎÖ ́ÐÐÒ2Î ́Ã÷È·¡£\r
+\r
+contrib/dblink ÔÊÐí2ÉÓÃo ̄Êýμ÷ÓÃÊμÏÖ¿ç¿â2éÑ ̄¡£μ±È»¿ÉÒÔͬʱÁ¬1⁄2Óμ1⁄22»Í¬μÄÊý\r
+3⁄4Ý¿â2¢ÔÚ¿Í»§¶ËoÏ21ドル⁄2á1û¡£\r
+\r
+\r
+ 4.25) ÈçoÎÈÃo ̄Êý·μ»Ø¶àÐлò¶àÁУ¿\r
+\r
+¿ÉÒÔÔÚ PL/pgSQL o ̄ÊýÖÐÊ1Óà refcursors ·μ»Ø1⁄2á1û1⁄4 ̄¡2ドルο ́\r
+http://www.PostgreSQL.org/idocs/index.php?plpgsql-cursors.html\r
+<http://www.PostgreSQL.org/idocs/index.php?plpgsql-cursors.html>,\r
+23.7.3.31⁄2Ú¡£\r
+\r
+\r
+ 4.26) ÎaÊ2à ́ÔÚ PL/PgSQL o ̄ÊýÖÐ2»Äܿɿ¿μØ ́ ́1⁄2 ̈»òÉ3⁄43ýÁÙʱ±í£¿\r
+\r
+PL/PgSQL »o ́æo ̄ÊýμÄÄÚÈÝ£¬ÓÉ ́Ë ́øÀ ́μÄÒ» ̧ö2»oÃμÄ ×ばつ÷ÓÃÊÇÈôÒ» ̧ö PL/PgSQL o ̄\r
+Êý·ÃÎÊÁËÒ» ̧öÁÙʱ±í£¬È»oó ̧Ã±í±»É3⁄43ý2¢ÖØ1⁄2 ̈ÁË£¬ÔòÔÙ ́Îμ÷Óà ̧Ão ̄Êý1⁄2«Ê§°Ü£¬ÒòÎa\r
+»o ́æμÄo ̄ÊýÄÚÈÝÈÔÈ»Ö ̧Ïò3⁄4ÉμÄÁÙʱ±í¡1ドル⁄2â3⁄4öμÄ·1⁄2· ̈ÊÇÔÚ PL/PgSQL ÖÐÓà EXECUTE\r
+¶ÔÁÙʱ±í1⁄2øÐзÃÎÊ¡£ÕâÑù»á±£Ö¤2éÑ ̄ÔÚÖ ×ばつÜÊÇÖØÐ·ÖÎö¡£\r
+\r
+\r
+ 4.27) ÓÐÄÄЩÊý3⁄4Ý ̧ ́ÖÆÑ¡Ï\r
+\r
+ÓÐ1⁄4 ̧ÖÖÖ÷/ ́Ó·1⁄2Ê1⁄2μÄ ̧ ́ÖÆÑ¡Ïî¡£ÕâЩѡÏîÖ»ÔÊÐíÖ÷Êý3⁄4Ý¿â1⁄2øÐÐ ̧üУ¬ ́ÓÊý3⁄4Ý¿âÖ»ÄÜ\r
+1⁄2øÐжÁ¡£ÍøÒ3 http://gborg.PostgreSQL.org/genpage?replication_research \r
×ばつîoóÁÐ3öÁËÕâЩѡÏî¡£ÔÚ\r
+http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php\r
+<http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php> ÕýÔÚ\r
+1⁄2øÐÐÒ» ̧ö¶àÖ÷±3⁄4 ̧ ́ÖÆμÄ1⁄2â3⁄4ö·1⁄2° ̧¡£\r
+\r
+\r
+ 4.28) ÓÐÄÄЩÊý3⁄4Ý1⁄4ÓÃÜÑ¡Ï\r
+\r
+contrib/pgcrypto °üo¬ÁËoܶàÔÚ SQL 2éÑ ̄ÖÐÊ1ÓÃμÄ1⁄4ÓÃÜo ̄Êý¡1ドル⁄4ÓÃܿͻ§¶Ëμ1⁄2·þÎñ\r
+Æ÷¶Ë ́«ÊäÊý3⁄4ÝμÄÎ ̈Ò»·1⁄2· ̈ÊÇÔÚ pg_hba.conf ÖÐ2ÉÓà hostss ¡£ \r
+\r
+7.3 ×ばつÔ¶ ̄¶ÔÊý3⁄4Ý¿âÓû§ÃÜÂë1⁄2øÐÐ1⁄4ÓÃÜ¡£ÔÚÒÔǰμİæ±3⁄4ÖУ¬±ØÐëÔÚ\r
+postgresql.conf ÖÐ ́ò¿a PASSWORD_ENCRYPTION Ñ¡Ïî¡£·þÎñÆ÷¿ÉÒÔÔËÐÐÔÚ1⁄4ÓÃÜμÄ\r
+ÎÄ1⁄4þÏμÍ3ÉÏ£ ̈ÒÔ ́ïμ1⁄21⁄4ÓÃÜμÄÄ¿μÄ£©¡£\r
+\r
+--------------------------------------------------------------------------------\r
+\r
+\r
+ À©Õ1 PostgreSQL\r
+\r
+\r
+ 5.1) ÎÒÐ ́ÁËÒ» ̧öÓû§¶ ̈Òåo ̄Êý¡£μ±ÎÒÔÚ psql ÀïÔËÐÐʱ£¬ÎaÊ2à ́»áμ1⁄4ÖÂ\r
+ core dump£¿\r
+\r
+2úÉúÕâ ̧öÎÊÌâμÄÔÒòoܶࡣÇëÏÈÔÚÒ» ×ばつÔ¶ ̈Òåo ̄Êý¡£\r
+\r
+\r
+ 5.2) ÎÒÈçoÎÄÜ ̧ø PostgreSQL ×ばつһЩͦ2» ́íμÄÐÂÀàÐÍoÍo ̄Êý£¿\r
+\r
+1⁄2«ÄãμÄÀ©Õ1·¢ËÍμ1⁄2 pgsql-hackers ×ばつîÖջᱻ·Åμ1⁄2 contrib/ ×ばつÓÄ¿Â1⁄4¡£\r
+\r
+\r
+ 5.3) ÎÒÔõÑùÐ ́Ò» ̧ö·μ»ØÒ»ÌõÔa×ばつéμÄ C o ̄Êý£¿\r
+\r
+ÔÚ PostgreSQL 7.3 ÒÔoóμİæ±3⁄4ÖУ¬C, PL/PgSQL oÍ SQL Íêȫ֧3Ö·μ»ØÖμÎa±íμÄ\r
+o ̄Êý¡£ ̧ü¶àÐÅÏ¢Çë2ο1⁄4 3ÌÐòÔ±Ö ̧ÄÏ£ ̈the Programmer's Guide£©¡£ÔÚ\r
+contrib/tablefunc ÖÐÓÐÒ» ×ばつÓÊÇÓà C Ð ́μÄ·μ»ØÖμÎa±íμÄo ̄Êý¡£\r
+\r
+\r
+ 5.4) ÎÒÐÞ ̧ÄÁËÒ» ̧öÔ ́ÎÄ1⁄4þ£¬ÎaÊ2à ́ÖØÐ±àÒëoóûÓп ́μ1⁄2 ̧ı䣿\r
+\r
+Makefiles ×ばつömake clean£¬ ×ばつöÒ» ́Î\r
+make ¡£Èç1ûÄúÊ1ÓÃμÄÊÇ GCC £¬Ôò¿ÉÒÔ2ÉÓÃÑ¡Ïî --enable-depend ×ばつÔ¶ ̄\r
+Éú3ÉÍ·ÎÄ1⁄4þμÄÒÀÀμ1ØÏμ¡£\r
+\r