Update Chinese FAQ, per Magnus.
authorBruce Momjian
Wed, 11 May 2005 14:56:50 +0000 (14:56 +0000)
committerBruce Momjian
Wed, 11 May 2005 14:56:50 +0000 (14:56 +0000)
doc/src/FAQ/FAQ_chinese.html

index cbb6190729661cfc4690fc488dfdf88ebc182c6f..0b05a662498181fa686f731e71bbb2b028f46d4d 100644 (file)
-\r
-\r
-PostgreSQL <span class="marked"><span class="cntrl">\r</span></span></div> <div class="diff rem">-           FAQ-ch\r
-       content="text/html; charset=gb_2312-80" http-equiv="Content-Type">\r
-       \r
-   \r
-   \r
-       

PostgreSQL ³£¼ûÎÊÌ⣨FAQ£©

          \r
-       ×î½ü¸üУº2003 Äê 01 Ô 06 ÈÕ ÐÇÆÚÒ» 22:27:35 CST\r
-       

Ŀǰά»¤ÈËÔ±£ºBruce Momjian ([email protected])          \r

-           
\r
-           ÖÐÎİæÎ¬»¤ÈËÔ±£ººÎΰƽ £¨[email protected]          \r
-       £©

±¾ÎĵµµÄ×îа汾¿ÉÒÔÔÚhttp://www.postgresql.org/files/documentation/faqs/FAQ.html          \r

-       ²é¿´¡£

²Ù×÷ϵͳƽ̨Ïà¹ØµÄÎÊÌâÔÚhttp://www.postgresql.org/docs/faq/Àï»Ø´ð¡£
          \r

-           
\r
-           
\r
-               

³£¼ûÎÊÌâ

\r
-           \r
-        1.1)           \r
-           PostgreSQL ÊÇʲô£¿¸ÃÔõô·¢Òô£¿          \r
-           
\r
-        1.2)           \r
-           PostgreSQL µÄ°æÈ¨ÊÇʲô?          \r
-           
\r
-           1.3)           \r
-           PostgreSQL ÔËÐÐÔÚʲô Unix Æ½Ì¨ÉÏ£¿          \r
-           
\r
-           1.4) ¿ÉÓõķǠUnix           \r
-           Æ½Ì¨ÓÐÄÇЩ£¿\r
-           
\r
-           1.5) ÎÒ´ÓÄÄÀïÄܵõ½           \r
-           PostgreSQL£¿\r
-           
\r
-           1.6) ÎÒ´ÓÄÄÀïÄܵõ½¶Ô           \r
-           PostgreSQL µÄÖ§³Ö£¿          \r
-           
\r
-           1.7)           \r
-           PostgreSQL ×îеİ汾ÊÇʲô£¿          \r
-           
\r
-           1.8) ÓÐÄÄЩ¿ÉÓõĠ          \r
-           PostgreSQL µÄÎĵµ£¿          \r
-           
\r
-           1.9) ÎÒÈçºÎÁ˽âÒÑÖªµÄ BUG        \r
-        »òȱʧµÄÌØÐÔ£¿\r
-           
\r
-           1.10) ÎÒÓ¦¸ÃÔõÑùѧϰ           \r
-           SQL £¿          \r
-           
\r
-           1.11)           \r
-           PostgreSQL ÊÇ Y2K ¼æÈݵÄÂ𣿠         \r
-           
\r
-           1.12)           \r
-           ÎÒÓ¦¸ÃÔõÑù¼ÓÈ뿪·¢¶ÓÎ飿\r
-           
\r
-           1.13)           \r
-           ÎÒÓ¦¸ÃÔõÑùÌá½»Ò»¸ö BUG ±¨¸æ£¿          \r
-           
\r
-           1.14)           \r
-           PostgreSQL ºÍÆäËû DBMS ±ÈÆðÀ´ÈçºÎ£¿
          \r
-        1.15) ÎÒÓ¦¸ÃÔõÑùÔÞÖú           \r
-           PostgreSQL £¿          \r
-           
\r
-               

Óû§¿Í»§¶ËÎÊÌâ

\r
-           \r
-           2.1) ÓР          \r
-           PostgreSQL µÄ ODBC Çý¶¯³ÌÐòô£¿          \r
-           
\r
-           2.2) ÓÐʲô¹¤¾ß¿ÉÒÔ°Ñ           \r
-           PostgreSQL ÓÃÓÚ Web Ò³Ã棿          \r
-           
\r
-           2.3)           \r
-           PostgreSQL ÓµÓÐͼÐÎÓû§½çÃæÂ𣿠         \r
-           
\r
-           2.4)           \r
-           ÎÒÃÇ¿ÉÒÔÓÃʲôÓïÑԺ͠PostgreSQL ´ò½»µÀ£¿          \r
-           
\r
-               

ϵͳ¹ÜÀíÎÊÌâ

\r
-           \r
-        3.1) ÎÒÔõÑùÄܰѠ          \r
-           PostgreSQL ×°ÔÚ /usr/local/pgsql ÒÔÍâµÄµØ·½£¿          \r
-           
\r
-        3.2) µ±ÎÒÔËÐР          \r
-           postmaster Ê±£¬³öÏÖ Bad System Call£¨ÏµÍ³µ÷ÓÃ´í£©»ò Core Dumped ´íÎó¡£ÎªÊ²Ã´£¿          \r
-           
\r
-        3.3) µ±ÎÒÊÔͼÔËÐР          \r
-           postmaster Ê±£¬³öÏÖ IpcMemoryCreate ´íÎó¡£ÎªÊ²Ã´£¿          \r
-           
\r
-        3.4) µ±ÎÒÊÔͼÔËÐР          \r
-           postmaster Ê±£¬³öÏÖ IpcSemaphoreCreate ´íÎó¡£ÎªÊ²Ã´£¿          \r
-           
\r
-        3.5)           \r
-           ÎÒÈçºÎ¿ØÖÆÀ´×ÔÆäËûÖ÷»úµÄÁ¬½Ó£¿\r
-           
\r
-        3.6)           \r
-           ÎÒÔõÑùµ÷ÕûÊý¾Ý¿âÒýÇæÒÔ»ñµÃ¸üºÃµÄÐÔÄÜ£¿\r
-           
\r
-        3.7)           \r
-           PostgreSQL Àï¿ÉÒÔ»ñµÃʲôÑùµÄµ÷ÊÔÌØÐÔ£¿          \r
-           
\r
-        3.8)           \r
-           ÎªÊ²Ã´ÔÚÊÔͼÁ¬½ÓµÇ¼ʱÊÕµ½¡°Sorry, too many clients¡± ÏûÏ¢£¿
          \r
-        3.9)           \r
-           pgsql_tmp Ä¿Â¼Àï¶¼ÓÐЩʲô£¿
          \r
-        3.10) ÎªÊ²Ã´ÒªÔÚÉý¼¶           \r
-           PostgreSQL ·¢²¼°æ±¾Ê±×ö dump ºÍ restore £¿          \r
-           
\r
-               

²Ù×÷ÎÊÌâ

\r
-           \r
-        4.1)           \r
-           ¶þ½øÖÆÓαêºÍÆÕͨÓαêÖ®¼äµÄÇø±ðÊÇʲô£¿\r
-           
\r
-        4.2)           \r
-           ÈçºÎֻѡÔñÒ»¸ö²éѯ½á¹ûµÄÍ·¼¸ÐУ¿\r
-           
\r
-        4.3)           \r
-           ÎÒÈçºÎ»ñȡһ¸öÊý¾Ý¿âÖбíµÄÁÐ±í£¬»òÕßÊÇÆäËûÎÒÄÜÔÚ psql Àï¿´µ½µÄ¶«Î÷£¿          \r
-           
\r
-        4.4)           \r
-           ÔõÑù´Ó±íÀïÃæÉ¾³ýÒ»ÁУ¿\r
-           
\r
-        4.5)           \r
-           Ò»ÐУ¬Ò»¸ö±í£¬Ò»¸ö¿âµÄ×î´ó³ß´çÊǶàÉÙ£¿\r
-           
\r
-        4.6)           \r
-           ´æ´¢Ò»¸öµäÐ͵ÄÎı¾ÎļþÀïµÄÊý¾ÝÐèÒª¶àÉÙ´ÅÅ̿ռ䣿\r
-           
\r
-        4.7)           \r
-           ÈçºÎ²é¿´±í¡¢Ë÷Òý¡¢Êý¾Ý¿âÒÔ¼°Óû§µÄ¶¨Ò壿\r
-           
\r
-        4.8)           \r
-           ÎҵIJéѯºÜÂý»òÕßûÓÐÀûÓÃË÷Òý¡£ÎªÊ²Ã´£¿\r
-           
\r
-        4.9)           \r
-           ÎÒÈçºÎ²ÅÄÜ¿´µ½²éѯÓÅ»¯Æ÷ÊÇÔõÑù´¦ÀíÎҵIJéѯµÄ£¿\r
-           
\r
-        4.10) R-tree           \r
-           Ë÷ÒýÊÇʲô£¿\r
-           
\r
-        4.11)           \r
-           Ê²Ã´ÊÇ»ùÒò²éѯÓÅ»¯£¨Genetic Query Optimization£©£¿          \r
-           
\r
-        4.12)           \r
-           ÎÒÔõÑù×öÕýÔò±í´ïʽËÑË÷ºÍ´óСдÎ޹صÄÕýÔò±í´ïʽ²éÕÒ£¿ÔõÑùÀûÓÃË÷Òý½øÐдóСдÎ޹زéÕÒ£¿\r
-           
\r
-        4.13)           \r
-           ÔÚÒ»¸ö²éѯÀÎÒÔõÑù¼ì²âÒ»¸ö×Ö¶ÎÊÇ·ñΪ NULL£¿          \r
-           
\r
-        4.14)           \r
-           ¸÷ÖÖ×Ö·ûÀàÐÍÖ®¼äÓÐʲô²»Í¬£¿\r
-           
\r
-        4.15.1)           \r
-           ÎÒÔõÑù´´½¨Ò»¸öÐòÁкÅ/×Ô¶¯µÝÔöµÄ×ֶΣ¿\r
-           
\r
-        4.15.2)           \r
-           ÎÒÈçºÎ»ñµÃÒ»¸ö²åÈëµÄÐòÁкŵÄÖµ£¿\r
-           
\r
-        4.15.3) Ê¹Óà          \r
-           currval() ºÍ nextval() »áµ¼ÖÂºÍÆäËûÓû§µÄÎÉÂÒÇé¿ö£¨race condition£©Âð£¿
          \r
-        4.15.4)           \r
-           ÎªÊ²Ã´²»ÔÚÊÂÎñÒì³£ÖÐÖ¹ºóÖØÓÃÐòÁкÅÄØ£¿ÎªÊ²Ã´ÔÚÐòÁкÅ×ֶεÄȡֵÖдæÔÚ¼ä¶ÏÄØ£¿\r
-           
\r
-        4.16) Ê²Ã´ÊÇ           \r
-           OID£¿Ê²Ã´ÊÇ TID £¿          \r
-           
\r
-        4.17)           \r
-           PostgreSQL Ê¹ÓõÄһЩÊõÓïµÄº¬ÒåÊÇʲô£¿          \r
-           
\r
-        4.18)           \r
-           ÎªÊ²Ã´ÎÒÊÕµ½´íÎó¡°ERROR: Memory exhausted in AllocSetAlloc()¡±£¿
\r
-        4.19)           \r
-           ÎÒÈçºÎ²ÅÄÜÖªµÀËùÔËÐеĠPostgreSQL µÄ°æ±¾£¿          \r
-           
\r
-        4.20)           \r
-           ÎªÊ²Ã´ÎҵĴó¶ÔÏó²Ù×÷µ¼Ö´íÎó¡°invalid large obj descriptor¡±£¨·Ç·¨µÄ´ó¶ÔÏóÃèÊö·û£©£¿ \r
-           
\r
-        4.21)           \r
-           ÎÒÈçºÎ´´½¨Ò»¸öȱʡֵÊǵ±Ç°Ê±¼äµÄ×ֶΣ¿\r
-           
\r
-        4.22) ÎªÊ²Ã´Ê¹ÓàIN          \r
-           µÄ×Ó²éѯÕâôÂý£¿          \r
-           
\r
-        4.23) ÈçºÎ½øÐР          \r
-           outer join £¨ÍâÁ¬½Ó£©£¿
          \r
-        4.24)           \r
-           ÈçºÎʹÓÃÉæ¼°¶à¸öÊý¾Ý¿âµÄ²éѯ£¿
\r
-           
\r
-           \r
-        4.25)           \r
-           ÈçºÎÈú¯Êý·µ»Ø¶àÐлò¶àÁУ¿
\r
-           
\r
-           \r
-        4.26) ÎªÊ²Ã´ÔÚ           \r
-           PL/PgSQL º¯ÊýÖв»Äܿɿ¿µØ´´½¨»òɾ³ýÁÙʱ±í£¿
          \r
-           
\r
-           \r
-        4.27)           \r
-           ÓÐÄÄЩÊý¾Ý¸´ÖÆÑ¡Ï
\r
-        4.28)           \r
-           ÓÐÄÄЩÊý¾Ý¼ÓÃÜÑ¡Ï\r
-           
\r
-               

À©Õ¹ PostgreSQL

          \r
-           \r
-           5.1)           \r
-           ÎÒдÁËÒ»¸öÓû§¶¨Ò庯Êý¡£µ±ÎÒÔÚ psql ÀïÔËÐÐʱ£¬ÎªÊ²Ã´»áµ¼Ö core dump£¿          \r
-           
\r
-        5.2) ÎÒÈçºÎÄܸø           \r
-           PostgreSQL ¹±Ï×һЩͦ²»´íµÄÐÂÀàÐͺͺ¯Êý£¿          \r
-           
\r
-        5.3)           \r
-           ÎÒÔõÑùдһ¸ö·µ»ØÒ»Ìõ¼Ç¼µÄ C º¯Êý£¿          \r
-           
\r
-        5.4)           \r
-           ÎÒÐÞ¸ÄÁËÒ»¸öÔ´Îļþ£¬ÎªÊ²Ã´ÖØÐ±àÒëºóûÓп´µ½¸Ä±ä£¿\r
-           
\r
-           
\r
-           
\r
-               

³£¼ûÎÊÌâ

\r
-           \r
-           

1.1) PostgreSQL ÊÇʲô£¿¸ÃÔõô·¢Òô£¿

          \r
-           PostgreSQL ¶Á×÷ Post-Gres-Q-L ¡£          \r
-       

PostgreSQL ÊÇÏÂÒ»´ú DBMS µÄÑо¿Ô­ÐÍ POSTGRES Êý¾Ý¿â¹ÜÀíϵͳµÄÔöÇ¿°æ¡£PostgreSQL ÔÚ±£³Ö POSTGRES           \r

-           µÄÇ¿´óµÄÊý¾ÝÄ£ÐͺͷḻµÄÊý¾ÝÀàÐ͵Ļù´¡ÉÏ£¬ÓÃÒ»¸öÀ©Õ¹Á˵ĠSQL ×Ó¼¯È¡´úÁËÔ­ÏȵĠPostQuel ²éѯÓïÑÔ¡£PostgreSQL           \r
-           ÊÇ×ÔÓɵIJ¢ÇÒËùÓÐÔ´´úÂë¶¼¿ÉÒÔ»ñµÃ¡£

\r
-       

PostgreSQL µÄ¿ª·¢ÓɲμӠPostgreSQL ¿ª·¢ÓʼþÁбíµÄÒ»¸ö¿ª·¢ÈËԱС×é½øÐС£Ä¿Ç°µÄЭµ÷ÈËÊÇ Marc G. Fournier £¨[email protected]          \r

-       £©¡££¨¹ØÓÚÈçºÎ¼ÓÈë²Î¼û1.6½Ú£©¡£Õâ¸ö¶ÓÎéÏÖÔÚ¸ºÔð PostgreSQL µÄËùÓпª·¢¡£          \r
-       

\r

-       PostgreSQL 1.01 µÄ×÷ÕßÊÇ Andrew Yu ºÍ Jolly           \r
-       Chen¡£»¹ÓÐÐí¶àÆäËûÈËÎªÒÆÖ²£¬²âÊÔ£¬µ÷ÊÔºÍÔöÇ¿´úÂë×öÁË´óÁ¿¹±Ïס£PostgreSQL µÄ×î³õÆðÔ´ Postgres£¬ÊÇÔÚ¼ÓÖÝ´óѧ²®¿ËÀû·ÖУµÄ Michael           \r
-       Stonebraker ½ÌÊÚµÄÖ¸µ¼Ï£¬ÓÉÐí¶àÑо¿Éú£¬±¾¿ÆÉúºÍ±à³ÌÖ°Ô±Íê³ÉµÄ¡£          \r
-       

Õâ¸öÈí¼þ×î³õÔÚ²®¿ËÀûµÄÃû×ÖÊÇ Postgres¡£ÔÚ 1995 Ä꣬µ±Ôö¼ÓÁË SQL ¹¦Äܺó£¬ËüµÄÃû×ָijɠPostgres95¡£ÔÚ 1996ÄêÄ©£¬²Å¸ÄÃûΪ           \r

-           PostgreSQL¡£\r
-           

1.2) PostgreSQL µÄ°æÈ¨ÊÇʲô?

          \r
-       PostgreSQL ÊÜÏÂÃæµÄ°æÈ¨Ô¼Êø¡£          \r
-       

\r

-       PostgreSQL Êý¾Ý¿â¹ÜÀíϵͳ          \r
-       

\r

-       £¨PostgreSQL Data Base Management System£©

²¿·Ö°æÈ¨£¨c£©1996-2002£¬PostgreSQL È«Çò¿ª·¢Ð¡×é
          \r

-       ²¿·Ö°æÈ¨£¨c£©1994-6 ¼ÓÖÝ´óѧ¶­Ê          \r
-       

£¨Portions copyright (c) 1996-2002, PostgreSQL Global Development Group
          \r

-        Portions Copyright (c) 1994-6 Regents of the University of California£©          \r
-       

\r

-       ÔÊÐíΪÈκÎÄ¿µÄʹÓ㬿½±´£¬Ð޸ĺͷַ¢Õâ¸öÈí¼þºÍËüµÄÎĵµ¶ø²»ÊÕÈ¡ÈκηÑÓ㬲¢ÇÒÎÞÐëÇ©ÊðÒò´Ë¶ø²úÉúµÄÖ¤Ã÷£¬Ç°ÌáÊÇÉÏÃæµÄ°æÈ¨ÉùÃ÷ºÍ±¾¶ÎÒÔ¼°ÏÂÃæÁ½¶ÎÎÄ×Ö³öÏÖÔÚËùÓп½±´ÖС£\r
-       

\r

-       £¨Permission to use, copy, modify, and distribute this software and its           \r
-       documentation for any purpose, without fee, and without a written agreement is           \r
-       hereby granted, provided that the above copyright notice and this paragraph and           \r
-       the following two paragraphs appear in all copies.£©          \r
-       

\r

-       ÔÚÈκÎÇé¿öÏ£¬¼ÓÖÝ´óѧ¶¼²»³Ðµ£ÒòʹÓôËÈí¼þ¼°ÆäÎĵµ¶øµ¼ÖµĶÔÈκε±ÊÂÈ˵ÄÖ±½ÓµÄ£¬¼ä½ÓµÄ£¬ÌØÊâµÄ£¬¸½¼ÓµÄ»òÕßÏà°é¶øÉúµÄË𻵣¬°üÀ¨ÀûÒæËðʧµÄÔðÈΣ¬¼´Ê¹¼ÓÖÝ´óѧÒѾ­½¨ÒéÁËÕâЩËðʧµÄ¿ÉÄÜÐÔʱҲÊÇÈç´Ë¡£\r
-       

\r

-       £¨IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR           \r
-       DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST           \r
-       PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF           \r
-       THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH           \r
-       DAMAGE.£©\r
-       

\r

-       ¼ÓÖÝ´óѧÃ÷È··ÅÆúÈκα£Ö¤£¬°üÀ¨µ«²»¾ÖÏÞÓÚÄ³Ò»ÌØ¶¨ÓÃ;µÄÉÌÒµºÍÀûÒæµÄÒþº¬±£Ö¤¡£ÕâÀïÌṩµÄÕâ·ÝÈí¼þÊÇ»ùÓÚ¡°µ±×÷ÊÇ¡±µÄ»ù´¡µÄ£¬Òò¶ø¼ÓÖÝ´óѧûÓÐÔðÈÎÌṩά»¤£¬Ö§³Ö£¬¸üУ¬ÔöÇ¿»òÕßÐ޸ĵķþÎñ¡£

£¨THE           \r

-           UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT           \r
-           NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A           \r
-           PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND           \r
-           THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE,           \r
-           SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.£©
          \r
-           
\r
-           ÉÏÃæ¾ÍÊÇ BSD °æÈ¨ÉùÃ÷£¬Ò»¸ö¾­µäµÄ¿ªÔ´°æÈ¨ÉùÃ÷¡£Ëü¶ÔÔ´´úÂëµÄʹÓÃδ×÷ÈκÎÏÞÖÆ¡£ÎÒÃÇϲ»¶Ëü²¢ÇÒ²»´òËã¸Ä±äËü¡£          \r
-           

1.3) PostgreSQL ÔËÐÐÔÚʲô Unix Æ½Ì¨ÉÏ£¿

          \r
-       

Ò»°ã˵À´£¬Ò»¸öÏÖ´úµÄ UNIX ¼æÈÝµÄÆ½Ì¨¶¼ÄÜÔËÐРPostgreSQL ¡£ÔÚ°²×°Ö¸ÄÏÀïÁгöÁË·¢²¼Ê±¾­¹ýÃ÷È·²âÊÔµÄÆ½Ì¨¡£

          \r
-       
    \r
-       \r
-       

1.4) ¿ÉÓõķǠUnix Æ½Ì¨ÓÐÄÄЩ£¿

         \r
-       ¿Í»§¶Ë\r
-       

°Ñ libpq C ¿â£¬psql£¬ÆäËû½Ó¿ÚºÍ¿Í»§¶ËÓ¦ÓóÌÐò±àÒë³É¿ÉÒÔÔÚ MS Windows Æ½Ì¨ÉÏÔËÐÐÊÇ¿ÉÄܵġ£ÕâÖÖÇé¿öÏ£¬¿Í»§¶ËÔÚ MS Windows           \r

-           ÉÏÔËÐУ¬²¢ÇÒͨ¹ý TCP/IP ÓëÒ»¸öÔËÐÐÔÚÎÒÃÇÖ§³ÖµÄ Unix Æ½Ì¨ÉϵķþÎñÆ÷½øÐÐͨѶ¡£·¢²¼°æ±¾Öаüº¬Ò»¸öÎļþ win32.mak ÓÃÓÚÉú³É Win32           \r
-           libpq ¿âºÍ psql ¡£PostgreSQL Ò²¿ÉÒԺ͠ODBC ¿Í»§¶ËͨѶ¡£

          \r
-       

·þÎñÆ÷

\r
-       

Êý¾Ý¿â·þÎñÆ÷ÏÖÔÚ¿ÉÒÔͨ¹ý Cygwin £¬Cygnus µÄ Unix/NT ÒÆÖ²¿âÔÚ Windows NT ºÍ Win2k ÉÏÔËÐС£²ÎÔÄ·¢²¼°æ±¾ÀïµÄ See pgsql/doc/FAQ_MSWIN          \r

-           Îļþ»ò http://www.PostgreSQL.org/docs/faq-mswin.html          \r
-       ¡£          \r
-       

ÒÆÖ²µ½ MS Win NT/2000/XP µÄ±¾»ú°æµÄ¹¤×÷ÕýÔÚ½øÐС£          \r

-           

1.5) ÎÒ´ÓÄÄÀïÄܵõ½ PostgreSQL£¿

          \r
-       

PostgreSQL µÄÖ÷ÄäÃûFTPÕ¾µãÊÇ ftp://ftp.PostgreSQL.org/pub£¬¾µÏñÕ¾µã¿ÉÒԲο¼ÎÒÃÇÍøÕ¾µÄÖ÷Ò³¡£          \r

-           

1.6) ÎÒ´ÓÄÄÀïÄܵõ½¶Ô PostgreSQL µÄÖ§³Ö£¿

          \r
-       

Ö÷ÒªµÄÓʼþÁбíÊÇ£º[email protected]¡£¿ÉÒÔÔÚÄÇÀïÌÖÂÛÓйؠ          \r

-           PostgreSQL µÄÎÊÌâ¡£Òª¼ÓÈëÁÐ±í£¬·¢Ò»·âÓʼþÄÚÈÝ£¨²»ÊÇÖ÷ÌâÐУ©Îª          \r
-           
        subscribe\r
-        end\r
-           µÄÓʼþµ½ [email protected]          \r
-       ¡£          \r
-       

»¹¿ÉÒÔ»ñȡժҪÁÐ±í¡£Òª¼ÓÈëÕâ¸öÁÐ±í£¬·¢Óʼþµ½£º[email protected]£¬ÆäÄÚÈÝΪ£º\r

-           
        subscribe\r
-        end\r
-       Ã¿µ±Ö÷Áбí´ïµ½´óÔ¼ 30k µÄÏûÏ¢ÄÚÈÝʱ£¬ÕªÒª¾Í·¢Ë͸øÕâ¸öÁбíµÄ³ÉÔ±¡£          \r
-       

»¹¿ÉÒԲμӳô³æÓʼþÁÐ±í¡£Òª¼ÓÈëÕâ¸öÁÐ±í£¬·¢ËÍÒ»¸öÓʼþµ½ [email protected]£¬ÄÚÈÝΪ£º          \r

-           
        subscribe\r
-        end\r
-           »¹¿ÉÒԲμӿª·¢ÈËÔ±ÓʼþÁÐ±í¡£Òª¼ÓÈëÕâ¸öÁÐ±í£¬·¢ËÍÒ»¸öÓʼþµ½ [email protected]£¬ÄÚÈÝΪ£º          \r
-           
        subscribe\r
-        end\r
-           ÆäËûµÄ¹ØÓÚ PostgreSQL ÓʼþÁбíºÍÆäËûÐÅÏ¢¿ÉÒÔÔÚ PostgreSQL µÄ WWW Ö÷Ò³ÕÒµ½£º 
http://postgresql.org/
          \r
-           ÔÚ EFNet ÀﻹÓÐÒ»¸ö IRC ÆµµÀ£¬ÆµµÀ #PostgreSQL¡£ÎÒÓàunix ÃüÁîirc -c '#PostgreSQL' "$USER"           \r
-               irc.phoenix.net\r
-       

ÉÌÒµÖ§³Ö¹«Ë¾µÄÁбíÔÚ http://www.PostgreSQL.org/users-lounge/commercial-support.html          \r

-           ¡£          \r
-           

1.7) PostgreSQL ×îеİ汾ÊÇʲô£¿

          \r
-       PostgreSQL ×îеİ汾Êǰ汾 7.2.3¡££¨Òë×¢£ºÏÖÔÚÓ¦¸ÃÊÇ 7.3.1 ÁË¡££©          \r
-       

ÎÒÃǼƻ®Ã¿ËĸöÔ·¢²¼Ò»¸öÖ÷Òª°æ±¾¡£\r

-           

1.8) ÓÐÄÄЩ¿ÉÓõĠPostgreSQL µÄÎĵµ£¿

          \r
-           ÔÚ·¢²¼°üÀïÓÐһЩÊֲᣬÊÖ²áÒ³ºÍһЩСµÄ²âÊÔÀý×Ó¡£²Î¼û /doc Ä¿Â¼¡££¨Òë×¢£ºÓ¦Îª $PGHOME/doc£©¡£Ä㻹¿ÉÒÔÔÚÏßä¯ÀÀ PostgreSQL           \r
-           µÄÊֲᣬÔÚ http://www.PostgreSQL.org/users-lounge/docs/          \r
-       ¡£

ÓÐÁ½±¾¹ØÓÚ PostgreSQL µÄÊéÔÚÏßÌṩ£¬ÔÚ           \r

-               http://www.PostgreSQL.org/docs/awbook.html ºÍ           \r
-               http://www.commandprompt.com/ppbook/ ¡£ÔÚ           \r
-               http://www.ca.PostgreSQL.org/books/ ÉÏÓйØÓÚ PostgreSQL µÄ¿É¹ºÊé¼®µÄÁÐ±í¡£ÔÚ           \r
-               http://techdocs.PostgreSQL.org/\r
-       ÉÏÊÕ¼¯ÁËÓйؠPostgreSQL µÄ¼¼ÊõÎÄÕ¡£          \r
-       

psql\r

-       ÓÐһЩ²»´íµÄ \d ÃüÁÏÔʾ¹ØÓÚÀàÐÍ£¬²Ù×÷·û£¬º¯Êý£¬¾Û¼¯µÈµÄÐÅÏ¢¡£          \r
-       

ÎÒÃǵĠweb Õ¾µã°üº¬¸ü¶àµÄÎĵµ£®

1.9)        \r

-        ÎÒÈçºÎÁ˽âÒÑÖªµÄ BUG ºÍȱʧµÄÌØÐÔ£¿         \r
-           PostgreSQL Ö§³ÖÒ»¸öÀ©Õ¹Á˵ĠSQL-92 µÄ×Ó¼¯¡£²ÎÔÄÎÒÃǵĠ          \r
-               TODO ÁÐ±í£¬»ñȡһ¸öÒÑÖª³ô³æ£¬È±Ê§ÌØÐÔºÍδÀ´¼Æ»®¡£          \r
-           

1.10) ÎÒÓ¦¸ÃÔõÑùѧϰ SQL£¿

          \r
-           ÔÚ http://www.postgresql.org/docs/awbook.html          \r
-           µÄ¹ØÓÚ PostgreSQL µÄÊé½ÌÊÚ SQL¡££¨Òë×¢£ºÎÒÏÂÔØµ½±¾µØÁË¡££©ÔÚ           \r
-               http://www.commandprompt.com/ppbook ÓÐÁíÍâÒ»±¾¹ØÓÚ PostgreSQL µÄÊé¡£ÔÚhttp://www.intermedia.net/support/sql/sqltut.shtm£¬http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM           \r
-           ºÍ http://sqlcourse.com          \r
-       ÓÐÒ»¸ö²»´íµÄÈëÃŽ̡̳£          \r
-       

ÁíÒ»¸öÊÇ "Teach Yourself SQL in 21 Days, Second Edition"£¨21Ììѧ»áSQL£¬µÚ¶þ°æ£©£¬ÔÚ           \r

-               http://members.tripod.com/er4ebus/sql/index.htm\r
-       

ÎÒÃǵÄÐí¶àÓû§Ï²»¶ The Practical SQL Handbook, Bowman, Judith S., et al., Addison-Wesley ¡£           \r

-           ÆäËûµÄÓРThe Complete Reference SQL, Groff et al., McGraw-Hill ¡£          \r
-           

1.11) PostgreSQL ÊÇ Y2K ¼æÈݵÄÂð£¿

          \r
-           ÊÇ£¬ÎÒÃǺÜÈÝÒ׿ØÖÆ 2000 AD Ö®ºóºÍ 2000 BC Ö®Ç°µÄÈÕÆÚ¡£          \r
-           

1.12) ÎÒÓ¦¸ÃÔõÑù¼ÓÈ뿪·¢¶ÓÎ飿

          \r
-       Ê×ÏÈ£¬ÏÂÔØ×îеÄÔ´´úÂë²¢ÔĶÁÎÒÃÇ web Õ¾µã»ò·¢²¼°üÖеĠPostgreSQL ¿ª·¢ÕßÎĵµ¡£Æä´Î£¬¼ÓÈë pgsql-hackers ºÍ           \r
-       pgsql-patches ÓʼþÁÐ±í¡£µÚÈý£¬Ïò pgsql-patches Ìá½»¸ßÖÊÁ¿µÄ²¹¶¡³ÌÐò¡£          \r
-       

ÏÖÔÚ´ó¸ÅÓÐÊ®¼¸¸öÈËÓРPostgreSQL CVS ¹éµµ COMMIT µÄȨÏÞ¡£ËûÃǶ¼ÒѾ­Ìá½»Á˷dz£¶à¸ßÖÊÁ¿µÄ²¹¶¡ÁË£¬ÒÔÖÁÓÚÏÖÓеÄÌá½»È˺ÜÄѸúÉϽÚ×࣬²¢ÇÒÎÒÃÇÏàÐÅËûÃÇÌá½»µÄ²¹¶¡¶¼ÊǸßÖÊÁ¿µÄ¡£

1.13)           \r

-               ÎÒÓ¦¸ÃÔõÑùÌá½»Ò»¸öBUG±¨¸æ£¿\r
-           Çë·ÃÎÊ http://www.PostgreSQL.org/bugs/bugs.php          \r
-       µÄ PostgreSQL BugTool Ò³Ãæ, ÄÇÀï¸ø³öÁËÈçºÎÌá½»Ò»¸öBUG±¨¸æµÄÖ¸ÄÏ¡£          \r
-       

ͬÑùÒ²Òª¿´¿´ÎÒÃǵĠftp Õ¾µã ftp://ftp.postgreSQL.org/pub£¬¿´ÓÐûÓиüеĠ          \r

-           PostgreSQL °æ±¾»ò²¹¶¡¡£          \r
-           

1.14) PostgreSQL ºÍÆäËû DBMS ±ÈÆðÀ´ÈçºÎ£¿

          \r
-           ÆÀ¼ÛÈí¼þÓкü¸ÖÖ·½·¨£ºÌØÐÔ£¬ÐÔÄÜ£¬¿É¿¿ÐÔ£¬Ö§³ÖºÍ¼Û¸ñ¡£\r
-           
\r
-               
ÌØÐÔ\r
-                   
\r
-                       PostgreSQL ÓµÓдóÐÍÉÌÓàDBMS           \r
-                       Àï´ó¶àÊýÌØÐÔ£¬ÀýÈ磺ÊÂÎñ£¬×Ó²éѯ£¬´¥·¢Æ÷£¬ÊÓͼ£¬Íâ¼ü²Î¿¼ÍêÕûÐԺ͸´ÔÓµÄËøµÈ¡£ÎÒÃÇ»¹ÓÐһЩËüÃÇûÓеÄÌØÐÔ£¬ÈçÓû§¶¨ÒåÀàÐÍ£¬¼Ì³Ð£¬¹æÔòºÍ¶à°æ±¾²¢ÐпØÖÆÒÔ¼õÉÙËøµÄÕùÓõȡ£\r
-                       
\r
-                         
ÐÔÄÜ\r
-                           
\r
-                               PostgreSQL ºÍÆäËûÉÌÓúͿªÔ´µÄÊý¾Ý¿â¾ßÓÐÀàËÆµÄÐÔÄÜ¡£¶ÔijЩ´¦ÀíËü±È½Ï¿ì£¬¶ÔÆäËûһЩ´¦ÀíËü±È½ÏÂý¡£Óë MySQL »ò¸üÇá±ãµÄÊý¾Ý¿âϵͳ±È½Ï£¬ÎÒÃÇÔÚ           \r
-                               insert/update Ê±Âý£¬ÒòΪÎÒÃÇÓÐÊÂÎñ´¦Àí¡£µ±È» MySQL ²»¾ßÓÐÎÒÃÇÔÚÉÏÃæµÄÌØÐÔ ¶ÎÀï¸ø³öµÄÈκÎÌØÐÔ¡£ÎÒÃǵÄÖ÷Òª·½ÏòÊǿɿ¿ÐÔºÍÌØÐÔ£¬¾¡¹ÜÎÒÃÇÔÚÿ´Î·¢²¼Ê±²»¶ÏµØ¸Ä½øÐÔÄÜ¡£ÓÐÒ»¸öºÜÓÐȤµÄÍøÒ³±È½ÏÁË           \r
-                               PostgreSQL ºÍ MySQL http://openacs.org/why-not-mysql.html¡£
        \r
-                               
¿É¿¿ÐÔ\r
-                                   
\r
-                                       ÎÒÃÇÖªµÀ DBMS ±ØÐëÊǿɿ¿µÄ£¬·ñÔòËü¾ÍÒ»µãÓö¼Ã»ÓС£ÎÒÃÇŬÁ¦×öµ½·¢²¼¾­¹ýÈÏÕæ²âÊԵģ¬Îȶ¨µÄ³ô³æ×îÉٵĴúÂ롣ÿ¸ö°æ±¾ÖÁÉÙÓÐÒ»¸öÔµĠbeta           \r
-                                       ²âÊÔ£¬²¢ÇÒÎÒÃǵķ¢²¼ÀúÊ·ÏÔʾÎÒÃÇ¿ÉÒÔÌṩÎȶ¨µÄ£¬Àι̵ģ¬¿ÉÓÃÓÚÉú²úʹÓõİ汾¡£ÎÒÃÇÏàÐÅÔÚÕâ·½ÃæÎÒÃÇÓëÆäËûµÄÊý¾Ý¿âÈí¼þÊÇÏ൱µÄ¡£\r
-                                       
\r
-                                         
Ö§³Ö\r
-                                           
\r
-                                               ÎÒÃǵÄÓʼþÁбíÌṩһ¸ö·Ç³£´óµÄ¿ª·¢ÈËÔ±ºÍÓû§µÄ×éÒÔ°ïÖú½â¾öËùÅöµ½µÄÈκÎÎÊÌâ¡£ÎÒÃDz»Äܱ£Ö¤¿Ï¶¨Äܽâ¾öÎÊÌ⣬Ïà±È֮ϣ¬ÉÌÓàDBMS           \r
-                                               Ò²²¢²»ÊÇ×ÜÄܹ»Ìṩ½â¾ö·½·¨¡£Ö±½ÓÓ뿪·¢ÈËÔ±£¬Óû§Èº£¬ÊÖ²áºÍÔ´³ÌÐò½Ó´¥Áî PostgreSQL µÄÖ§³Ö±ÈÆäËû DBMS           \r
-                                               »¹ÒªºÃ¡£»¹ÓÐһЩÉÌÒµÐÔµÄÔ¤°ü×°µÄÖ§³Ö£¬¿ÉÒÔ¸øÌṩ¸øÄÇЩÐèÒªµÄÈË¡££¨²ÎÔÄÖ§³Ö FAQ Ìõ¿î 1.6 Ð¡½Ú¡££©          \r
-                                               
\r
-                                                 
¼Û¸ñ\r
-                                                   
\r
-                                                       ÎÒÃǶÔÈκÎÓÃ;¶¼Ãâ·Ñ£¬°üÀ¨ÉÌÓúͷÇÉÌÓÃÄ¿µÄ¡£Äã¿ÉÒÔ²»¼ÓÏÞÖÆµØÏòÄãµÄ²úÆ·Àï¼ÓÈëÎÒÃǵĴúÂ룬³ýÁËÄÇЩÎÒÃÇÔÚÉÏÃæµÄ°æÈ¨ÉùÃ÷ÀïÉùÃ÷µÄ BSD ·ç¸ñµÄ°æÈ¨Íâ¡£        \r
-           \r
-        

1.15) ÎÒÓ¦¸ÃÔõÑùÔÞÖú PostgreSQL £¿

        \r
-                                                       

×Ô´Ó1996Ä꿪ʼ£¬PostgreSQL        \r

-                                                        ÒѾ­ÓÐÁËÒ»¸öÓÅÐãµÄ×éÖ¯¡£ÕâЩӦ¸Ã¹é¹¦ÓÚ Marc           \r
-                                                           Fournier£¬ÊÇËû´´½¨Á˲¢ÔÚÕâЩÄêÒ»Ö±¹ÜÀíÕâ¸ö×éÖ¯¡£

\r
-                                                       

¶ÔÓÚÒ»¸ö¿ªÔ´ÏîÄ¿À´Ëµ£¬ÖÊÁ¿»ù´¡ÉèÊ©ÊǷdz£ÖØÒªµÄ¡£ËüÄÜ·ÀÖ¹³öÏÖÑÏÖØÑÓ³ÙÏîĿǰ½øµÄ»ìÂÒ¡£

\r
-                                                       

ÏÔÈ»£¬Õâ¸ö×éÖ¯µÄÔËת³É±¾²»·Æ¡£Î¬³ÖÆäǰ½øÓи÷ÖÖÔ¶ȵġ¢Ò»´ÎÐԵĿªÖ§¡£Èç¹ûÄã»òÕßÄãµÄ¹«Ë¾ÄܽøÐоèÔùÒÔÖ§³ÖÕâÏîÊÂÒµ£¬Çë·ÃÎÊ           \r

-                                                               http://store.pgsql.com/shopping/ ½øÐоèÔù¡£

          \r
-                                                       

ËäÈ»¸ÃÍøÒ³Ìá¼°ÁË PostgreSQL ¹«Ë¾£¬ÕâЩ¾èÔù½«½öÓÃÓÚÖ§³Ö PostgreSQL           \r

-                                                           ÏîÄ¿£¬²¢²»»áÓÃÓÚ×ÊÖúû¸öÌØ¶¨µÄ¹«Ë¾¡£Èç¹ûÄãÔ¸Ò⣬Ҳ¿ÉÒÔÓʼÄ֧Ʊµ½ÁªÏµµØÖ·¡£

\r
-           
\r
-           
\r
-               

Óû§¿Í»§¶ËÎÊÌâ

\r
-           \r
-           

2.1) ÓРPostgreSQL µÄ ODBC Çý¶¯Ã´£¿

          \r
-       ÓÐÁ½¸ö ODBC Çý¶¯¿ÉÒÔ»ñµÃ£¬PsqlODBC ºÍ OpenLink ODBC.

¿ÉÒÔÔÚhttp://gborg.postgresql.org/project/psqlodbc/projdisplay.php          \r

-       ÏÂÔØ PsqlODBC ¡£          \r
-       

OpenLink ODBC ¿ÉÒÔ´Ó http://www.openlinksw.com/          \r

-       »ñµÃ¡£ËüÓëËûÃǵıê×¼ ODBC ¿Í»§¶ËÈí¼þ¼æÈÝ£¬Òò¶øÄã¿ÉÒÔÔÚÈκÎËûÃÇÖ§³ÖµÄ¿Í»§¶Ëƽ̨£¨Win, Mac, Unix, VMS£©ÉÏʹÓàPostgreSQL           \r
-       ODBC¡£\r
-       

ËûÃÇ¿ÉÄܽ«Õâ¸ö²úÆ·ÏúÊÛ¸øÄÇЩÐèÒªÉÌÒµÖ§³ÖµÄÓû§£¬µ«ÊÇ×ÜÊÇÓÐÒ»¸ö freeware £¨×ÔÓÉÈí¼þ£©µÄ°æ±¾¿ÉÒԵõ½¡£ÇëѯÎÊ           \r

-               [email protected]¡£\r
-           

2.2) ÓÐʲô¹¤¾ß¿ÉÒÔ°Ñ PostgreSQL ÓÃÓÚ Web Ò³Ã棿

          \r
-           Ò»¸ö½éÉÜÒÔÊý¾Ý¿âΪºǫ́µÄͦ²»´íµÄ Õ¾µãÊÇ£ºhttp://www.webreview.com          \r
-       ¡£          \r
-       

¶ÔÓÚ Web ¼¯³É£¬PHP ÊÇÒ»¸ö¼«ºÃµÄ½Ó¿Ú¡£ËüÔÚ£ºhttp://www.php.net/          \r

-       ¡£          \r
-       

¶ÔÓÚ¸´ÔÓµÄÈÎÎñ£¬ºÜ¶àÈ˲ÉÓàPerl ½Ó¿ÚºÍ CGI.pm »ò mod_perl ¡£          \r

-           

2.3) PostgreSQL ÓµÓÐͼÐÎÓû§½çÃæÂð£¿

         \r
-           Êǵġ£Óм¸¸öÊÊÓÃÓÚ PostgreSQL µÄͼÐνӿڡ£°üÀ¨PgAccess£¨http://www.pgaccess.com)£¬PgAdmin           \r
-           II £¨http://www.pgadmin.org£¬½öÊÊÓÃÓÚWin32£©£¬           \r
-           RHDB Admin (http://sources.redhat.com/rhdb/£©           \r
-           ÒÔ¼° Rekall £¨http://www.thekompany.com/products/rekall/£¬           \r
-           ×¨ÓеÄ/proprietary)¡£»¹ÓÐPHPPgAdmin £¨http://phppgadmin.sourceforge.net/£©          \r
-       £¬Ò»¸ö»ùÓÚ web µÄ PostgreSQL ·ÃÎʽӿڡ£          \r
-       

ÎÒÃÇÓÐÒ»¸ö²»´íµÄͼÐÎÓû§½çÃæ£¬³ÆÎª PgAccess £¬ËüÒ²¿ÉÒÔÓÃ×÷±¨±íÉú³ÉÆ÷¡£ÍøÒ³ÊÇ http://www.pgaccess.org/¡£

          \r
-       

2.4) ÎÒÃÇ¿ÉÒÔÓÃʲôÓïÑԺ͠PostgreSQL ´ò½»µÀ£¿

          \r
-       

´ó¶àÊýÁ÷Ðеıà³ÌÓïÑÔ¶¼ÓзÃÎÊ PostgreSQL µÄ½Ó¿Ú¡£Çë¼ì²é±à³ÌÓïÑÔµÄÀ©Õ¹Ä£¿éÁÐ±í¡£

          \r
-       

PostgreSQL ·¢²¼°üÖаüº¬ÁËÒÔϽӿڣº

          \r
-       
    \r
-           
  • \r
  • -           C (libpq)          \r
    -           
  • \r
  • -           Embedded C (ecpg)\r
    -           
  • \r
  • -           Java (jdbc)\r
    -           
  • \r
  • -           Python (PyGreSQL)\r
    -           
  • \r
  • -               TCL (libpgtcl)\r
    -       \r
    -       

    ÆäËûµÄ½Ó¿ÚÔÚ http://gborg.postgresql.org ÉϵĠDrivers/Interfaces          \r

    -           Ð¡½Ú¡£

              \r
    -       
    \r
    -       
    \r
    -           

    ϵͳ¹ÜÀíÎÊÌâ

    \r
    -       \r
    -       

    3.1) ÎÒÔõÑùÄܰѠPostgreSQL ×°ÔÚ /usr/local/pgsql ÒÔÍâµÄµØ·½£¿

              \r
    -       

    ÔÚÔËÐРconfigure Ê±¼ÓÉÏ --prefix Ñ¡Ïî¡£

              \r
    -       

    3.2) µ±ÎÒÔËÐРpostmaster Ê±£¬³öÏÖ Bad System Call£¨ÏµÍ³µ÷ÓÃ´í£©»ò Core           \r

    -           Dumped ´íÎó¡£ÎªÊ²Ã´£¿          \r
    -       

    Õâ¿ÉÄÜÊÇºÜ¶à·½ÃæµÄÎÊÌ⣬ÇëÏȼì²é²Ù×÷ϵͳºËÐÄÊÇ·ñÖ§³Ö System V À©Õ¹¡£PostgreSQL ÐèÒªÄÚºËÖ§³Ö¹²ÏíÄÚ´æºÍÐźŵơ£

              \r
    -       

    3.3) µ±ÎÒÊÔͼÔËÐРpostmaster Ê±£¬³öÏÖ IpcMemoryCreate ´íÎó¡£ÎªÊ²Ã´£¿

              \r
    -       ÄãҪôÊÇûÓÐÔÚÄÚºËÀïÕýÈ·ÅäÖù²ÏíÄڴ棬ҪôÊÇÄãÐèÒªÀ©´óÄãµÄÄں˵ĿÉÓù²ÏíÄÚ´æ¡£ÐèÒªµÄ¹²ÏíÄÚ´æ¾ßÌåµÄÊýÁ¿È¡¾öÓÚÄãµÄÌåϵ½á¹¹ºÍÄãÅäÖÃÄãµÄ postmaster           \r
    -       ÔËÐÐʱʹÓõĻº³åÇøºÍºó¶Ë½ø³ÌÊýÄ¿¡£¶Ô´ó¶àÊýϵͳ£¬Ê¹ÓÃȱʡ»º³åÇøºÍ½ø³ÌÊýĿʱ£¬Äã×îÉÙÐèÒª~1MB¡£Óйع²ÏíÄÚ´æºÍÐźŵƵÄÏêϸÐÅÏ¢Çë²Î¿¼           \r
    -           PostgreSQL Administrator's Guide ¡£          \r
    -       

    3.4) µ±ÎÒÊÔͼÔËÐРpostmaster Ê±£¬³öÏÖ IpcSemaphoreCreate ´íÎó¡£ÎªÊ²Ã´£¿

              \r
    -       

    Èç¹û´íÎóÐÅÏ¢ÊÇ IpcSemaphoreCreate: semget failed (No space left on device)£¬ÄÇôԭÒòÊÇÄãµÄÄÚºËûÓÐÅäÖÃ×ã¹»µÄÐźŵÆ×ÊÔ´¡£Postgres           \r

    -           µÄÿ¸öDZÔڵĺǫ́½ø³Ì¶¼ÐèÒªÒ»¸öÐźŵơ£Ò»¸öÁÙʱµÄ½â¾ö·½·¨ÊÇÒԱȽÏÉٵĺǫ́½ø³ÌÊý£¨²ÎÊý£©Æô¶¯ postmaster¡£Ê¹Óÿª¹Ø -N ´øÒ»¸öÉÙÓÚȱʡֵ           \r
    -           32 µÄ²ÎÊýÔËÐРpostmaster¡£¸ü³¤¾ÃµÄ½â¾ö·½·¨ÊǼӴóÄãµÄÄں˵ĠSEMMNS ºÍ           \r
    -               SEMMNI ²ÎÊý¡£

              \r
    -       

    ÔÚÊý¾Ý¿â·ÃÎÊÁ¿ºÜ´óʱ£¬ÐźŵƲ»¿ÉÓÿÉÄܵ¼ÖÂϵͳ±ÀÀ£¡£

    \r
    -       

    Èç¹û´íÎóÐÅÏ¢ÊÇÆäËûµÄʲô¶«Î÷£¬Äã¿ÉÄܾ͸ù±¾Ã»ÓÐÔÚÄÚºËÀïÃæÅäÖÃÐźŵÆÖ§³Ö¡£Óйع²ÏíÄÚ´æºÍÐźŵƵÄÏêϸÐÅÏ¢Çë²Î¿¼           \r

    -               PostgreSQL Administrator's Guide ¡£

    3.5)           \r

    -               ÎÒÈçºÎ¿ØÖÆÀ´×ÔÆäËûÖ÷»úµÄÁ¬½Ó£¿\r
    -       

    ȱʡʱ£¬PostgreSQL Ö»ÔÊÐíͨ¹ý unix ÓòÌ×½Ó×ÖÀ´×Ô±¾»úµÄÁ¬½Ó¡£³ý·ÇÄãʹÓà-i ¿ª¹ØÆô¶¯ postmaster£¬²¢ÇÒͨ¹ý¶ÔÓ¦µÄ±à¼­          \r

    -           $PGDATA/pg_hba.conf Îļþ´ò¿ªÁËÖ÷»úΪ»ù´¡£¨ host-based £©µÄÈÏÖ¤£¬·ñÔòÆäËû»úÆ÷ÊDz»ÄÜÓëÄãµÄ»úÆ÷Á¬½ÓµÄ¡£ÕâÑù½«ÔÊÐí           \r
    -           TCP/IP Á¬½Ó¡£

              \r
    -       

    3.6) ÎÒÔõÑùµ÷ÕûÊý¾Ý¿âÒýÇæÒÔ»ñµÃ¸üºÃµÄÐÔÄÜ£¿

              \r
    -       

    µ±È»£¬Ë÷Òý¿ÉÒÔ¼ÓËÙ²éѯ¡£EXPLAIN ÃüÁîÔÊÐíÄã¹Û²ì PostgreSQL           \r

    -           ÈçºÎ½âÊÍÄãµÄ²éѯ£¬ÒÔ¼°Ê¹ÓÃÁËÄÄЩË÷Òý¡£

    \r
    -       

    Èç¹ûÄãÕý´¦ÀíÒ»¶Ñ INSERT£¬¿¼ÂÇʹÓàCOPY ÃüÁîÒÔ´óÅúÁ¿µÄ·½Ê½½øÐС£ÕâÑù×ö±Èµ¥¶ÀµÄÒ»¸ö¸ö          \r

    -           INSERT ¿ìµÃ¶à¡£Æä´Î£¬Ã»Óд¦ÓÚ BEGIN WORK/COMMIT          \r
    -       ÊÂÎñ¿éÖ®¼äµÄÓï¾ä±»ÈÏΪÊôÓÚͬһ¸öÊÂÎñ¡£ÊÔ×ÅÔÚÒ»¸öÊÂÎñ¿éÀïÃæ´¦Àí¸ü¶àµÄÓï¾ä¡£ÕâÑù¿ÉÒÔ¼õÉÙÊÂÎñ´øÀ´µÄ¶îÍ⿪Ïú¡£Í¬Ñù£¬ÔÚ×ö´óÁ¿µÄÊý¾Ý¸Ä±äʱ¿¼ÂÇɾ³ýºÍÖØ½¨Ë÷Òý¡£          \r
    -       

    »¹Óм¸¸öµ÷½ÚµÄÑ¡Ïî¿ÉÒÔʹÓá£Äã¿ÉÒÔͨ¹ý´ø -o -F Ñ¡ÏîÆô¶¯ postmaster À´½ûÖ¹ fsync()¡£ÕâÑù½«±ÜÃâÿ´ÎÊÂÎñºóµ÷Óàfsync()          \r

    -           \r
    -       °ÑÊý¾Ýˢе½´ÅÅÌÉÏ¡£\r
    -       

    \r

    -       Ä㻹¿ÉÒÔʹÓàpostmaster -B Ñ¡ÏîÔö¼Óºó¶Ë½ø³ÌʹÓõĹ²ÏíÄڴ滺³åµÄÊýÄ¿¡£Èç¹ûÄã°ÑÕâ¸ö²ÎÊýÉèÖõÃÌ«´ó£¬postmaster           \r
    -       ¿ÉÄÜÎÞ·¨Æô¶¯£¬ÒòΪÄãÒѾ­³¬¹ýÁËÄãµÄÄÚºËÔÚ¹²ÏíÄÚ´æ¿Õ¼äÉϵÄÏÞÖÆ¡£Ã¿¸ö»º³åÇøÊÇ 8K ²¢ÇÒȱʡ 64 ¸ö»º³åÇø¡£

              \r

    -       Ä㻹¿ÉÒÔʹÓúǫ́½ø³ÌµÄ -S Ñ¡ÏîÀ´Ôö¼Óÿ¸öºǫ́½ø³ÌÓÃÓÚÁÙʱÅÅÐòÓõÄ×î´óÄÚ´æÊýÁ¿¡£-S ÖµÊÇÒÔK×ֽڼƵģ¬È±Ê¡ÊÇ 512 £¨Ò²¾ÍÊÇ˵£¬512K£©¡£

    Ä㻹¿ÉÒÔʹÓà          \r

    -               CLUSTER ÃüÁîÀ´°Ñ±íÀïµÄÊý¾Ý°´ÕÕij¸öË÷Òý½øÐоۼ¯´æ·Å¡£²ÎÔÄ CLUSTER µÄÊÖ²áÒ³»ñÈ¡¸ü¶àϸ½Ú¡£          \r
    -           

    3.7) PostgreSQL Àï¿ÉÒÔ»ñµÃʲôÑùµÄµ÷ÊÔÌØÐÔ£¿

              \r
    -       

    PostgreSQL Óм¸¸öÌØÐÔÓÃÓÚ±¨¸æ×´Ì¬ÐÅÏ¢£¬ÕâЩÐÅÏ¢¿ÉÄܶԵ÷ÊÔÓÃ;ºÜÓаïÖú¡£

              \r
    -       

    Ê×ÏÈ£¬Í¨¹ý¸½´ø --enable-cassert Ñ¡ÏîÔËÐРconfigure£¬Óкܶà assert()          \r

    -       ¼à¿Øºǫ́½ø³ÌºÍÔÚ·¢ÉúÄ³Ð©Î´ÔøÔ¤ÁϵÄÏÖÏóʱֹͣ³ÌÐòÔËÐС£          \r
    -       

    postmaster ºÍ postgres ¶¼ÓÐһЩ¿ÉÓõÄÑ¡Ïî¡£Ê×ÏÈ£¬µ±ÄãÆô¶¯ postmaster           \r

    -           Ê±£¬È·±£Äã°Ñ±ê×¼Êä³öºÍ±ê×¼´íÎóÊä³ö¶¨Ïòµ½ÁËÒ»¸öÈÕÖ¾ÎļþÀïÈ¥ÁË£¬Ïó£º\r
    -           
            cd /usr/local/pgsql\r
    -        ./bin/postmaster >server.log 2>&1 &\r
    -       ÕâÑù½«ÔÚ PostgreSQL ¶¥¼¶Ä¿Â¼ÏÂÊä³öÒ»¸ö server.log Îļþ¡£Õâ¸öÎļþ°üº¬·þÎñÆ÷Åöµ½µÄÎÊÌâºÍ´íÎóµÄÓÐÓÃÐÅÏ¢¡£postmaster ÓÐÒ»¸ö           \r
    -       -d Ñ¡Ï¸ÃÑ¡ÏîÔÊÐíÎÒÃÇ»ñµÃ¸ü¶àµÄϸ½Ú»ã±¨¡£-d Ñ¡Ïî½ÓÊÜÒ»¸öÊý×Ö±êÃ÷µ÷ÊÔ¼¶±ð¡£ÐèÒª¾¯¸æµÄÊǸߵĵ÷ÊÔ¼¶±ð¿ÉÄÜ»áÉú³É¾Þ´óµÄÈÕÖ¾Îļþ¡£

    Èç¹û postmaster           \r

    -           Ã»ÓÐÔËÐУ¬Äã¿ÉÒÔÖ±½ÓÔÚÃüÁîÐÐÉÏÆô¶¯ postgres ºǫ́½ø³Ì£¬È»ºóÖ±½Ó¼üÈë SQL Óï¾ä¡£ÎÒÃÇÖ»          \r
    -       ÍƼöÔÚµ÷ÊÔµÄʱºòÕâô¸É¡£Çë×¢ÒâÕâʱÓû»ÐÐÜÞ¶ø²»ÊǷֺűíʾÓï¾ä½áβ¡£Èç¹ûÄã´ø×ŵ÷ÊÔ·ûºÅ±àÒ룬Äã¿ÉÒÔʹÓÃÒ»¸öµ÷ÊÔÆ÷¹Û¿´·¢ÉúÁËʲôÊÂÇé¡£ÒòΪºǫ́½ø³ÌûÓÐÓÉ           \r
    -       postmaster Æô¶¯µÄ£¬Ëü²»ÊǺÍʵ¼ÊµÄÔËÐл·¾³Ò»Ö£¬¶øÇÒËø¶¨/ºǫ́½»»¥ÎÊÌâ¿ÉÄܲ»ÄÜÖØÏÖ¡£          \r
    -       

    Èç¹û postmaster ÒѾ­ÔËÐУ¬¿ÉÔÚÒ»¸ö´°¿ÚÖÐÆô¶¯ psql£¬È»ºóÕÒ³ö psql ¶ÔÓ¦µÄ postgres ½ø³ÌµÄ          \r

    -           PID¡£Ê¹ÓÃÒ»¸öµ÷ÊÔÆ÷¸½×ÅÔÚÕâ¸ö postgres PID          \r
    -           ÉÏ¡£Äã¿ÉÒÔÔÚµ÷ÊÔÆ÷ÀïÉèÖöϵ㲢ÇÒ´Ó psql ÀïÖ´Ðвéѯ¡£Èç¹ûÄãÔÚµ÷ÊÔ postgres µÄÆô¶¯£¬Äã¿ÉÒÔÉèÖà          \r
    -           PGOPTIONS="-W n"£¬È»ºóÆô¶¯ psql¡£ÕâÑù½«µ¼ÖÂÆô¶¯ÑÓ³Ù n          \r
    -       Ã룬ÕâÑùÄã¾Í¿ÉÒÔ¸½¼ÓÒ»¸öµ÷ÊÔÆ÷²¢ÇÒ¸ú×ÙÆô¶¯Ë³ÐòµÄ¹ý³Ì¡£          \r
    -       

    \r

    -       postgres ³ÌÐòÓР-s£¬-A£¬ºÍ -t Ñ¡Ïî¿ÉÄÜÔÚµ÷ÊÔºÍÐÔÄܲâÁ¿µÄʱºò·Ç³£ÓÐÓᣠ         \r
    -       

    Ä㻹¿ÉÒÔ´ø profiling Ö§³Ö±àÒëºǫ́£¬ÒÔ±ã¹Û²ìÄÄЩº¯ÊýÕ¼ÓõÄÖ´ÐÐʱ¼ä½Ï¶à¡£profile Îļþ½«·ÅÔÚ pgsql/data/base/dbname           \r

    -           Ä¿Â¼Ï¡£¿Í»§¶Ë profile Îļþ½«·ÅÔÚ¿Í»§¶Ëµ±Ç°Ä¿Â¼Ï¡£ÔÚ Linux ÏÂÖ§³Ö profiling ÒªÔÚ±àÒëʱ¼ÓÉÏ-DLINUX_PROFILE           \r
    -           ¡£

    3.8)        \r

    -        ÎªÊ²Ã´ÔÚÊÔͼÁ¬½ÓµÇ¼ʱÊÕµ½¡°Sorry, too many clients¡±ÏûÏ¢£¿         \r
    -       

    ÄãÐèÒªÔö´ó postmaster Æô¶¯Ê±Ö§³ÖµÄ²¢·¢ºǫ́½ø³ÌÊý¡£

              \r
    -       

    ȱʡÏÞÖÆÊÇ 32 ½ø³Ì¡£Äã¿ÉÒÔͨ¹ý´ø×ÅÊʵ±µÄ -N Öµ¿ª¹ØÆô¶¯ postmaster Ôö¼ÓÕâ¸öÊýÄ¿¡£»òÕßÐ޸Ġpostgresql.conf          \r

    -       Îļþ¡£          \r
    -       

    ҪעÒâÈç¹ûÄã°Ñ -N ÉèÖÃΪ´óÓÚ 32£¬Äã±ØÐëͬÑùÔö´ó -B£¬³¬¹ýËüȱʡµÄ 64£»-B ±ØÐë×îÉÙÊÇ -N           \r

    -           µÄÁ½±¶£¬¶øÇÒΪÁ˸üºÃµÄÐÔÄÜ¿ÉÄÜÒª±ÈÄǸöÊý×ÖÒª´ó¡£¶ÔÓÚ´óÊýÄ¿µÄºó¶Ë½ø³Ì£¬Äã¿ÉÄÜ»¹»á·¢ÏÖÄ㻹ÐèÒªÔö¼ÓÐí¶à Unix           \r
    -           ÄÚºËÅäÖòÎÊýÖµ¡£Òª¼ì²éµÄ¶«Î÷°üÀ¨¹²ÏíÄÚ´æ¿éµÄ×î´ó³ß´ç£¬SHMMAX£¬ÐźŵƵÄ×î´óÊýÄ¿£¬SEMMNS\r
    -           ºÍ SEMMNI£¬×î´óµÄ½ø³ÌÊý£¬NPROC£¬µ¥Óû§×î´ó½ø³ÌÊý£¬MAXUPRC£¬ÒÔ¼°´ò¿ªÎļþµÄ×î´óÊýÄ¿£¬NFILE          \r
    -           ºÍ NINODE          \r
    -       ¡£Postgres ¶ÔÔÊÐíµÄºǫ́½ø³ÌÊýÓÐÏÞÖÆµÄÔ­ÒòÊÇΪÁËÈ·±£ÄãµÄϵͳ²»»áÓùâ×ÊÔ´¡£

    ÔÚ Postgres ÔçÓÚ 6.5 µÄ°æ±¾£¬×î´óºǫ́½ø³ÌÊýȱʡÊÇ           \r

    -           64£¬²¢ÇÒ¶ÔËüµÄÐÞ¸ÄÊ×ÏÈÐèÒªÐ޸Ġinclude/storage/sinvaladt.h ÀïµÄ MaxBackendId ³£Á¿£¬È»ºóÖØÐ           \r
    -           BUILD¡£\r
    -           

    3.9) pgsql_tmp Ä¿Â¼Àï¶¼ÓÐЩʲô£¿

              \r
    -       

    ¸ÃĿ¼Ï±£´æÁ˲éѯִÐÐÆ÷Éú³ÉµÄÁÙʱÎļþ¡£ÀýÈ磬Èç¹ûÐèҪΪÂú×ã ORDER BY Ìõ¼þ×öÅÅÐò£¬²¢ÇÒÅÅÐòÐèÒª±Èºǫ́µÄ           \r

    -           -S ²ÎÊý¸ø³öµÄ¸ü¶àµÄ¿Õ¼ä£¬ÄÇô¾Í»á´´½¨Ò»¸öÁÙʱÎļþ±£´æ¶à³öÀ´µÄÊý¾Ý¡£

              \r
    -       

    ÁÙʱÎļþÓ¦¸Ã×Ô¶¯É¾³ý£¬²»¹ýÈç¹ûÔÚÅÅÐò¹ý³ÌÖкǫ́±ÀÀ£Á˾ͿÉÄÜÁôÏÂÀ´¡£Í£Ö¹²¢ÖØÆð postmaster ½«»áɾ³ýÕâЩÎļþ¡£          \r

    -           
    \r
    -           

    3.10) ÎªÊ²Ã´ÒªÔÚÉý¼¶ PostgreSQL ·¢²¼°æ±¾Ê±×ö dump ºÍ restore £¿

              \r
    -       

    \r

    -           PostgreSQL ¿ª·¢×é¶Ôÿ´ÎСµÄÉý¼¶½ö×öÁ˽ÏÉÙµÄÐÞ¸Ä,Òò´Ë´Ó 7.2 Éý¼¶µ½ 7.2.1 ²»ÐèÒª dump ºÍ restore¡£µ«ÊÇÖ÷ÒªµÄÉý¼¶£¨ÀýÈç´Ó           \r
    -           7.2 µ½ 7.3£©Í¨³£»áÐÞ¸Äϵͳ±íºÍÊý¾Ý±íµÄÄÚ²¿¸ñʽ¡£ÕâЩ±ä»¯Ò»°ã±È½Ï¸´ÔÓ£¬Òò´ËÎÒÃDz»Î¬Êý¾ÝÎļþµÄÏòºó¼æÈÝ¡£dump           \r
    -           ½«Êý¾Ý°´ÕÕͨÓõĸñʽÊä³ö£¬Ëæºó¿ÉÒÔ±»ÖØÐ¼ÓÔØ²¢Ê¹ÓÃеÄÄÚ²¿¸ñʽ¡£

    \r
    -       

    \r

    -           ´ÅÅÌÎļþ¸ñʽûÓб仯µÄÉý¼¶£¬¿ÉÒÔÓàpg_upgrade ½Å±¾£¬¶ø²»ÐèÒª×ö dump ºÍ restor¡£·¢²¼ËµÃ÷script »áÖ¸Ã÷ pg_upgrade          \r
    -           ¶Ô¸Ã´ÎÉý¼¶ÊÇ·ñ¿ÉÓá£

              \r
    -       

    \r

    -           
    \r
    -           
    \r
    -               

    ²Ù×÷ÎÊÌâ

    \r
    -           \r
    -           

    4.1)        \r

    -            ¶þ½øÖÆÓαêºÍÆÕͨÓαêÖ®¼äµÄÇø±ðÊÇʲô£¿  \r
    -           ²ÎÔÄ DECLARE ÊÖ²áÒ³»ñÈ¡ÐÅÏ¢¡£          \r
    -           

    4.2)ÈçºÎÖ» SELECT Ò»¸ö²éѯ½á¹ûµÄÍ·¼¸ÐУ¿

              \r
    -           ²ÎÔÄ FETCH          \r
    -       ÊÖ²áÒ³£¬»òÕßʹÓàSELECT ... LIMIT....          \r
    -       

    ¼´Ê¹ÄãÖ»ÐèÒª¿ªÍ·µÄ¼¸ÐУ¬Ò²»áÉæ¼°µ½Õû¸ö²éѯ¡£ÊÔ×ÅʹÓôøÓРORDER BY µÄ²éѯ¡£Èç¹ûÓÐÒ»¸öË÷ÒýÓë           \r

    -               ORDER BY Æ¥Å䣬PostgreSQL ¿ÉÄܾÍÖ»´¦ÀíÒªÇóµÄÍ·¼¸Ìõ¼Ç¼£¬·ñÔò½«¶ÔÕû¸ö²éѯ½øÐд¦ÀíÖ±µ½Éú³ÉÐèÒªµÄÐС£          \r
    -           

    4.3) ÎÒÈçºÎ»ñȡһ¸ö±íµÄÁÐ±í£¬»òÕßÊÇÆäËûÎÒÄÜÔÚ psql Àï¿´µ½µÄ¶«Î÷£¿

              \r
    -           Äã¿ÉÒÔÔĶÁ psql µÄÔ´´úÂëÎļþpgsql/src/bin/psql/describe.c ¡£Ëü°üÀ¨ÎªÉú³É psql           \r
    -           µÄ·´Ð±¸ÜÃüÁîµÄÊä³öµÄ SQL ÃüÁî¡£Ä㻹¿ÉÒÔ´ø -E Ñ¡ÏîÆô¶¯ psql£¬ÕâÑùËü½«´òÓ¡³öÖ´ÐÐÄã¸ø³öµÄÃüÁîËùÓõIJéѯ¡£          \r
    -           

    4.4) ÔõÑù´Ó±íÀïÃæÉ¾³ýÒ»ÁУ¿

              \r
    -       

    7.3 ÀïÔö¼ÓÁË ALTER TABLE DROP COLUMN£¬ÒÔÖ§³Ö´ËÏÄÜ¡£ÔÚÒÔǰµÄ°æ±¾ÖУ¬¿ÉÒÔÕâÑù×ö£º

              \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
    -       

    4.5) Ò»ÐУ¬Ò»¸ö±í£¬Ò»¸ö¿âµÄ×î´ó³ß´çÊǶàÉÙ£¿

              \r
    -       ÏÂÃæÊÇһЩÏÞÖÆ£º
        Ò»¸öÊý¾Ý¿â×î´ó³ß´ç£¿   ÎÞÏÞÖÆ£¨´æÔÚ 1TB µÄÊý¾Ý¿â£©\r
    -    Ò»¸ö±íµÄ×î´ó³ß´ç£¿    16TB\r
    -    Ò»ÐеÄ×î´ó³ß´ç£¿      1.6TB\r
    -     Ò»¸ö×ֶεÄ×î´ó³ß´ç?   1GB\r
    -    Ò»¸ö±íÀï×î´óÐÐÊý£¿     ÎÞÏÞÖÆ\r
    -    Ò»¸ö±íÀï×î´óÁÐÊý£¿     ¸úÁÐÀàÐÍÓйØ,250-1600\r
    -    Ò»¸ö±íÀïµÄ×î´óË÷ÒýÊýÁ¿£¿ÎÞÏÞÖÆ\r
    -       µ±È»£¬Êµ¼ÊÉÏûÓÐÕæÕýµÄÎÞÏÞÖÆ£¬»¹ÊÇÒªÊÜ¿ÉÓôÅÅ̿ռ䡢¿ÉÓÃÄÚ´æ/½»»»ÇøµÄÖÆÔ¼¡£\r
    -       

    \r

    -       ±íµÄ×î´ó³ß´ç 16 TB ²»ÐèÒª²Ù×÷ϵͳ¶Ô´óÎļþµÄÖ§³Ö¡£´ó±íÓöà¸ö 1        \r
    -        GB µÄÎļþ´æ´¢£¬Òò´ËÎļþϵͳ³ß´çµÄÏÞÖÆÊDz»ÖØÒªµÄ¡£          \r
    -       

    Èç¹ûȱʡµÄ¿é´óСÔö³¤µ½ 32K £¬×î´óµÄ±í³ß´çºÍ×î´óÁÐÊý¿ÉÒÔÔö¼Ó¡£

              \r
    -       

    4.6)´æ´¢Ò»¸öµäÐÍµÄÆ½ÃæÎļþÀïµÄÊý¾ÝÐèÒª¶àÉÙ´ÅÅ̿ռ䣿

    \r
    -       Ò»¸ö Postgres Êý¾Ý¿â×î¶à¿ÉÄÜÐèÒªÏ൱ÓÚÔÚÒ»¸öÆ½ÃæÎļþÀï´æ´¢ÏàͬÊý¾ÝµÄ5±¶µÄ´ÅÅ̿ռ䡣          \r
    -       

    ÀýÈ磬¼ÙÉèÓÐÒ»¸ö 100,000 ÐеÄÎļþ£¬Ã¿ÐÐÓÐÒ»¸öÕûÊýºÍÒ»¸öÎı¾ÃèÊö¡£¼ÙÉèÎı¾´®µÄƽ¾ù³¤¶Èλ20×Ö½Ú¡£Æ½ÃæÎļþÕ¼Óà2.8 MB¡£´æ·ÅÕâЩÊý¾ÝµÄ           \r

    -           PostgreSQL Êý¾Ý¿âÎļþ´óÔ¼ÊÇ 6.4 MB:
         36 ×Ö½Ú: Ã¿ÐеÄÍ·£¨¹À¼ÆÖµ£©\r
    -     24 ×Ö½Ú: Ò»¸öint×ֶκÍÒ»¸öÎı¾ÐÍ×Ö¶Î\r
    -   +  4 ×Ö½Ú: Ò³ÃæÄÚÖ¸ÏòÔª×éµÄÖ¸Õë\r
    -   ----------------------------------------\r
    -     64 ×Ö½ÚÿÐÐ\r
    -\r
    -   PostgreSQL Êý¾ÝÒ³µÄ´óСÊÇ 8192 ×Ö½Ú (8 KB)£¬Ôò£º\r
    -\r
    -   8192 ×Ö½Úÿҳ\r
    -   -------------------   =  128 ÐÐ/Êý¾ÝÒ³£¨ÏòÏÂÈ¡Õû£©\r
    -     64 ×Ö½ÚÿÐÐ\r
    -\r
    -   100000 Êý¾ÝÐÐ\r
    -   --------------------  =  782 Êý¾ÝÒ³£¨ÏòÉÏÈ¡Õû£©\r
    -      128 ÐÐÿҳ\r
    -\r
    -   782 Êý¾ÝÒ³ * 8192 ×Ö½Ú/Ò³  =  6,406,144 ×Ö½Ú£¨6.4 MB£©\r
    -          \r
    -       

    Ë÷Òý²»ÐèÒªÕâô¶àµÄ¶îÍâÏûºÄ£¬µ«Ò²È·Êµ°üÀ¨±»Ë÷ÒýµÄÊý¾Ý£¬Òò´ËËüÃÇÒ²¿ÉÄܴܺó¡£

    \r
    -       

    ¿ÕÖµ´æ·ÅÔÚλͼÖУ¬Òò´ËÕ¼ÓúÜÉٵĿռ䡣

    \r
    -       

    4.7)        \r

    -        ÈçºÎ²é¿´±í¡¢Ë÷Òý¡¢Êý¾Ý¿âÒÔ¼°Óû§µÄ¶¨Ò壿  \r
    -        psql ÓÐÐí¶à·´Ð±¸ÜÃüÁîÓÃÓÚÏÔʾÕâЩÐÅÏ¢¡£Óà\? ¿´¿´¶¼ÓÐÄÄЩ¡£ÒÔ pg_ ´òÍ·µÄϵͳ±íÒ²ÃèÊöÁËÕâЩÐÅÏ¢¡£ psql -l           \r
    -       ¿ÉÒÔÁгöËùÓеÄÊý¾Ý¿â¡£\r
    -       

    Ò²¿ÉÒÔÊÔÊÔÎļþ pgsql/src/tutorial/syscat.source¡£ËüÑÝʾÁËÐí¶à´ÓÊý¾Ý¿âϵͳ±íÀï»ñÈ¡ÐÅÏ¢ÐèÒªµÄ           \r

    -               SELECT¡£\r
    -           

    4.8) ÎҵIJéѯºÜÂý»òÕßûÓÐÀûÓÃË÷Òý¡£ÎªÊ²Ã´£¿

              \r
    -       

    \r

    -       ²¢·Çÿ¸ö²éѯ¶¼»á×Ô¶¯Ê¹ÓÃË÷Òý¡£Ö»ÓÐÔÚ±íµÄ´óС³¬¹ýÒ»¸ö×îСֵ£¬²¢ÇÒ²éѯֻѡÔñ±íÖнÏС±ÈÀýµÄÐÐʱ²ÉÓÃʹÓÃË÷Òý¡£ÕâÊÇÒòΪË÷ÒýɨÃèÒýÆðµÄËæ¼´´ÅÅÌ´æÈ¡¿ÉÄܱÈÖ±½ÓµØ¶ÁÈ¡±í£¨Ë³ÐòɨÃ裩¸üÂý¡£ÎªÁËÅжÏÊÇ·ñʹÓÃË÷Òý£¬PostgreSQL           \r
    -       ±ØÐë»ñµÃÓйرíµÄͳ¼ÆÖµ¡£ÕâЩͳ¼ÆÖµ¿ÉÒÔʹÓàVACUUM ANALYZE£¬»ò ANALYZE           \r
    -       »ñµÃ¡£Ê¹ÓÃͳ¼ÆÖµ£¬ÓÅ»¯Æ÷ÖªµÀ±íÖÐÓжàÉÙÐУ¬¾ÍÄܹ»¸üºÃµØÅжÏÊÇ·ñÀûÓÃË÷Òý¡£Í³¼ÆÖµ¶ÔÈ·¶¨ÓÅ»¯µÄÁ¬½Ó˳ÐòºÍÁ¬½Ó·½·¨Ò²ºÜÓÐÓá£ÔÚ±íµÄÄÚÈÝ·¢Éú±ä»¯Ê±£¬Ó¦¶¨ÆÚ½øÐÐͳ¼ÆÖµµÄ»ñÈ¡¡£\r
    -       

    \r

    -       Ë÷Òýͨ³£²»ÓÃÓÚ ORDER BY »òÖ´ÐÐÁ¬½Ó¡£¶ÔÒ»¸ö´ó±íµÄÒ»´Î˳ÐòɨÃ裬ÔÙ×öÒ»¸öÏÔʽµÄÅÅÐòͨ³£±ÈË÷ÒýɨÃèÒª¿ì¡£          \r
    -       

    µ«ÊÇ£¬ÔÚ LIMIT ºÍ ORDER BY ½áºÏʹÓÃʱ¾­³£»áʹÓÃË÷Òý£¬ÒòΪֻ»á·µ»Ø±íµÄһС²¿·Ö¡£Êµ¼ÊÉÏ£¬ËäÈ» MAX() ºÍ MIN() ²¢²»Ê¹ÓÃË÷Òý£¬Í¨¹ý¶Ô           \r

    -           ORDER BY ºÍ LLIMIT Ê¹ÓÃË÷ÒýÈ¡µÃ×î´óÖµºÍ×îСֵҲÊÇ¿ÉÒԵģº
              \r
    -           
    \r
    -            SELECT col
              \r
    -            FROM tab
              \r
    -            ORDER BY col [ DESC ]
              \r
    -            LIMIT 1;          \r
    -       

    µ±Ê¹ÓÃͨÅä·û²Ù×÷£¬ÀýÈç LIKE »ò ~ Ê±£¬Ë÷ÒýÖ»ÄÜÔÚÌØ¶¨µÄÇé¿öÏÂʹÓ㺠 

    •  ×Ö·û´®µÄ¿ªÊ¼²¿·Ö±ØÐëÊÇÆÕͨ×Ö·û´®£¬Ò²¾ÍÊÇ˵£º
    •    \r
    -          
    • LIKE Ä£Ê½²»ÄÜÒÔ % ´òÍ·¡£
    • ~ £¨ÕýÔò±í´ïʽ£©Ä£Ê½±ØÐëÒÔ ^ ´òÍ·¡£
       \r
    -          
  • ×Ö·û´®²»ÄÜÒÔÆ¥Åä¶à¸ö×Ö·ûµÄģʽÀà´òÍ·£¬ÀýÈç [a-e]¡£
  • ´óСдÎ޹صIJéÕÒ£¬Èç ILIKE ºÍ ~* µÈ²»Ê¹ÓÃË÷Òý¡£µ«¿ÉÒÔÓà4.12 ½ÚÃèÊöµÄº¯ÊýË÷Òý¡£
  • ÔÚ×ö initdb Ê±±ØÐë²ÉÓÃȱʡµÄ±¾µØÉèÖàC locale¡£
  •           \r
    -           

    4.9)        \r

    -            ÎÒÈçºÎ²ÅÄÜ¿´µ½²éѯÓÅ»¯Æ÷ÊÇÔõÑù´¦ÀíÎҵIJéѯµÄ£¿  \r
    -           ²Î¿¼ EXPLAIN ÊÖ²áÒ³¡£          \r
    -           

    4.10) R-tree Ë÷ÒýÊÇʲô£¿

              \r
    -       

    R-tree Ë÷ÒýÓÃÓÚË÷Òý¿Õ¼äÊý¾Ý¡£Ò»¸ö¹þÏ£Ë÷ÒýÎÞ·¨´¦Àí·¶Î§ËÑË÷¡£¶ø B-tree Ë÷ÒýÖ»ÄÜ´¦ÀíһάµÄ·¶Î§ËÑË÷¡£R-tree           \r

    -           Ë÷Òý¿ÉÒÔ´¦Àí¶àάÊý¾Ý¡£ÀýÈ磬Èç¹û¿ÉÒÔÔÚÒ»¸öÀàÐÍΪ point µÄ×Ö¶ÎÉϽ¨Á¢Ò»¸ö R-tree Ë÷Òý£¬ÄÇôϵͳÄܸü¸ßЧµØ»Ø´ðÀàËÆ           \r
    -           ¡°Ñ¡ÔñÔÚÒ»¸ö³¤·½Ðη¶Î§ÄÚµÄËùÓе㡱¡£
    \r
    -           
    \r
    -           ÃèÊö×î³õµÄ R-Tree Éè¼ÆµÄÕýʽÂÛÎÄÊÇ£º
              \r
    -           
    \r
    -           Guttman, A. "R-Trees: A Dynamic Index Structure for Spatial Searching." Proc of           \r
    -           the 1984 ACM SIGMOD Int'l Conf on Mgmt of Data, 45-57.          \r
    -           
    \r
    -           
    \r
    -           Ä㻹¿ÉÒÔÔÚ Stonebraker µÄ¡°Readings in Database Systems¡±ÀïÕÒµ½ÕâÆªÎÄÕ¡£
              \r
    -           
    \r
    -           ÏµÍ³ÄÚÖõĠR-Tree ¿ÉÒÔ´¦Àí¶à±ßÐκͷ½ÐΡ£ÀíÂÛÉÏ˵£¬R-tree ¿ÉÒÔÀ©Õ¹Îª´¦Àí¸ü¶àάÊý¡£²»¹ýÔÚʵ¼ùÉÏ£¬À©Õ¹ R-trees           \r
    -           ÐèÒªÒ»¶¨µÄ¹¤×÷Á¿£¬¶øÎÒÃÇĿǰûÓÐÈçºÎ×öµÄÎĵµ¡£

    4.11)        \r

    -        Ê²Ã´ÊÇ»ùÒò²éѯÓÅ»¯£¨Genetic Query Optimization£©£¿         \r
    -       

    GEQO Ä£¿é²ÉÓûùÒòËã·¨£¨Genetic Algorithm£¬GA£©¼Ó¿ì¶à±íÁ¬½ÓµÄ²éѯÓÅ»¯¡£ËüÔÊÐíͨ¹ý·ÇÇî¾ÙËÑË÷´¦Àí´óµÄÁ¬½Ó²éѯ¡£          \r

    -           

    4.12)        \r

    -            ÎÒÔõÑù×öÕýÔò±í´ïʽËÑË÷ºÍ´óСдÎ޹صÄÕýÔò±í´ïʽËÑË÷£¿ÔõÑùÀûÓÃË÷Òý½øÐдóСдÎÞ¹ØËÑË÷£¿ \r
    -        

    ²Ù×÷·û ~ ´¦ÀíÕýÔò±í´ïʽƥÅ䣬¶ø ~* ´¦Àí´óСдÎ޹صÄÕýÔò±í´ïʽƥÅä¡£´óдЩÎ޹صĠLIKE ±äÖÖ³ÉΪ ILIKE¡£
              \r

    -        
    \r
    -        ´óСдÎ޹صĵÈʽ±È½Ïͨ³£Ð´×ö£º
    \r
    -        
    \r
    -            SELECT *
              \r
    -            FROM tab
              \r
    -            WHERE lower(col) = 'abc';
              \r
    -        
    \r
    -        ÕâÑù½«²»»áʹÓñê×¼µÄË÷Òý¡£µ«ÊÇ¿ÉÒÔ´´½¨Ò»¸ö¿É±»ÀûÓõĺ¯ÊýË÷Òý:
    \r
    -        
    \r
    -            CREATE INDEX tabindex ON tab (lower(col));

             \r
    -        

    4.13) ÔÚÒ»¸ö²éѯÀÎÒÔõÑù¼ì²âÒ»¸ö×Ö¶ÎÊÇ·ñΪ NULL£¿

              \r
    -        

    ÓàIS NULL ºÍ IS NOT NULL ²âÊÔÕâ¸ö×ֶΡ£ 
             \r

    -        

    \r
    -        

    4.14) ¸÷ÖÖ×Ö·ûÀàÐÍÖ®¼äÓÐʲô²»Í¬£¿

              \r
    -        

      ÀàÐÍ                   \r

    -        ÄÚ²¿Ãû³Æ             \r
    -        ËµÃ÷
    \r
    -          --------------------------------------------------
            \r
    -          "char"        char                \r
    -        1¸ö×Ö·û character
              \r
    -          CHAR(#)      bpchar              \r
    -        ¶¨³¤×Ö·û´®£¬Êµ¼ÊÊý¾Ý²»×㶨Ò峤¶Èʱ£¬ÒÔ¿Õ¸ñ²¹Æë
    \r
    -          VARCHAR(#)  varchar     Ö¸¶¨ÁË×î´ó³¤¶È£¬±ä³¤×Ö·û´®£¬²»×㶨Ò峤¶ÈµÄ²¿·Ö²»²¹Æë
             \r
    -          TEXT           text                \r
    -        ´®³¤¶È½öÊÜÐеÄ×î´ó³¤¶ÈÏÞÖÆ
    \r
    -          BYTEA          bytea                \r
    -        ±ä³¤×Ö½ÚÐòÁУ¨±ä³¤µÄ¶þ½øÖÆÊý¾Ý£©
    \r
    -        
    \r
    -        ÔÚϵͳ±íºÍÔÚһЩ´íÎóÐÅÏ¢ÀïÄ㽫¿´µ½ÄÚ²¿Ãû³Æ¡£ 
    \r
    -        
    \r
    -        ÉÏÃæ×îºóËÄÖÖÀàÐÍÊÇ"varlena"£¨±ä³¤£©ÀàÐÍ£¨Ò²¾ÍÊÇ˵£¬¿ªÍ·µÄËĸö×Ö½ÚÊdz¤¶È£¬ºóÃæ²ÅÊÇÊý¾Ý£©¡£ÓÚÊÇʵ¼ÊÕ¼ÓõĿռä±ÈÉùÃ÷µÄ´óСҪ¶àһЩ¡£È»¶øÕâЩÀàÐͶ¼¿ÉÒÔ±»Ñ¹Ëõ´æ´¢£¬Ò²¿ÉÒÔÓàTOAST ÍÑ»ú´æ´¢£¬Òò´Ë´ÅÅ̿ռäÒ²¿ÉÄܱÈÔ¤ÏëµÄÒªÉÙ¡£
              \r
    -        
    \r
    -        CHAR(n) ×îÊʺÏÓÚ´æ´¢³¤¶È»ù±¾²î²»¶àµÄ×Ö·û´®¡£VARCHAR(n) ÔÚ´æ´¢ÏÞÖÆÁË×î´ó³¤¶ÈµÄ±ä³¤×Ö·û´®ÊÇ×îºÃµÄ¡£TEXT ÊÊÓÃÓÚ´æ´¢²»ÏÞÖÆ³¤¶ÈµÄ×Ö·û´®£¬×î´ó¿É´ï 1G¡£BYTEA ÓÃÓÚ´æ´¢¶þ½øÖÆÊý¾Ý£¬ÓÈÆäÊǰüº¬ NULL ×Ö½Ú£¨¶þ½øÖƵÄ0£©µÄÖµ¡£ÕâЩÀàÐ;ßÓÐÀàÐ͵ÄÐÔÄÜ¡£

              \r
    -        

    4.15.1) ÎÒÔõÑù´´½¨Ò»¸öÐòÁкÅ/×Ô¶¯µÝÔöµÄ×ֶΣ¿

              \r
    -        

    PostgreSQL Ö§³Ö SERIAL Êý¾ÝÀàÐÍ¡£ËüÔÚ×Ö¶ÎÉÏ×Ô¶¯´´½¨Ò»¸öÐòÁкÍË÷Òý¡£ÀýÈ磬
              \r

    -            CREATE TABLE person ( 
             \r
    -                id   SERIAL, 
             \r
    -                name TEXT 
             \r
    -                );
            \r
    -        
    \r
    -   »á×Ô¶¯×ª»»Îª£º 
    \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
    -        ²Î¿¼ create_sequence ÊÖ²áÒ³»ñÈ¡¹ØÓÚÐòÁеĸü¶àÐÅÏ¢¡£Ä㻹¿ÉÒÔÓÃÿÐеĠoid ×Ö¶Î×÷Ϊһ¸öΨһֵ¡£²»¹ý£¬Èç¹ûÄãÐèÒªÇãµ¹ºÍÖØÔØÊý¾Ý¿â£¬ÄãÐèҪʹÓàpg_dump µÄ -o Ñ¡Ïî»òÕß COPY WITH OIDS Ñ¡ÏîÒÔ±£Áô OID¡£ 

             \r
    -        

    4.15.2)           \r

    -           ÎÒÈçºÎ»ñµÃÒ»¸ö²åÈëµÄÐòÁкŵÄÖµ£¿\r
    -        

    Ò»ÖÖ·½·¨ÊÇÔÚ²åÈë֮ǰÏÈÓú¯Êý nextval() ´ÓÐòÁжÔÏóÀï¼ìË÷³öÏÂÒ»¸ö SERIAL Öµ£¬È»ºóÔÙÏÔʽ²åÈ롣ʹÓà\r

    -         4.15.1 ÀïµÄÀý±í£¬¿ÉÓÃαÂëÕâÑùÃèÊö£º 
             \r
    -        
    \r
    -            new_id = execute("SELECT nextval('person_id_seq')");
              \r
    -            execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");
              \r
    -        
    \r
    -        ÕâÑù»¹ÄÜÔÚÆäËû²éѯÖÐʹÓôæ·ÅÔÚ new_id ÀïµÄÐÂÖµ£¨ÀýÈ磬×÷Ϊ person ±íµÄÍâ¼ü£©¡£×¢Òâ×Ô¶¯´´½¨µÄ SEQUENCE ¶ÔÏóµÄÃû³Æ½«»áÊÇ <table>_<serialcolumn>_seq£¬ÕâÀï table ºÍ serialcolumn ·Ö±ðÊÇÄãµÄ±íµÄÃû³ÆºÍÄãµÄ SERIAL ×ֶεÄÃû³Æ¡£ 
             \r
    -        
    \r
    -        ÀàËÆµÄ£¬ÔÚ SERIAL ¶ÔÏóȱʡ²åÈëºóÄã¿ÉÒÔÓú¯Êý currval() ¼ìË÷¸Õ¸³ÖµµÄ SERIAL Öµ£¬ÀýÈ磬 
             \r
    -        
    \r
    -            execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");
              \r
    -            new_id = execute("SELECT currval('person_id_seq')");
              \r
    -        
    \r
    -        ×îºó£¬Äã¿ÉÒÔʹÓôӠINSERT Óï¾ä·µ»ØµÄ OID \r
    -        ²éÕÒȱʡֵ£¬¾¡¹ÜÕâ¿ÉÄÜÊÇ×îȱ·¦ÒÆÖ²ÐԵķ½·¨¡£ÔÚ Perl ÀʹÓôøÓРEdmund Mergl µÄ DBD::Pg Ä£¿éµÄ DBI£¬oid Öµ¿ÉÒÔͨ¹ý $sth->execute() ºóµÄ $sth->{pg_oid_status} »ñµÃ¡£ 

             \r
    -        

    4.15.3) Ê¹Óàcurrval() ºÍ nextval() »áµ¼ÖÂÒ»¸öÓëÆäËûÓû§Ö®¼äµÄÎÉÂÒÇé¿öÂð£¿

              \r
    -        

    ²»»á¡£currval() ·µ»Øºǫ́½ø³Ì¶ø²»ÊÇËùÓÐÓû§¸³ÓèµÄµ±Ç°Öµ¡£
              \r

    -        

    \r
    -        

    4.15.4)           \r

    -           ÎªÊ²Ã´²»ÔÚÊÂÎñÒì³£ÖÐÖ¹ºóÖØÓÃÐòÁкÅÄØ£¿ÎªÊ²Ã´ÔÚÐòÁкÅ×ֶεÄȡֵÖдæÔÚ¼ä¶ÏÄØ£¿\r
    -        

    ΪÁËÌá¸ß²¢·¢ÐÔ£¬ÐòÁкÅÔÚÐèÒªµÄʱºò¸³ÓèÕýÔÚÔËÐеÄÊÂÎñ£¬²¢ÇÒÖ»ÔÚÊÂÎñ½áÊøÖ®Ç°²»·âËø¡£Õâ¾Í»áµ¼ÖÂØ²ÕÛÊÂÎñºóµÄÐòÁкųöÏÖ¼ä¸ô¡£

    \r
    -        


    \r

    -        4.16) Ê²Ã´ÊÇ OID£¿Ê²Ã´ÊÇ TID£¿          \r
    -        

    OID ÊÇ PostgreSQL ÖÐÐеÄΨһ±êʶ¡£PostgreSQL Àï´´½¨µÄÿһÐж¼»ñµÃÒ»¸öΨһµÄ OID¡£ËùÓÐÔÚ initdb ¹ý³ÌÖд´½¨µÄ OID ¶¼Ð¡ÓÚ 16384 £¨²Î¼û include/access/transam.h£©¡£ËùÓÐÓû§´´½¨µÄ OID ¶¼´óÓÚ»òµÈÓÚÕâ¸öÖµ¡£È±Ê¡Ê±£¬ËùÓÐÕâЩ OID ²»½öÔÚÒ»¸ö±í»òÒ»¸öÊý¾Ý¿âÀïÃæÎ¨Ò»£¬¶øÇÒÔÚÕû¸ö PostgreSQL °²×°ÀïÒ²ÊÇΨһµÄ¡£ 
             \r

    -        
    \r
    -        PostgreSQL ÔÚËüµÄÄÚ²¿ÏµÍ³±íÀïʹÓàOID ÔÚ±íÖ®¼ä½¨Á¢ÁªÏµ¡£ÕâЩ OID ¿ÉÒÔÓÃÓÚ±êÊ¶ÌØ¶¨µÄÓû§ÐÐÒÔ¼°ÓÃÔÚÁ¬½ÓÀï¡£½¨ÒéʹÓÃ×Ö¶ÎÀàÐÍ OID ´æ´¢ OID Öµ¡£¿ÉÒÔÔÚ OID ×Ö¶ÎÉÏ´´½¨Ò»¸öË÷ÒýÒÔ¿ìËÙ·ÃÎÊ¡£ 
             \r
    -        
    \r
    -        OID ´ÓÒ»¸ö±»ËùÓÐÊý¾Ý¿âʹÓõÄÖÐÐÄÇøÓòÀ︳ֵ¸øËùÓÐÐÂÐС£Èç¹ûÄãÏë°Ñ OID ¸Ä³É±ðµÄÖµ£¬»òÕßÏë×öÒ»·Ý±íµÄ´øÔ­Ê¼ OID µÄ¿½±´£¬Äã¿ÉÒÔ×öµ½£º 
             \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 ÓÃ4×Ö½ÚµÄÕûÊý±£´æ£¬ÔÚ³¬¹ý40ÒÚʱ½«Òç³ö¡£Ã»ÓÐÈ˱¨¸æ³öÏÖ¹ýÒç³ö£¬¶øÎÒÃÇ´òËãÔÚÓÐÈ˱¨¸æÖ®Ç°Ïû³ýÕâ¸öÏÞÖÆ¡£
              \r
    -        
    \r
    -        TID ÓÃÓÚ±êʶ´ø×ÅÊý¾Ý¿é£¨µØÖ·£©ºÍ£¨¿éÄÚ£©Æ«ÒƵÄÌØ¶¨µÄÎïÀíÐС£TID ÔÚÐб»¸ü¸Ä»òÖØÔØºó·¢Éú¸Ä±ä¡£Ë÷ÒýÈë¿ÚʹÓÃËüÃÇÖ¸ÏòÎïÀíÐС£

              \r
    -        

    4.17) PostgreSQL Ê¹ÓõÄһЩÊõÓïµÄº¬ÒåÊÇʲô£¿

              \r
    -        

    һЩԴ´úÂëºÍһЩ¾ÉÒ»µãµÄÎĵµÊ¹ÓÃһЩÓиü³£ÓÃÓ÷¨µÄÊõÓï¡£ÏÂÃæÊÇÆäÖÐÒ»²¿·Ö£º 
    \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
    -        ÓÐÒ»¸öͨÓÃÊý¾Ý¿âÊõÓïµÄÁÐ±í£ºhttp://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html \r
    -        ¡£  

    \r
    -        

    4.18)           \r

    -           ÎªÊ²Ã´ÎÒÊÕµ½´íÎó¡°ERROR: Memory exhausted in AllocSetAlloc()¡±£¿\r
    -        

    ÕâºÜ¿ÉÄÜÊÇϵͳµÄÐéÄâÄÚ´æÓùâÁË£¬»òÕßÄں˶ÔijЩ×ÊÔ´Óнϵ͵ÄÏÞÖÆÖµ¡£ÔÚÆô¶¯ postmaster Ö®Ç°ÊÔÊÔÏÂÃæµÄÃüÁ 
             \r

    -        
    \r
    -            ulimit -d 262144
              \r
    -            limit datasize 256m
              \r
    -        
    \r
    -        È¡¾öÓÚÄãÓõĠshell£¬ÉÏÃæÃüÁîÖ»ÓÐÒ»ÌõÄܳɹ¦£¬µ«ÊÇËü½«°ÑÄãµÄ½ø³ÌÊý¾Ý¶ÎÏÞÖÆÉèµÃ±È½Ï¸ß£¬Òò¶øÒ²ÐíÄÜÈòéѯÍê³É¡£ÕâÌõÃüÁîÓ¦ÓÃÓÚµ±Ç°½ø³Ì£¬ÒÔ¼°ËùÓÐÔÚÕâÌõÃüÁîÔËÐк󴴽¨µÄ×Ó½ø³Ì¡£Èç¹ûÄãÊÇÔÚÔËÐÐSQL¿Í»§¶ËʱÒòΪºǫ́·µ»ØÁËÌ«¶àµÄÊý¾Ý¶ø³öÏÖÎÊÌ⣬ÇëÔÚÔËÐпͻ§¶Ë֮ǰִÐÐÉÏÊöÃüÁî¡£

              \r
    -        

    4.19)           \r

    -           ÎÒÈçºÎ²ÅÄÜÖªµÀËùÔËÐеĠPostgreSQL µÄ°æ±¾£¿          \r
    -        

    ´Ó psql À¼üÈë SELECT version()£»
              \r

    -        

    \r
    -        

    4.20)           \r

    -           ÎªÊ²Ã´ÎҵĴó¶ÔÏó²Ù×÷µ¼Ö´íÎó¡°invalid large obj descriptor¡±£¨·Ç·¨µÄ´ó¶ÔÏóÃèÊö·û£©£¿          \r
    -        

    ÄãÐèÒªÔÚʹÓÃÈκδó¶ÔÏó¾ä±úµÄǰºó·ÅÉÏ BEGIN WORK ºÍ COMMIT£¬Ò²¾ÍÊÇ˵£¬°üΧ lo_open ... lo_close¡£ 
             \r

    -        
    \r
    -        Ä¿Ç° PostgreSQL Ç¿ÖÆÊµÊ©ÕâÌõ¹æÔò£ºÔÚÊÂÎñÌύʱ¹Ø±Õ´ó¶ÔÏó¾ä±ú£¬ÕâÑù£¬£¨Ã»ÓвÉÓÃÊÂÎñʱ£©£¬Ê״ζԴó¶ÔÏó¾ä±ú×öÈκÎÊÂÇéµÄÆóͼ¶¼»áµ¼ÖÂÒ»¸ö invalid large obj descriptor¡£ËùÒÔ£¬Èç¹ûÄãûÓÐʹÓÃÒ»¸öÊÂÎñ£¬ÒÔǰÄܹ¤×÷µÄ´úÂ루ÖÁÉÙÊÇ´ó¶àÊýʱ¼ä£©½«»áÉú³ÉÕâôһ¸ö´íÎóÐÅÏ¢¡£ 
             \r
    -        
    \r
    -        Èç¹ûÄãʹÓÿͻ§¶Ë½Ó¿Ú£¬Èç ODBC£¬Äã¿ÉÄÜÐèÒª set auto-commit off¡£

              \r
    -        

    4.21) ÎÒÈçºÎ´´½¨Ò»¸öȱʡֵÊǵ±Ç°Ê±¼äµÄ×ֶΣ¿

              \r
    -        

    ʹÓàCURRENT_TIMESTAMP£º
              \r

    -        
    \r
    -            CREATE TABLE test(x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP);

              \r
    -        

    4.22) ÎªÊ²Ã´Ê¹ÓàIN µÄ×Ó²éѯÕâôÂý£¿

              \r
    -        

    Ŀǰ£¬ÎÒÃÇͨ¹ýΪÍâ²éѯµÄÿһÐÐ˳ÐòɨÃè×Ó²éѯµÄ½á¹ûÀ´Á¬½Ó×Ó²éѯºÍÍâ²éѯ¡£Èç¹û×Ó²éѯ·µ»ØÉÙÊý¼¸ÐУ¬¶øÍâ²éѯ·µ»ØºÜ¶àÐУ¬IN Ö´Ðеúܿ졣ΪÁ˼ӿìÆäËû IN ²éѯµÄÖ´ÐУ¬¿ÉÒÔÓàEXISTS Ìæ»» IN£º 
             \r

    -        
    \r
    -            SELECT *
              \r
    -            FROM tab
              \r
    -            WHERE col IN (SELECT subcol FROM subtab);
              \r
    -        
    \r
    -        ¸ÄΪ£º 
    \r
    -        
    \r
    -            SELECT *
              \r
    -            FROM tab
              \r
    -            WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);
              \r
    -        
    \r
    -        ºóÕßÒªÏëÖ´Ðеøü¿ì£¬subcol Ó¦¸ÃÊÇÒ»¸öË÷ÒýÁС£ÎÒÃÇÏ£ÍûÔÚδÀ´µÄ·¢²¼°æ±¾ÖÐÐÞ²¹Õâ¸öÏÞÖÆ¡£

              \r
    -        

    4.23) ÎÒÔõÑù½øÐРouter join £¨ÍâÁ¬½Ó£©£¿

              \r
    -        

    PostgreSQL ²ÉÓñê×¼µÄ SQL Óï·¨Ö§³ÖÍâÁ¬½Ó¡£ÕâÀïÊÇÁ½¸öÀý×Ó£º
              \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
    -        ÕâÁ½¸öµÈ¼ÛµÄ²éѯÔÚ t1.col ºÍ t2.col ÉÏ×öÁ¬½Ó£¬²¢ÇÒ·µâ»?t1 ÖÐËùÓÐδÁ¬½ÓµÄÐУ¨ÄÇЩÔÚ t2 ÖÐûÓÐÆ¥ÅäµÄÐУ©¡£ÓÒ[Íâ]Á¬½Ó(RIGHT OUTER JOIN)½«·µ»Ø t2 ÖÐδÁ¬½ÓµÄÐС£ÍêÈ«ÍâÁ¬½Ó£¨FULL OUTER JOIN£©½«·µ»Ø t1 ºÍ t2 ÖÐδÁ¬½ÓµÄÐС£¹Ø¼ü×Ö OUTER ÔÚ×ó[Íâ]Á¬½Ó¡¢ÓÒ[Íâ]Á¬½ÓºÍÍêÈ«[Íâ]Á¬½ÓÖÐÊÇ¿ÉÑ¡µÄ£¬ÆÕͨÁ¬½Ó±»³ÉΪÄÚÁ¬½Ó£¨INNER JOIN£©¡£
              \r
    -        
    \r
    -        ÔÚ´ËǰµÄ°æ±¾ÖУ¬ÍâÁ¬½Ó¿ÉÒÔÓàUNION ºÍ NOT IN À´Ä£Äâ¡£ÀýÈ磬ÏÂÃæµÄÀý×ÓÔÚ±í tab1 ºÍ tab2 Ö®¼ä×öÍâÁ¬½Ó£º
              \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
    -        

    4.24)           \r

    -           ÈçºÎʹÓÃÉæ¼°¶à¸öÊý¾Ý¿âµÄ²éѯ£¿\r
    -        

    ûÓа취²éѯµ±Ç°Êý¾Ý¿âÖ®ÍâµÄÊý¾Ý¿â¡£ÒòΪ PostgreSQL ¼ÓÔØÊý¾Ý¿âÏà¹ØµÄϵͳĿ¼£¨ÏµÍ³±í£©£¬¿çÊý¾Ý¿âµÄ²éѯÈçºÎÖ´ÐÐҲδÃ÷È·¡£
              \r

    -        
    \r
    -        contrib/dblink ÔÊÐí²ÉÓú¯Êýµ÷ÓÃʵÏÖ¿ç¿â²éѯ¡£µ±È»¿ÉÒÔͬʱÁ¬½Óµ½²»Í¬µÄÊý¾Ý¿â²¢ÔÚ¿Í»§¶ËºÏ²¢½á¹û¡£

              \r
    -        

    4.25)           \r

    -           ÈçºÎÈú¯Êý·µ»Ø¶àÐлò¶àÁУ¿\r
    -        

    ¿ÉÒÔÔÚ PL/pgSQL º¯ÊýÖÐʹÓàrefcursors ·µ»Ø½á¹û¼¯¡£²Î¿´          \r

    -         http://www.PostgreSQL.org/idocs/index.php?plpgsql-cursors.html, 23.7.3.3½Ú¡£
              \r
    -        

    \r
    -        

    4.26) ÎªÊ²Ã´ÔÚ           \r

    -           PL/PgSQL º¯ÊýÖв»Äܿɿ¿µØ´´½¨»òɾ³ýÁÙʱ±í£¿          \r
    -        

    PL/PgSQL          \r

    -        »º´æº¯ÊýµÄÄÚÈÝ£¬ÓÉ´Ë´øÀ´µÄÒ»¸ö²»ºÃµÄ¸±×÷ÓÃÊÇÈôÒ»¸ö PL/PgSQL          \r
    -        º¯Êý·ÃÎÊÁËÒ»¸öÁÙʱ±í£¬È»ºó¸Ã±í±»É¾³ý²¢Öؽ¨ÁË£¬ÔòÔٴε÷Óøú¯Êý½«Ê§°Ü£¬ÒòΪ»º´æµÄº¯ÊýÄÚÈÝÈÔȻָÏò¾ÉµÄÁÙʱ±í¡£½â¾öµÄ·½·¨ÊÇÔÚ          \r
    -        PL/PgSQL ÖÐÓàEXECUTE          \r
    -        ¶ÔÁÙʱ±í½øÐзÃÎÊ¡£ÕâÑù»á±£Ö¤²éѯÔÚÖ´ÐÐǰ×ÜÊÇÖØÐ·ÖÎö¡£

    \r
    -        

    4.27)           \r

    -           ÓÐÄÄЩÊý¾Ý¸´ÖÆÑ¡Ï\r
    -        

    Óм¸ÖÖÖ÷/´Ó·½Ê½µÄ¸´ÖÆÑ¡Ïî¡£ÕâЩѡÏîÖ»ÔÊÐíÖ÷Êý¾Ý¿â½øÐиüУ¬´ÓÊý¾Ý¿âÖ»ÄܽøÐжÁ¡£ÍøÒ³          \r

    -        http://gborg.PostgreSQL.org/genpage?replication_research           \r
    -        µÄ×îºóÁгöÁËÕâЩѡÏî¡£ÔÚ  http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php          \r
    -        ÕýÔÚ½øÐÐÒ»¸ö¶àÖ÷±¾¸´ÖƵĽâ¾ö·½°¸¡£

             \r
    -        

    4.28)           \r

    -           ÓÐÄÄЩÊý¾Ý¼ÓÃÜÑ¡Ï\r
    -           
    \r
    -           \r
    -        \r
    -        

    contrib/pgcrypto °üº¬Á˺ܶàÔÚ SQL          \r

    -        ²éѯÖÐʹÓõļÓÃܺ¯Êý¡£¼ÓÃܿͻ§¶Ëµ½·þÎñÆ÷¶Ë´«ÊäÊý¾ÝµÄΨһ·½·¨ÊÇÔÚ pg_hba.conf          \r
    -        ÖвÉÓàhostss ¡£ 
             \r
    -        
    \r
    -        7.3          \r
    -        °æ±¾ÖÐ×Ô¶¯¶ÔÊý¾Ý¿âÓû§ÃÜÂë½øÐмÓÃÜ¡£ÔÚÒÔǰµÄ°æ±¾ÖУ¬±ØÐëÔÚ          \r
    -        postgresql.conf Öдò¿ª PASSWORD_ENCRYPTION          \r
    -        Ñ¡Ïî¡£·þÎñÆ÷¿ÉÒÔÔËÐÐÔÚ¼ÓÃܵÄÎļþϵͳÉÏ£¨ÒÔ´ïµ½¼ÓÃܵÄÄ¿µÄ£©¡£
    \r
    -        
    \r
    -        --------------------------------------------------------------------------------

    \r
    -        À©Õ¹ PostgreSQL          \r
    -        

    5.1)           \r

    -           ÎÒдÁËÒ»¸öÓû§¶¨Ò庯Êý¡£µ±ÎÒÔÚ psql ÀïÔËÐÐʱ£¬ÎªÊ²Ã´»áµ¼Ö core dump£¿          \r
    -        

    ²úÉúÕâ¸öÎÊÌâµÄÔ­ÒòºÜ¶à¡£ÇëÏÈÔÚÒ»¸öµ¥¶ÀµÄ²âÊÔ³ÌÐòÖвâÊÔÄãµÄ×Ô¶¨Ò庯Êý¡£

    \r
    -        

    5.2) ÎÒÈçºÎÄܸø           \r

    -           PostgreSQL ¹±Ï×һЩͦ²»´íµÄÐÂÀàÐͺͺ¯Êý£¿          \r
    -        

    ½«ÄãµÄÀ©Õ¹·¢Ë͵½ pgsql-hackers          \r

    -        ÓʼþÁÐ±í£¬ËüÃÇ×îÖջᱻ·Åµ½ contrib/ ×ÓĿ¼¡£
             \r
    -        

    \r
    -        

    5.3) ÎÒÔõÑùдһ¸ö·µ»ØÒ»ÌõÔª×éµÄ C º¯Êý£¿

              \r
    -        

    ÔÚ PostgreSQL 7.3 ÒÔºóµÄ°æ±¾ÖУ¬C, PL/PgSQL ºÍ SQL          \r

    -        Íêȫ֧³Ö·µ»ØÖµÎª±íµÄº¯Êý¡£¸ü¶àÐÅÏ¢Çë²Î¿¼          \r
    -        ³ÌÐòÔ±Ö¸ÄÏ£¨the Programmer's Guide£©¡£ÔÚ contrib/tablefunc          \r
    -        ÖÐÓÐÒ»¸öÀý×ÓÊÇÓàC Ð´µÄ·µ»ØÖµÎª±íµÄº¯Êý¡£

             \r
    -        

    5.4)           \r

    -           ÎÒÐÞ¸ÄÁËÒ»¸öÔ´Îļþ£¬ÎªÊ²Ã´ÖØÐ±àÒëºóûÓп´µ½¸Ä±ä£¿\r
    -        

     Makefiles ÖÐûÓаüº¬Í·ÎļþµÄÕýÈ·ÒÀÀµ¡£Äú±ØÐëÏÈ×ömake \r

    -        clean£¬ ÔÙ×öÒ»´Î make ¡£Èç¹ûÄúʹÓõÄÊÇ GCC \r
    -        £¬Ôò¿ÉÒÔ²ÉÓÃÑ¡Ïî --enable-depend \r
    -        ÈñàÒëÆ÷×Ô¶¯Éú³ÉÍ·ÎļþµÄÒÀÀµ¹ØÏµ¡£

    \r
    -   \r
    -\r
    +
    +
    +PostgreSQL </div> <div class="diff add">+           FAQ-ch
    +       HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=gb_2312-80">
    +       
    +   
    +   
    +       

    PostgreSQL ³£¼ûÎÊÌ⣨FAQ£©

              
    +       ×î½ü¸üУº2003 Äê 01 Ô 06 ÈÕ ÐÇÆÚÒ» 22:27:35 CST
    +       

    Ŀǰά»¤ÈËÔ±£ºBruce Momjian ([email protected])          

    +           
    +           ÖÐÎİæÎ¬»¤ÈËÔ±£ººÎΰƽ £¨[email protected]          
    +       £©

    ±¾ÎĵµµÄ×îа汾¿ÉÒÔÔÚhttp://www.postgresql.org/files/documentation/faqs/FAQ.html          

    +       ²é¿´¡£

    ²Ù×÷ϵͳƽ̨Ïà¹ØµÄÎÊÌâÔÚhttp://www.postgresql.org/docs/faq/Àï»Ø´ð¡£
              

    +           
    +           
    +               

    ³£¼ûÎÊÌâ

    +           
    +        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)           
    +           ÎҵIJéѯºÜÂý»òÕßûÓÐÀûÓÃË÷Òý¡£ÎªÊ²Ã´£¿
    +           
    +        4.9)           
    +           ÎÒÈçºÎ²ÅÄÜ¿´µ½²éѯÓÅ»¯Æ÷ÊÇÔõÑù´¦ÀíÎҵIJéѯµÄ£¿
    +           
    +        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           
    +           ÊÇ×ÔÓɵIJ¢ÇÒËùÓÐÔ´´úÂë¶¼¿ÉÒÔ»ñµÃ¡£

    +       

    PostgreSQL µÄ¿ª·¢ÓɲμӠPostgreSQL ¿ª·¢ÓʼþÁбíµÄÒ»¸ö¿ª·¢ÈËԱС×é½øÐС£Ä¿Ç°µÄЭµ÷ÈËÊÇ Marc G. Fournier £¨[email protected]          

    +       £©¡££¨¹ØÓÚÈçºÎ¼ÓÈë²Î¼û1.6½Ú£©¡£Õâ¸ö¶ÓÎéÏÖÔÚ¸ºÔð PostgreSQL µÄËùÓпª·¢¡£          
    +       

    +       PostgreSQL 1.01 µÄ×÷ÕßÊÇ Andrew Yu ºÍ Jolly           
    +       Chen¡£»¹ÓÐÐí¶àÆäËûÈËÎªÒÆÖ²£¬²âÊÔ£¬µ÷ÊÔºÍÔöÇ¿´úÂë×öÁË´óÁ¿¹±Ïס£PostgreSQL µÄ×î³õÆðÔ´ Postgres£¬ÊÇÔÚ¼ÓÖÝ´óѧ²®¿ËÀû·ÖУµÄ Michael           
    +       Stonebraker ½ÌÊÚµÄÖ¸µ¼Ï£¬ÓÉÐí¶àÑо¿Éú£¬±¾¿ÆÉúºÍ±à³ÌÖ°Ô±Íê³ÉµÄ¡£          
    +       

    Õâ¸öÈí¼þ×î³õÔÚ²®¿ËÀûµÄÃû×ÖÊÇ Postgres¡£ÔÚ 1995 Ä꣬µ±Ôö¼ÓÁË SQL ¹¦Äܺó£¬ËüµÄÃû×ָijɠPostgres95¡£ÔÚ 1996ÄêÄ©£¬²Å¸ÄÃûΪ           

    +           PostgreSQL¡£
    +           

    1.2) PostgreSQL µÄ°æÈ¨ÊÇʲô?

              
    +       PostgreSQL ÊÜÏÂÃæµÄ°æÈ¨Ô¼Êø¡£          
    +       

    +       PostgreSQL Êý¾Ý¿â¹ÜÀíϵͳ          
    +       

    +       £¨PostgreSQL Data Base Management System£©

    ²¿·Ö°æÈ¨£¨c£©1996-2002£¬PostgreSQL È«Çò¿ª·¢Ð¡×é
              

    +       ²¿·Ö°æÈ¨£¨c£©1994-6 ¼ÓÖÝ´óѧ¶­Ê          
    +       

    £¨Portions copyright (c) 1996-2002, 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.£©
              
    +           
    +           ÉÏÃæ¾ÍÊÇ BSD °æÈ¨ÉùÃ÷£¬Ò»¸ö¾­µäµÄ¿ªÔ´°æÈ¨ÉùÃ÷¡£Ëü¶ÔÔ´´úÂëµÄʹÓÃδ×÷ÈκÎÏÞÖÆ¡£ÎÒÃÇϲ»¶Ëü²¢ÇÒ²»´òËã¸Ä±äËü¡£          
    +           

    1.3) PostgreSQL ÔËÐÐÔÚʲô Unix Æ½Ì¨ÉÏ£¿

              
    +       

    Ò»°ã˵À´£¬Ò»¸öÏÖ´úµÄ UNIX ¼æÈÝµÄÆ½Ì¨¶¼ÄÜÔËÐРPostgreSQL ¡£ÔÚ°²×°Ö¸ÄÏÀïÁгöÁË·¢²¼Ê±¾­¹ýÃ÷È·²âÊÔµÄÆ½Ì¨¡£

              
    +       
      +       
      +       

      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          
      +       ¡£          
      +       

      ÒÆÖ²µ½ MS Win NT/2000/XP µÄ±¾»ú°æµÄ¹¤×÷ÕýÔÚ½øÐС£          

      +           

      1.5) ÎÒ´ÓÄÄÀïÄܵõ½ PostgreSQL£¿

                
      +       

      PostgreSQL µÄÖ÷ÄäÃûFTPÕ¾µãÊÇ ftp://ftp.PostgreSQL.org/pub£¬¾µÏñÕ¾µã¿ÉÒԲο¼ÎÒÃÇÍøÕ¾µÄÖ÷Ò³¡£          

      +           

      1.6) ÎÒ´ÓÄÄÀïÄܵõ½¶Ô PostgreSQL µÄÖ§³Ö£¿

                
      +       

      Ö÷ÒªµÄÓʼþÁбíÊÇ£º[email protected]¡£¿ÉÒÔÔÚÄÇÀïÌÖÂÛÓйؠ          

      +           PostgreSQL µÄÎÊÌâ¡£Òª¼ÓÈëÁÐ±í£¬·¢Ò»·âÓʼþÄÚÈÝ£¨²»ÊÇÖ÷ÌâÐУ©Îª          
      +           
              subscribe
      +        end
      +           µÄÓʼþµ½ [email protected]          
      +       ¡£          
      +       

      »¹¿ÉÒÔ»ñȡժҪÁÐ±í¡£Òª¼ÓÈëÕâ¸öÁÐ±í£¬·¢Óʼþµ½£º[email protected]£¬ÆäÄÚÈÝΪ£º

      +           
              subscribe
      +        end
      +       Ã¿µ±Ö÷Áбí´ïµ½´óÔ¼ 30k µÄÏûÏ¢ÄÚÈÝʱ£¬ÕªÒª¾Í·¢Ë͸øÕâ¸öÁбíµÄ³ÉÔ±¡£          
      +       

      »¹¿ÉÒԲμӳô³æÓʼþÁÐ±í¡£Òª¼ÓÈëÕâ¸öÁÐ±í£¬·¢ËÍÒ»¸öÓʼþµ½ [email protected]£¬ÄÚÈÝΪ£º          

      +           
              subscribe
      +        end
      +           »¹¿ÉÒԲμӿª·¢ÈËÔ±ÓʼþÁÐ±í¡£Òª¼ÓÈëÕâ¸öÁÐ±í£¬·¢ËÍÒ»¸öÓʼþµ½ [email protected]£¬ÄÚÈÝΪ£º          
      +           
              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 ºÍȱʧµÄÌØÐÔ£¿         
      +           PostgreSQL Ö§³ÖÒ»¸öÀ©Õ¹Á˵ĠSQL-92 µÄ×Ó¼¯¡£²ÎÔÄÎÒÃǵĠ          
      +               TODO ÁÐ±í£¬»ñȡһ¸öÒÑÖª³ô³æ£¬È±Ê§ÌØÐÔºÍδÀ´¼Æ»®¡£          
      +           

      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.shtm£¬http://ourworld.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) ÎÒÓ¦¸ÃÔõÑù¼ÓÈ뿪·¢¶ÓÎ飿

                
      +       Ê×ÏÈ£¬ÏÂÔØ×îеÄÔ´´úÂë²¢ÔĶÁÎÒÃÇ web Õ¾µã»ò·¢²¼°üÖеĠPostgreSQL ¿ª·¢ÕßÎĵµ¡£Æä´Î£¬¼ÓÈë pgsql-hackers ºÍ           
      +       pgsql-patches ÓʼþÁÐ±í¡£µÚÈý£¬Ïò pgsql-patches Ìá½»¸ßÖÊÁ¿µÄ²¹¶¡³ÌÐò¡£          
      +       

      ÏÖÔÚ´ó¸ÅÓÐÊ®¼¸¸öÈËÓРPostgreSQL CVS ¹éµµ COMMIT µÄȨÏÞ¡£ËûÃǶ¼ÒѾ­Ìá½»Á˷dz£¶à¸ßÖÊÁ¿µÄ²¹¶¡ÁË£¬ÒÔÖÁÓÚÏÖÓеÄÌá½»È˺ÜÄѸúÉϽÚ×࣬²¢ÇÒÎÒÃÇÏàÐÅËûÃÇÌá½»µÄ²¹¶¡¶¼ÊǸßÖÊÁ¿µÄ¡£

      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 ºÍÆäËûÉÌÓúͿªÔ´µÄÊý¾Ý¿â¾ßÓÐÀàËÆµÄÐÔÄÜ¡£¶ÔijЩ´¦ÀíËü±È½Ï¿ì£¬¶ÔÆäËûһЩ´¦ÀíËü±È½ÏÂý¡£Óë MySQL »ò¸üÇá±ãµÄÊý¾Ý¿âϵͳ±È½Ï£¬ÎÒÃÇÔÚ           
      +                               insert/update Ê±Âý£¬ÒòΪÎÒÃÇÓÐÊÂÎñ´¦Àí¡£µ±È» MySQL ²»¾ßÓÐÎÒÃÇÔÚÉÏÃæµÄÌØÐÔ ¶ÎÀï¸ø³öµÄÈκÎÌØÐÔ¡£ÎÒÃǵÄÖ÷Òª·½ÏòÊǿɿ¿ÐÔºÍÌØÐÔ£¬¾¡¹ÜÎÒÃÇÔÚÿ´Î·¢²¼Ê±²»¶ÏµØ¸Ä½øÐÔÄÜ¡£ÓÐÒ»¸öºÜÓÐȤµÄÍøÒ³±È½ÏÁË           
      +                               PostgreSQL ºÍ MySQL http://openacs.org/why-not-mysql.html¡£
              
      +                               
      ¿É¿¿ÐÔ
      +                                   
      +                                       ÎÒÃÇÖªµÀ DBMS ±ØÐëÊǿɿ¿µÄ£¬·ñÔòËü¾ÍÒ»µãÓö¼Ã»ÓС£ÎÒÃÇŬÁ¦×öµ½·¢²¼¾­¹ýÈÏÕæ²âÊԵģ¬Îȶ¨µÄ³ô³æ×îÉٵĴúÂ롣ÿ¸ö°æ±¾ÖÁÉÙÓÐÒ»¸öÔµĠbeta           
      +                                       ²âÊÔ£¬²¢ÇÒÎÒÃǵķ¢²¼ÀúÊ·ÏÔʾÎÒÃÇ¿ÉÒÔÌṩÎȶ¨µÄ£¬Àι̵ģ¬¿ÉÓÃÓÚÉú²úʹÓõİ汾¡£ÎÒÃÇÏàÐÅÔÚÕâ·½ÃæÎÒÃÇÓëÆäËûµÄÊý¾Ý¿âÈí¼þÊÇÏ൱µÄ¡£
      +                                       
      +                                         
      Ö§³Ö
      +                                           
      +                                               ÎÒÃǵÄÓʼþÁбíÌṩһ¸ö·Ç³£´óµÄ¿ª·¢ÈËÔ±ºÍÓû§µÄ×éÒÔ°ïÖú½â¾öËùÅöµ½µÄÈκÎÎÊÌâ¡£ÎÒÃDz»Äܱ£Ö¤¿Ï¶¨Äܽâ¾öÎÊÌ⣬Ïà±È֮ϣ¬ÉÌÓàDBMS           
      +                                               Ò²²¢²»ÊÇ×ÜÄܹ»Ìṩ½â¾ö·½·¨¡£Ö±½ÓÓ뿪·¢ÈËÔ±£¬Óû§Èº£¬ÊÖ²áºÍÔ´³ÌÐò½Ó´¥Áî PostgreSQL µÄÖ§³Ö±ÈÆäËû DBMS           
      +                                               »¹ÒªºÃ¡£»¹ÓÐһЩÉÌÒµÐÔµÄÔ¤°ü×°µÄÖ§³Ö£¬¿ÉÒÔ¸øÌṩ¸øÄÇЩÐèÒªµÄÈË¡££¨²ÎÔÄÖ§³Ö FAQ Ìõ¿î 1.6 Ð¡½Ú¡££©          
      +                                               
      +                                                 
      ¼Û¸ñ
      +                                                   
      +                                                       ÎÒÃǶÔÈκÎÓÃ;¶¼Ãâ·Ñ£¬°üÀ¨ÉÌÓúͷÇÉÌÓÃÄ¿µÄ¡£Äã¿ÉÒÔ²»¼ÓÏÞÖÆµØÏòÄãµÄ²úÆ·Àï¼ÓÈëÎÒÃǵĴúÂ룬³ýÁËÄÇЩÎÒÃÇÔÚÉÏÃæµÄ°æÈ¨ÉùÃ÷ÀïÉùÃ÷µÄ BSD ·ç¸ñµÄ°æÈ¨Íâ¡£        
      +           
      +        

      1.15) ÎÒÓ¦¸ÃÔõÑùÔÞÖú PostgreSQL £¿

              
      +                                                       

      ×Ô´Ó1996Ä꿪ʼ£¬PostgreSQL        

      +                                                        ÒѾ­ÓÐÁËÒ»¸öÓÅÐãµÄ×éÖ¯¡£ÕâЩӦ¸Ã¹é¹¦ÓÚ Marc           
      +                                                           Fournier£¬ÊÇËû´´½¨Á˲¢ÔÚÕâЩÄêÒ»Ö±¹ÜÀíÕâ¸ö×éÖ¯¡£

      +                                                       

      ¶ÔÓÚÒ»¸ö¿ªÔ´ÏîÄ¿À´Ëµ£¬ÖÊÁ¿»ù´¡ÉèÊ©ÊǷdz£ÖØÒªµÄ¡£ËüÄÜ·ÀÖ¹³öÏÖÑÏÖØÑÓ³ÙÏîĿǰ½øµÄ»ìÂÒ¡£

      +                                                       

      ÏÔÈ»£¬Õâ¸ö×éÖ¯µÄÔËת³É±¾²»·Æ¡£Î¬³ÖÆäǰ½øÓи÷ÖÖÔ¶ȵġ¢Ò»´ÎÐԵĿªÖ§¡£Èç¹ûÄã»òÕßÄãµÄ¹«Ë¾ÄܽøÐоèÔùÒÔÖ§³ÖÕâÏîÊÂÒµ£¬Çë·ÃÎÊ           

      +                                                               http://store.pgsql.com/shopping/ ½øÐоèÔù¡£

                
      +                                                       

      ËäÈ»¸ÃÍøÒ³Ìá¼°ÁË PostgreSQL ¹«Ë¾£¬ÕâЩ¾èÔù½«½öÓÃÓÚÖ§³Ö PostgreSQL           

      +                                                           ÏîÄ¿£¬²¢²»»áÓÃÓÚ×ÊÖúû¸öÌØ¶¨µÄ¹«Ë¾¡£Èç¹ûÄãÔ¸Ò⣬Ҳ¿ÉÒÔÓʼÄ֧Ʊµ½ÁªÏµµØÖ·¡£

      +           
      +           
      +               

      Óû§¿Í»§¶ËÎÊÌâ

      +           
      +           

      2.1) ÓРPostgreSQL µÄ ODBC Çý¶¯Ã´£¿

                
      +       ÓÐÁ½¸ö ODBC Çý¶¯¿ÉÒÔ»ñµÃ£¬PsqlODBC ºÍ OpenLink ODBC.

      ¿ÉÒÔÔÚhttp://gborg.postgresql.org/project/psqlodbc/projdisplay.php          

      +       ÏÂÔØ PsqlODBC ¡£          
      +       

      OpenLink ODBC ¿ÉÒÔ´Ó http://www.openlinksw.com/          

      +       »ñµÃ¡£ËüÓëËûÃǵıê×¼ ODBC ¿Í»§¶ËÈí¼þ¼æÈÝ£¬Òò¶øÄã¿ÉÒÔÔÚÈκÎËûÃÇÖ§³ÖµÄ¿Í»§¶Ëƽ̨£¨Win, Mac, Unix, VMS£©ÉÏʹÓàPostgreSQL           
      +       ODBC¡£
      +       

      ËûÃÇ¿ÉÄܽ«Õâ¸ö²úÆ·ÏúÊÛ¸øÄÇЩÐèÒªÉÌÒµÖ§³ÖµÄÓû§£¬µ«ÊÇ×ÜÊÇÓÐÒ»¸ö freeware £¨×ÔÓÉÈí¼þ£©µÄ°æ±¾¿ÉÒԵõ½¡£ÇëѯÎÊ           

      +               [email protected]¡£
      +           

      2.2) ÓÐʲô¹¤¾ß¿ÉÒÔ°Ñ PostgreSQL ÓÃÓÚ Web Ò³Ã棿

                
      +           Ò»¸ö½éÉÜÒÔÊý¾Ý¿âΪºǫ́µÄͦ²»´íµÄ Õ¾µãÊÇ£ºhttp://www.webreview.com          
      +       ¡£          
      +       

      ¶ÔÓÚ Web ¼¯³É£¬PHP ÊÇÒ»¸ö¼«ºÃµÄ½Ó¿Ú¡£ËüÔÚ£ºhttp://www.php.net/          

      +       ¡£          
      +       

      ¶ÔÓÚ¸´ÔÓµÄÈÎÎñ£¬ºÜ¶àÈ˲ÉÓàPerl ½Ó¿ÚºÍ CGI.pm »ò mod_perl ¡£          

      +           

      2.3) PostgreSQL ÓµÓÐͼÐÎÓû§½çÃæÂð£¿

               
      +           Êǵġ£Óм¸¸öÊÊÓÃÓÚ PostgreSQL µÄͼÐνӿڡ£°üÀ¨PgAccess£¨http://www.pgaccess.com)£¬PgAdmin           
      +           II £¨http://www.pgadmin.org£¬½öÊÊÓÃÓÚWin32£©£¬           
      +           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          

        +           Ð¡½Ú¡£

                  
        +       
        +       
        +           

        ϵͳ¹ÜÀíÎÊÌâ

        +       
        +       

        3.1) ÎÒÔõÑùÄܰѠPostgreSQL ×°ÔÚ /usr/local/pgsql ÒÔÍâµÄµØ·½£¿

                  
        +       

        ÔÚÔËÐРconfigure Ê±¼ÓÉÏ --prefix Ñ¡Ïî¡£

                  
        +       

        3.2) µ±ÎÒÔËÐРpostmaster Ê±£¬³öÏÖ Bad System Call£¨ÏµÍ³µ÷ÓÃ´í£©»ò Core           

        +           Dumped ´íÎó¡£ÎªÊ²Ã´£¿          
        +       

        Õâ¿ÉÄÜÊÇºÜ¶à·½ÃæµÄÎÊÌ⣬ÇëÏȼì²é²Ù×÷ϵͳºËÐÄÊÇ·ñÖ§³Ö System V À©Õ¹¡£PostgreSQL ÐèÒªÄÚºËÖ§³Ö¹²ÏíÄÚ´æºÍÐźŵơ£

                  
        +       

        3.3) µ±ÎÒÊÔͼÔËÐРpostmaster Ê±£¬³öÏÖ IpcMemoryCreate ´íÎó¡£ÎªÊ²Ã´£¿

                  
        +       ÄãҪôÊÇûÓÐÔÚÄÚºËÀïÕýÈ·ÅäÖù²ÏíÄڴ棬ҪôÊÇÄãÐèÒªÀ©´óÄãµÄÄں˵ĿÉÓù²ÏíÄÚ´æ¡£ÐèÒªµÄ¹²ÏíÄÚ´æ¾ßÌåµÄÊýÁ¿È¡¾öÓÚÄãµÄÌåϵ½á¹¹ºÍÄãÅäÖÃÄãµÄ postmaster           
        +       ÔËÐÐʱʹÓõĻº³åÇøºÍºó¶Ë½ø³ÌÊýÄ¿¡£¶Ô´ó¶àÊýϵͳ£¬Ê¹ÓÃȱʡ»º³åÇøºÍ½ø³ÌÊýĿʱ£¬Äã×îÉÙÐèÒª~1MB¡£Óйع²ÏíÄÚ´æºÍÐźŵƵÄÏêϸÐÅÏ¢Çë²Î¿¼           
        +           PostgreSQL Administrator's Guide ¡£          
        +       

        3.4) µ±ÎÒÊÔͼÔËÐРpostmaster Ê±£¬³öÏÖ IpcSemaphoreCreate ´íÎó¡£ÎªÊ²Ã´£¿

                  
        +       

        Èç¹û´íÎóÐÅÏ¢ÊÇ IpcSemaphoreCreate: semget failed (No space left on device)£¬ÄÇôԭÒòÊÇÄãµÄÄÚºËûÓÐÅäÖÃ×ã¹»µÄÐźŵÆ×ÊÔ´¡£Postgres           

        +           µÄÿ¸öDZÔڵĺǫ́½ø³Ì¶¼ÐèÒªÒ»¸öÐźŵơ£Ò»¸öÁÙʱµÄ½â¾ö·½·¨ÊÇÒԱȽÏÉٵĺǫ́½ø³ÌÊý£¨²ÎÊý£©Æô¶¯ postmaster¡£Ê¹Óÿª¹Ø -N ´øÒ»¸öÉÙÓÚȱʡֵ           
        +           32 µÄ²ÎÊýÔËÐРpostmaster¡£¸ü³¤¾ÃµÄ½â¾ö·½·¨ÊǼӴóÄãµÄÄں˵ĠSEMMNS ºÍ           
        +               SEMMNI ²ÎÊý¡£

                  
        +       

        ÔÚÊý¾Ý¿â·ÃÎÊÁ¿ºÜ´óʱ£¬ÐźŵƲ»¿ÉÓÿÉÄܵ¼ÖÂϵͳ±ÀÀ£¡£

        +       

        Èç¹û´íÎóÐÅÏ¢ÊÇÆäËûµÄʲô¶«Î÷£¬Äã¿ÉÄܾ͸ù±¾Ã»ÓÐÔÚÄÚºËÀïÃæÅäÖÃÐźŵÆÖ§³Ö¡£Óйع²ÏíÄÚ´æºÍÐźŵƵÄÏêϸÐÅÏ¢Çë²Î¿¼           

        +               PostgreSQL Administrator's Guide ¡£

        3.5)           

        +               ÎÒÈçºÎ¿ØÖÆÀ´×ÔÆäËûÖ÷»úµÄÁ¬½Ó£¿
        +       

        ȱʡʱ£¬PostgreSQL Ö»ÔÊÐíͨ¹ý unix ÓòÌ×½Ó×ÖÀ´×Ô±¾»úµÄÁ¬½Ó¡£³ý·ÇÄãʹÓà-i ¿ª¹ØÆô¶¯ postmaster£¬²¢ÇÒͨ¹ý¶ÔÓ¦µÄ±à¼­          

        +           $PGDATA/pg_hba.conf Îļþ´ò¿ªÁËÖ÷»úΪ»ù´¡£¨ host-based £©µÄÈÏÖ¤£¬·ñÔòÆäËû»úÆ÷ÊDz»ÄÜÓëÄãµÄ»úÆ÷Á¬½ÓµÄ¡£ÕâÑù½«ÔÊÐí           
        +           TCP/IP Á¬½Ó¡£

                  
        +       

        3.6) ÎÒÔõÑùµ÷ÕûÊý¾Ý¿âÒýÇæÒÔ»ñµÃ¸üºÃµÄÐÔÄÜ£¿

                  
        +       

        µ±È»£¬Ë÷Òý¿ÉÒÔ¼ÓËÙ²éѯ¡£EXPLAIN ÃüÁîÔÊÐíÄã¹Û²ì PostgreSQL           

        +           ÈçºÎ½âÊÍÄãµÄ²éѯ£¬ÒÔ¼°Ê¹ÓÃÁËÄÄЩË÷Òý¡£

        +       

        Èç¹ûÄãÕý´¦ÀíÒ»¶Ñ INSERT£¬¿¼ÂÇʹÓàCOPY ÃüÁîÒÔ´óÅúÁ¿µÄ·½Ê½½øÐС£ÕâÑù×ö±Èµ¥¶ÀµÄÒ»¸ö¸ö          

        +           INSERT ¿ìµÃ¶à¡£Æä´Î£¬Ã»Óд¦ÓÚ BEGIN WORK/COMMIT          
        +       ÊÂÎñ¿éÖ®¼äµÄÓï¾ä±»ÈÏΪÊôÓÚͬһ¸öÊÂÎñ¡£ÊÔ×ÅÔÚÒ»¸öÊÂÎñ¿éÀïÃæ´¦Àí¸ü¶àµÄÓï¾ä¡£ÕâÑù¿ÉÒÔ¼õÉÙÊÂÎñ´øÀ´µÄ¶îÍ⿪Ïú¡£Í¬Ñù£¬ÔÚ×ö´óÁ¿µÄÊý¾Ý¸Ä±äʱ¿¼ÂÇɾ³ýºÍÖØ½¨Ë÷Òý¡£          
        +       

        »¹Óм¸¸öµ÷½ÚµÄÑ¡Ïî¿ÉÒÔʹÓá£Äã¿ÉÒÔͨ¹ý´ø -o -F Ñ¡ÏîÆô¶¯ postmaster À´½ûÖ¹ fsync()¡£ÕâÑù½«±ÜÃâÿ´ÎÊÂÎñºóµ÷Óàfsync()          

        +           
        +       °ÑÊý¾Ýˢе½´ÅÅÌÉÏ¡£
        +       

        +       Ä㻹¿ÉÒÔʹÓàpostmaster -B Ñ¡ÏîÔö¼Óºó¶Ë½ø³ÌʹÓõĹ²ÏíÄڴ滺³åµÄÊýÄ¿¡£Èç¹ûÄã°ÑÕâ¸ö²ÎÊýÉèÖõÃÌ«´ó£¬postmaster           
        +       ¿ÉÄÜÎÞ·¨Æô¶¯£¬ÒòΪÄãÒѾ­³¬¹ýÁËÄãµÄÄÚºËÔÚ¹²ÏíÄÚ´æ¿Õ¼äÉϵÄÏÞÖÆ¡£Ã¿¸ö»º³åÇøÊÇ 8K ²¢ÇÒȱʡ 64 ¸ö»º³åÇø¡£

                  

        +       Ä㻹¿ÉÒÔʹÓúǫ́½ø³ÌµÄ -S Ñ¡ÏîÀ´Ôö¼Óÿ¸öºǫ́½ø³ÌÓÃÓÚÁÙʱÅÅÐòÓõÄ×î´óÄÚ´æÊýÁ¿¡£-S ÖµÊÇÒÔK×ֽڼƵģ¬È±Ê¡ÊÇ 512 £¨Ò²¾ÍÊÇ˵£¬512K£©¡£

        Ä㻹¿ÉÒÔʹÓà          

        +               CLUSTER ÃüÁîÀ´°Ñ±íÀïµÄÊý¾Ý°´ÕÕij¸öË÷Òý½øÐоۼ¯´æ·Å¡£²ÎÔÄ CLUSTER µÄÊÖ²áÒ³»ñÈ¡¸ü¶àϸ½Ú¡£          
        +           

        3.7) PostgreSQL Àï¿ÉÒÔ»ñµÃʲôÑùµÄµ÷ÊÔÌØÐÔ£¿

                  
        +       

        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£©Í¨³£»áÐÞ¸Äϵͳ±íºÍÊý¾Ý±íµÄÄÚ²¿¸ñʽ¡£ÕâЩ±ä»¯Ò»°ã±È½Ï¸´ÔÓ£¬Òò´ËÎÒÃDz»Î¬Êý¾ÝÎļþµÄÏòºó¼æÈÝ¡£dump           
        +           ½«Êý¾Ý°´ÕÕͨÓõĸñʽÊä³ö£¬Ëæºó¿ÉÒÔ±»ÖØÐ¼ÓÔØ²¢Ê¹ÓÃеÄÄÚ²¿¸ñʽ¡£

        +       

        +           ´ÅÅÌÎļþ¸ñʽûÓб仯µÄÉý¼¶£¬¿ÉÒÔÓà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£¬ÕâÑùËü½«´òÓ¡³öÖ´ÐÐÄã¸ø³öµÄÃüÁîËùÓõIJéѯ¡£          
        +           

        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
        +    Ò»¸ö±íÀïµÄ×î´óË÷ÒýÊýÁ¿£¿ÎÞÏÞÖÆ
        +       µ±È»£¬Êµ¼ÊÉÏûÓÐÕæÕýµÄÎÞÏÞÖÆ£¬»¹ÊÇÒªÊÜ¿ÉÓôÅÅ̿ռ䡢¿ÉÓÃÄÚ´æ/½»»»ÇøµÄÖÆÔ¼¡£
        +       

        +       ±íµÄ×î´ó³ß´ç 16 TB ²»ÐèÒª²Ù×÷ϵͳ¶Ô´óÎļþµÄÖ§³Ö¡£´ó±íÓöà¸ö 1        
        +        GB µÄÎļþ´æ´¢£¬Òò´ËÎļþϵͳ³ß´çµÄÏÞÖÆÊDz»ÖØÒªµÄ¡£          
        +       

        Èç¹ûȱʡµÄ¿é´óСÔö³¤µ½ 32K £¬×î´óµÄ±í³ß´çºÍ×î´óÁÐÊý¿ÉÒÔÔö¼Ó¡£

                  
        +       

        4.6)´æ´¢Ò»¸öµäÐÍµÄÆ½ÃæÎļþÀïµÄÊý¾ÝÐèÒª¶àÉÙ´ÅÅ̿ռ䣿

        +       Ò»¸ö Postgres Êý¾Ý¿â×î¶à¿ÉÄÜÐèÒªÏ൱ÓÚÔÚÒ»¸öÆ½ÃæÎļþÀï´æ´¢ÏàͬÊý¾ÝµÄ5±¶µÄ´ÅÅ̿ռ䡣          
        +       

        ÀýÈ磬¼ÙÉèÓÐÒ»¸ö 100,000 ÐеÄÎļþ£¬Ã¿ÐÐÓÐÒ»¸öÕûÊýºÍÒ»¸öÎı¾ÃèÊö¡£¼ÙÉèÎı¾´®µÄƽ¾ù³¤¶Èλ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£©
        +          
        +       

        Ë÷Òý²»ÐèÒªÕâô¶àµÄ¶îÍâÏûºÄ£¬µ«Ò²È·Êµ°üÀ¨±»Ë÷ÒýµÄÊý¾Ý£¬Òò´ËËüÃÇÒ²¿ÉÄܴܺó¡£

        +       

        ¿ÕÖµ´æ·ÅÔÚλͼÖУ¬Òò´ËÕ¼ÓúÜÉٵĿռ䡣

        +       

        4.7)        

        +        ÈçºÎ²é¿´±í¡¢Ë÷Òý¡¢Êý¾Ý¿âÒÔ¼°Óû§µÄ¶¨Ò壿  
        +        psql ÓÐÐí¶à·´Ð±¸ÜÃüÁîÓÃÓÚÏÔʾÕâЩÐÅÏ¢¡£Óà\? ¿´¿´¶¼ÓÐÄÄЩ¡£ÒÔ pg_ ´òÍ·µÄϵͳ±íÒ²ÃèÊöÁËÕâЩÐÅÏ¢¡£ psql -l           
        +       ¿ÉÒÔÁгöËùÓеÄÊý¾Ý¿â¡£
        +       

        Ò²¿ÉÒÔÊÔÊÔÎļþ pgsql/src/tutorial/syscat.source¡£ËüÑÝʾÁËÐí¶à´ÓÊý¾Ý¿âϵͳ±íÀï»ñÈ¡ÐÅÏ¢ÐèÒªµÄ           

        +               SELECT¡£
        +           

        4.8) ÎҵIJéѯºÜÂý»òÕßûÓÐÀûÓÃË÷Òý¡£ÎªÊ²Ã´£¿

                  
        +       

        +       ²¢·Çÿ¸ö²éѯ¶¼»á×Ô¶¯Ê¹ÓÃË÷Òý¡£Ö»ÓÐÔÚ±íµÄ´óС³¬¹ýÒ»¸ö×îСֵ£¬²¢ÇÒ²éѯֻѡÔñ±íÖнÏС±ÈÀýµÄÐÐʱ²ÉÓÃʹÓÃË÷Òý¡£ÕâÊÇÒòΪË÷ÒýɨÃèÒýÆðµÄËæ¼´´ÅÅÌ´æÈ¡¿ÉÄܱÈÖ±½ÓµØ¶ÁÈ¡±í£¨Ë³ÐòɨÃ裩¸üÂý¡£ÎªÁËÅжÏÊÇ·ñʹÓÃË÷Òý£¬PostgreSQL           
        +       ±ØÐë»ñµÃÓйرíµÄͳ¼ÆÖµ¡£ÕâЩͳ¼ÆÖµ¿ÉÒÔʹÓàVACUUM ANALYZE£¬»ò ANALYZE           
        +       »ñµÃ¡£Ê¹ÓÃͳ¼ÆÖµ£¬ÓÅ»¯Æ÷ÖªµÀ±íÖÐÓжàÉÙÐУ¬¾ÍÄܹ»¸üºÃµØÅжÏÊÇ·ñÀûÓÃË÷Òý¡£Í³¼ÆÖµ¶ÔÈ·¶¨ÓÅ»¯µÄÁ¬½Ó˳ÐòºÍÁ¬½Ó·½·¨Ò²ºÜÓÐÓá£ÔÚ±íµÄÄÚÈÝ·¢Éú±ä»¯Ê±£¬Ó¦¶¨ÆÚ½øÐÐͳ¼ÆÖµµÄ»ñÈ¡¡£
        +       

        +       Ë÷Òýͨ³£²»ÓÃÓÚ ORDER BY »òÖ´ÐÐÁ¬½Ó¡£¶ÔÒ»¸ö´ó±íµÄÒ»´Î˳ÐòɨÃ裬ÔÙ×öÒ»¸öÏÔʽµÄÅÅÐòͨ³£±ÈË÷ÒýɨÃèÒª¿ì¡£          
        +       

        µ«ÊÇ£¬ÔÚ LIMIT ºÍ ORDER BY ½áºÏʹÓÃʱ¾­³£»áʹÓÃË÷Òý£¬ÒòΪֻ»á·µ»Ø±íµÄһС²¿·Ö¡£Êµ¼ÊÉÏ£¬ËäÈ» MAX() ºÍ MIN() ²¢²»Ê¹ÓÃË÷Òý£¬Í¨¹ý¶Ô           

        +           ORDER BY ºÍ LLIMIT Ê¹ÓÃË÷ÒýÈ¡µÃ×î´óÖµºÍ×îСֵҲÊÇ¿ÉÒԵģº
                  
        +           
        +            SELECT col
                  
        +            FROM tab
                  
        +            ORDER BY col [ DESC ]
                  
        +            LIMIT 1;          
        +       

        µ±Ê¹ÓÃͨÅä·û²Ù×÷£¬ÀýÈç LIKE »ò ~ Ê±£¬Ë÷ÒýÖ»ÄÜÔÚÌØ¶¨µÄÇé¿öÏÂʹÓ㺠 

        •  ×Ö·û´®µÄ¿ªÊ¼²¿·Ö±ØÐëÊÇÆÕͨ×Ö·û´®£¬Ò²¾ÍÊÇ˵£º
        •    
        +          
        • LIKE Ä£Ê½²»ÄÜÒÔ % ´òÍ·¡£
        • ~ £¨ÕýÔò±í´ïʽ£©Ä£Ê½±ØÐëÒÔ ^ ´òÍ·¡£
           
        +          
      • ×Ö·û´®²»ÄÜÒÔÆ¥Åä¶à¸ö×Ö·ûµÄģʽÀà´òÍ·£¬ÀýÈç [a-e]¡£
      • ´óСдÎ޹صIJéÕÒ£¬Èç ILIKE ºÍ ~* µÈ²»Ê¹ÓÃË÷Òý¡£µ«¿ÉÒÔÓà4.12 ½ÚÃèÊöµÄº¯ÊýË÷Òý¡£
      • ÔÚ×ö initdb Ê±±ØÐë²ÉÓÃȱʡµÄ±¾µØÉèÖàC locale¡£
      •           
        +           

        4.9)        

        +            ÎÒÈçºÎ²ÅÄÜ¿´µ½²éѯÓÅ»¯Æ÷ÊÇÔõÑù´¦ÀíÎҵIJéѯµÄ£¿  
        +           ²Î¿¼ 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 Algorithm£¬GA£©¼Ó¿ì¶à±íÁ¬½ÓµÄ²éѯÓÅ»¯¡£ËüÔÊÐíͨ¹ý·ÇÇî¾ÙËÑË÷´¦Àí´óµÄÁ¬½Ó²éѯ¡£          

        +           

        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                
        +        ±ä³¤×Ö½ÚÐòÁУ¨±ä³¤µÄ¶þ½øÖÆÊý¾Ý£©
        +        
        +        ÔÚϵͳ±íºÍÔÚһЩ´íÎóÐÅÏ¢ÀïÄ㽫¿´µ½ÄÚ²¿Ãû³Æ¡£ 
        +        
        +        ÉÏÃæ×îºóËÄÖÖÀàÐÍÊÇ"varlena"£¨±ä³¤£©ÀàÐÍ£¨Ò²¾ÍÊÇ˵£¬¿ªÍ·µÄËĸö×Ö½ÚÊdz¤¶È£¬ºóÃæ²ÅÊÇÊý¾Ý£©¡£ÓÚÊÇʵ¼ÊÕ¼ÓõĿռä±ÈÉùÃ÷µÄ´óСҪ¶àһЩ¡£È»¶øÕâЩÀàÐͶ¼¿ÉÒÔ±»Ñ¹Ëõ´æ´¢£¬Ò²¿ÉÒÔÓàTOAST ÍÑ»ú´æ´¢£¬Òò´Ë´ÅÅ̿ռäÒ²¿ÉÄܱÈÔ¤ÏëµÄÒªÉÙ¡£
                  
        +        
        +        CHAR(n) ×îÊʺÏÓÚ´æ´¢³¤¶È»ù±¾²î²»¶àµÄ×Ö·û´®¡£VARCHAR(n) ÔÚ´æ´¢ÏÞÖÆÁË×î´ó³¤¶ÈµÄ±ä³¤×Ö·û´®ÊÇ×îºÃµÄ¡£TEXT ÊÊÓÃÓÚ´æ´¢²»ÏÞÖÆ³¤¶ÈµÄ×Ö·û´®£¬×î´ó¿É´ï 1G¡£BYTEA ÓÃÓÚ´æ´¢¶þ½øÖÆÊý¾Ý£¬ÓÈÆäÊǰüº¬ 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 Ä£¿éµÄ DBI£¬oid Öµ¿ÉÒÔͨ¹ý $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/software/docs/pkgs/pgsql/glossary/glossary.html 
        +        ¡£  

        +        

        4.18)           

        +           ÎªÊ²Ã´ÎÒÊÕµ½´íÎó¡°ERROR: Memory exhausted in AllocSetAlloc()¡±£¿
        +        

        ÕâºÜ¿ÉÄÜÊÇϵͳµÄÐéÄâÄÚ´æÓùâÁË£¬»òÕßÄں˶ÔijЩ×ÊÔ´Óнϵ͵ÄÏÞÖÆÖµ¡£ÔÚÆô¶¯ postmaster Ö®Ç°ÊÔÊÔÏÂÃæµÄÃüÁ 
                 

        +        
        +            ulimit -d 262144
                  
        +            limit datasize 256m
                  
        +        
        +        È¡¾öÓÚÄãÓõĠshell£¬ÉÏÃæÃüÁîÖ»ÓÐÒ»ÌõÄܳɹ¦£¬µ«ÊÇËü½«°ÑÄãµÄ½ø³ÌÊý¾Ý¶ÎÏÞÖÆÉèµÃ±È½Ï¸ß£¬Òò¶øÒ²ÐíÄÜÈòéѯÍê³É¡£ÕâÌõÃüÁîÓ¦ÓÃÓÚµ±Ç°½ø³Ì£¬ÒÔ¼°ËùÓÐÔÚÕâÌõÃüÁîÔËÐк󴴽¨µÄ×Ó½ø³Ì¡£Èç¹ûÄãÊÇÔÚÔËÐÐ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¡£

                  
        +        

        4.21) ÎÒÈçºÎ´´½¨Ò»¸öȱʡֵÊǵ±Ç°Ê±¼äµÄ×ֶΣ¿

                  
        +        

        ʹÓàCURRENT_TIMESTAMP£º
                  

        +        
        +            CREATE TABLE test(x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP);

                  
        +        

        4.22) ÎªÊ²Ã´Ê¹ÓàIN µÄ×Ó²éѯÕâôÂý£¿

                  
        +        

        Ŀǰ£¬ÎÒÃÇͨ¹ýΪÍâ²éѯµÄÿһÐÐ˳ÐòɨÃè×Ó²éѯµÄ½á¹ûÀ´Á¬½Ó×Ó²éѯºÍÍâ²éѯ¡£Èç¹û×Ó²éѯ·µ»ØÉÙÊý¼¸ÐУ¬¶øÍâ²éѯ·µ»ØºÜ¶àÐУ¬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 £¨ÍâÁ¬½Ó£©£¿

                  
        +        

        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)           

        +           ÈçºÎʹÓÃÉæ¼°¶à¸öÊý¾Ý¿âµÄ²éѯ£¿
        +        

        ûÓа취²éѯµ±Ç°Êý¾Ý¿âÖ®ÍâµÄÊý¾Ý¿â¡£ÒòΪ PostgreSQL ¼ÓÔØÊý¾Ý¿âÏà¹ØµÄϵͳĿ¼£¨ÏµÍ³±í£©£¬¿çÊý¾Ý¿âµÄ²éѯÈçºÎÖ´ÐÐҲδÃ÷È·¡£
                  

        +        
        +        contrib/dblink ÔÊÐí²ÉÓú¯Êýµ÷ÓÃʵÏÖ¿ç¿â²éѯ¡£µ±È»¿ÉÒÔͬʱÁ¬½Óµ½²»Í¬µÄÊý¾Ý¿â²¢ÔÚ¿Í»§¶ËºÏ²¢½á¹û¡£

                  
        +        

        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)           

        +           ÓÐÄÄЩÊý¾Ý¸´ÖÆÑ¡Ï
        +        

        Óм¸ÖÖÖ÷/´Ó·½Ê½µÄ¸´ÖÆÑ¡Ïî¡£ÕâЩѡÏîÖ»ÔÊÐíÖ÷Êý¾Ý¿â½øÐиüУ¬´ÓÊý¾Ý¿âÖ»ÄܽøÐжÁ¡£ÍøÒ³          

        +        http://gborg.PostgreSQL.org/genpage?replication_research           
        +        µÄ×îºóÁгöÁËÕâЩѡÏî¡£ÔÚ  http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php          
        +        ÕýÔÚ½øÐÐÒ»¸ö¶àÖ÷±¾¸´ÖƵĽâ¾ö·½°¸¡£

                 
        +        

        4.28)           

        +           ÓÐÄÄЩÊý¾Ý¼ÓÃÜÑ¡Ï
        +           
        +           
        +        
        +        

        contrib/pgcrypto °üº¬Á˺ܶàÔÚ SQL          

        +        ²éѯÖÐʹÓõļÓÃܺ¯Êý¡£¼ÓÃܿͻ§¶Ëµ½·þÎñÆ÷¶Ë´«ÊäÊý¾ÝµÄΨһ·½·¨ÊÇÔÚ pg_hba.conf          
        +        ÖвÉÓàhostss ¡£ 
                 
        +        
        +        7.3          
        +        °æ±¾ÖÐ×Ô¶¯¶ÔÊý¾Ý¿âÓû§ÃÜÂë½øÐмÓÃÜ¡£ÔÚÒÔǰµÄ°æ±¾ÖУ¬±ØÐëÔÚ          
        +        postgresql.conf Öдò¿ª PASSWORD_ENCRYPTION          
        +        Ñ¡Ïî¡£·þÎñÆ÷¿ÉÒÔÔËÐÐÔÚ¼ÓÃܵÄÎļþϵͳÉÏ£¨ÒÔ´ïµ½¼ÓÃܵÄÄ¿µÄ£©¡£
        +        
        +        --------------------------------------------------------------------------------

        +        À©Õ¹ 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 
        +        ÈñàÒëÆ÷×Ô¶¯Éú³ÉÍ·ÎļþµÄÒÀÀµ¹ØÏµ¡£

        +   
        +