diff options
-rw-r--r-- | doc/FAQ_chinese | 143 | ||||
-rw-r--r-- | doc/src/FAQ/FAQ_chinese.html | 1770 |
2 files changed, 1032 insertions, 881 deletions
diff --git a/doc/FAQ_chinese b/doc/FAQ_chinese index e39c0c77a9f..cae9589bd55 100644 --- a/doc/FAQ_chinese +++ b/doc/FAQ_chinese @@ -141,7 +141,7 @@ £¨Portions copyright (c) 1996-2002, PostgreSQL Global Development Group - Portions Copyright (c) 1994-6 Regents of the University of + Portions Copyright (c) 1994-6 Regents of the University of California£© ÔÊÐíΪÈκÎÄ¿µÄʹÓ㬿½±´£¬Ð޸ĺͷַ¢Õâ¸öÈí¼þºÍËüµÄÎĵµ¶ø²»ÊÕÈ¡ÈκηÑÓà @@ -277,7 +277,7 @@ µÄÊé½ÌÊÚ SQL¡££¨Òë×¢£ºÎÒÏÂÔØµ½±¾µØÁË¡££©ÔÚ http://www.commandprompt.com/ppbook ÓÐÁíÍâÒ»±¾¹ØÓÚ PostgreSQL µÄÊé¡£ÔÚhttp://www.intermedia.net/support/sql/sqltut.shtm£¬http://ourw - orld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM ºÍ + orld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM ºÍ http://sqlcourse.com ÓÐÒ»¸ö²»´íµÄÈëÃŽ̡̳£ ÁíÒ»¸öÊÇ "Teach Yourself SQL in 21 Days, Second @@ -320,7 +320,6 @@ ͸´ÔÓµÄËøµÈ¡£ÎÒÃÇ»¹ÓÐһЩËüÃÇûÓеÄÌØÐÔ£¬ÈçÓû§¶¨ÒåÀàÐÍ£¬¼Ì³Ð£¬ ¹æÔòºÍ¶à°æ±¾²¢ÐпØÖÆÒÔ¼õÉÙËøµÄÕùÓõȡ£ - ÐÔÄÜ PostgreSQL ºÍÆäËûÉÌÓúͿªÔ´µÄÊý¾Ý¿â¾ßÓÐÀàËÆµÄÐÔÄÜ¡£¶ÔijЩ´¦ÀíËü±È½Ï¿ì£¬¶ÔÆ @@ -338,7 +337,6 @@ ²âÊÔ£¬²¢ÇÒÎÒÃǵķ¢²¼ÀúÊ·ÏÔʾÎÒÃÇ¿ÉÒÔÌṩÎȶ¨µÄ£¬Àι̵ģ¬¿ÉÓÃÓÚÉ ú²úʹÓõİ汾¡£ÎÒÃÇÏàÐÅÔÚÕâ·½ÃæÎÒÃÇÓëÆäËûµÄÊý¾Ý¿âÈí¼þÊÇÏ൱µÄ¡£ - Ö§³Ö ÎÒÃǵÄÓʼþÁбíÌṩһ¸ö·Ç³£´óµÄ¿ª·¢ÈËÔ±ºÍÓû§µÄ×éÒÔ°ïÖú½â¾öËùÅöµ ½µÄÈκÎÎÊÌâ¡£ÎÒÃDz»Äܱ£Ö¤¿Ï¶¨Äܽâ¾öÎÊÌ⣬Ïà±È֮ϣ¬ÉÌÓà DBMS @@ -347,7 +345,6 @@ »¹ÒªºÃ¡£»¹ÓÐһЩÉÌÒµÐÔµÄÔ¤°ü×°µÄÖ§³Ö£¬¿ÉÒÔ¸øÌṩ¸øÄÇЩÐèÒªµÄÈË¡ ££¨²ÎÔÄÖ§³Ö FAQ Ìõ¿î 1.6 С½Ú¡££© - ¼Û¸ñ ÎÒÃǶÔÈκÎÓÃ;¶¼Ãâ·Ñ£¬°üÀ¨ÉÌÓúͷÇÉÌÓÃÄ¿µÄ¡£Äã¿ÉÒÔ²»¼ÓÏÞÖÆµØÏòÄ ãµÄ²úÆ·Àï¼ÓÈëÎÒÃǵĴúÂ룬³ýÁËÄÇЩÎÒÃÇÔÚÉÏÃæµÄ°æÈ¨ÉùÃ÷ÀïÉùÃ÷µÄ @@ -667,7 +664,7 @@ 4.7) ÈçºÎ²é¿´±í¡¢Ë÷Òý¡¢Êý¾Ý¿âÒÔ¼°Óû§µÄ¶¨Ò壿 - psql ÓÐÐí¶à·´Ð±¸ÜÃüÁîÓÃÓÚÏÔʾÕâЩÐÅÏ¢¡£Óà \? ¿´¿´¶¼ÓÐÄÄЩ¡£ÒÔ pg_ + psql ÓÐÐí¶à·´Ð±¸ÜÃüÁîÓÃÓÚÏÔʾÕâЩÐÅÏ¢¡£Óà \? ¿´¿´¶¼ÓÐÄÄЩ¡£ÒÔ pg_ ´òÍ·µÄϵͳ±íÒ²ÃèÊöÁËÕâЩÐÅÏ¢¡£ psql -l ¿ÉÒÔÁгöËùÓеÄÊý¾Ý¿â¡£ Ò²¿ÉÒÔÊÔÊÔÎļþ @@ -692,10 +689,10 @@ ³£»áʹÓÃË÷Òý£¬ÒòΪֻ»á·µ»Ø±íµÄһС²¿·Ö¡£Êµ¼ÊÉÏ£¬ËäÈ» MAX() ºÍ MIN() ²¢²»Ê¹ÓÃË÷Òý£¬Í¨¹ý¶Ô ORDER BY ºÍ LLIMIT ʹÓÃË÷ÒýÈ¡µÃ×î´óÖµºÍ×îСֵҲÊÇ¿ÉÒԵģº - SELECT col - FROM tab - ORDER BY col [ DESC ] - LIMIT 1; + SELECT col + FROM tab + ORDER BY col [ DESC ] + LIMIT 1; µ±Ê¹ÓÃͨÅä·û²Ù×÷£¬ÀýÈç LIKE »ò ~ ʱ£¬Ë÷ÒýÖ»ÄÜÔÚÌØ¶¨µÄÇé¿öÏÂʹÓ㺠* ×Ö·û´®µÄ¿ªÊ¼²¿·Ö±ØÐëÊÇÆÕͨ×Ö·û´®£¬Ò²¾ÍÊÇ˵£º @@ -740,11 +737,11 @@ ²Ù×÷·û ~ ´¦ÀíÕýÔò±í´ïʽƥÅ䣬¶ø ~* ´¦Àí´óСдÎ޹صÄÕýÔò±í´ïʽƥÅä¡£´óдЩÎÞ¹ØµÄ LIKE ±äÖÖ³ÉΪ ILIKE¡£ ´óСдÎ޹صĵÈʽ±È½Ïͨ³£Ð´×ö£º - SELECT * - FROM tab - WHERE lower(col) = 'abc'; + SELECT * + FROM tab + WHERE lower(col) = 'abc'; ÕâÑù½«²»»áʹÓñê×¼µÄË÷Òý¡£µ«ÊÇ¿ÉÒÔ´´½¨Ò»¸ö¿É±»ÀûÓõĺ¯ÊýË÷Òý: - CREATE INDEX tabindex ON tab (lower(col)); + CREATE INDEX tabindex ON tab (lower(col)); 4.13) ÔÚÒ»¸ö²éѯÀÎÒÔõÑù¼ì²âÒ»¸ö×Ö¶ÎÊÇ·ñΪ NULL£¿ @@ -752,15 +749,14 @@ 4.14) ¸÷ÖÖ×Ö·ûÀàÐÍÖ®¼äÓÐʲô²»Í¬£¿ - ÀàÐÍ ÄÚ²¿Ãû³Æ ˵Ã÷ - -------------------------------------------------- - "char" char 1¸ö×Ö·û character - CHAR(#) bpchar - ¶¨³¤×Ö·û´®£¬Êµ¼ÊÊý¾Ý²»×㶨Ò峤¶Èʱ£¬ÒÔ¿Õ¸ñ²¹Æë - VARCHAR(#) varchar + ÀàÐÍ ÄÚ²¿Ãû³Æ ˵Ã÷ + -------------------------------------------------- + "char" char 1¸ö×Ö·û character + CHAR(#) bpchar ¶¨³¤×Ö·û´®£¬Êµ¼ÊÊý¾Ý²»×㶨Ò峤¶Èʱ£¬ÒÔ¿Õ¸ñ²¹Æë + VARCHAR(#) varchar Ö¸¶¨ÁË×î´ó³¤¶È£¬±ä³¤×Ö·û´®£¬²»×㶨Ò峤¶ÈµÄ²¿·Ö²»²¹Æë - TEXT text ´®³¤¶È½öÊÜÐеÄ×î´ó³¤¶ÈÏÞÖÆ - BYTEA bytea ±ä³¤×Ö½ÚÐòÁУ¨±ä³¤µÄ¶þ½øÖÆÊý¾Ý£© + TEXT text ´®³¤¶È½öÊÜÐеÄ×î´ó³¤¶ÈÏÞÖÆ + BYTEA bytea ±ä³¤×Ö½ÚÐòÁУ¨±ä³¤µÄ¶þ½øÖÆÊý¾Ý£© ÔÚϵͳ±íºÍÔÚһЩ´íÎóÐÅÏ¢ÀïÄ㽫¿´µ½ÄÚ²¿Ãû³Æ¡£ ÉÏÃæ×îºóËÄÖÖÀàÐÍÊÇ"varlena"£¨±ä³¤£©ÀàÐÍ£¨Ò²¾ÍÊÇ˵£¬¿ªÍ·µÄËĸö×Ö½ÚÊdz¤¶ È£¬ºóÃæ²ÅÊÇÊý¾Ý£©¡£ÓÚÊÇʵ¼ÊÕ¼ÓõĿռä±ÈÉùÃ÷µÄ´óСҪ¶àһЩ¡£È»¶øÕâЩÀàÐ @@ -776,18 +772,17 @@ PostgreSQL Ö§³Ö SERIAL Êý¾ÝÀàÐÍ¡£ËüÔÚ×Ö¶ÎÉÏ×Ô¶¯´´½¨Ò»¸öÐòÁкÍË÷Òý¡£ÀýÈ磬 - CREATE TABLE person ( - id SERIAL, - name TEXT - ); + 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 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¡£ @@ -796,8 +791,8 @@ Ò»ÖÖ·½·¨ÊÇÔÚ²åÈë֮ǰÏÈÓú¯Êý nextval() ´ÓÐòÁжÔÏóÀï¼ìË÷³öÏÂÒ»¸ö SERIAL Öµ£¬È»ºóÔÙÏÔʽ²åÈ롣ʹÓà 4.15.1 ÀïµÄÀý±í£¬¿ÉÓÃαÂëÕâÑùÃèÊö£º - new_id = execute("SELECT nextval('person_id_seq')"); - execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise + new_id = execute("SELECT nextval('person_id_seq')"); + execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')"); ÕâÑù»¹ÄÜÔÚÆäËû²éѯÖÐʹÓôæ·ÅÔÚ new_id ÀïµÄÐÂÖµ£¨ÀýÈ磬×÷Ϊ person ±íµÄÍâ¼ü£©¡£×¢Òâ×Ô¶¯´´½¨µÄ SEQUENCE ¶ÔÏóµÄÃû³Æ½«»áÊÇ @@ -805,8 +800,8 @@ ·Ö±ðÊÇÄãµÄ±íµÄÃû³ÆºÍÄãµÄ SERIAL ×ֶεÄÃû³Æ¡£ ÀàËÆµÄ£¬ÔÚ SERIAL ¶ÔÏóȱʡ²åÈëºóÄã¿ÉÒÔÓú¯Êý currval() ¼ìË÷¸Õ¸³ÖµµÄ SERIAL Öµ£¬ÀýÈ磬 - execute("INSERT INTO person (name) VALUES ('Blaise Pascal')"); - new_id = execute("SELECT currval('person_id_seq')"); + 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() @@ -836,11 +831,11 @@ Öµ¡£¿ÉÒÔÔÚ 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'; + 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ÒÚʱ½«Òç³ö¡£Ã»ÓÐÈ˱¨¸æ³öÏÖ¹ýÒç³ö£¬¶øÎÒÃÇ´òË ãÔÚÓÐÈ˱¨¸æÖ®Ç°Ïû³ýÕâ¸öÏÞÖÆ¡£ @@ -851,15 +846,15 @@ һЩԴ´úÂëºÍһЩ¾ÉÒ»µãµÄÎĵµÊ¹ÓÃһЩÓиü³£ÓÃÓ÷¨µÄÊõÓï¡£ÏÂÃæÊÇÆäÖÐÒ»²¿ ·Ö£º - table, relation, class - row, record, tuple - column, field, attribute - retrieve, select - replace, update - append, insert - OID, serial value - portal, cursor - range variable, table name, table alias + table, relation, class + row, record, tuple + column, field, attribute + retrieve, select + replace, update + append, insert + OID, serial value + portal, cursor + range variable, table name, table alias ÓÐÒ»¸öͨÓÃÊý¾Ý¿âÊõÓïµÄÁÐ±í£ºhttp://hea-www.harvard.edu/MST/simul/softw are/docs/pkgs/pgsql/glossary/glossary.html ¡£ @@ -867,8 +862,8 @@ ÕâºÜ¿ÉÄÜÊÇϵͳµÄÐéÄâÄÚ´æÓùâÁË£¬»òÕßÄں˶ÔijЩ×ÊÔ´Óнϵ͵ÄÏÞÖÆÖµ¡£ÔÚÆô ¶¯ postmaster ֮ǰÊÔÊÔÏÂÃæµÄÃüÁ - ulimit -d 262144 - limit datasize 256m + ulimit -d 262144 + limit datasize 256m È¡¾öÓÚÄãÓÃµÄ shell£¬ÉÏÃæÃüÁîÖ»ÓÐÒ»ÌõÄܳɹ¦£¬µ«ÊÇËü½«°ÑÄãµÄ½ø³ÌÊý¾Ý¶ÎÏÞÖÆÉèµÃ±È½Ï¸ß£ ¬Òò¶øÒ²ÐíÄÜÈòéѯÍê³É¡£ÕâÌõÃüÁîÓ¦ÓÃÓÚµ±Ç°½ø³Ì£¬ÒÔ¼°ËùÓÐÔÚÕâÌõÃüÁîÔËÐк @@ -894,32 +889,31 @@ 4.21) ÎÒÈçºÎ´´½¨Ò»¸öȱʡֵÊǵ±Ç°Ê±¼äµÄ×ֶΣ¿ ʹÓà CURRENT_TIMESTAMP£º - CREATE TABLE test(x int, modtime timestamp DEFAULT - 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 col IN (SELECT subcol FROM subtab); ¸ÄΪ£º - SELECT * - FROM tab - WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col); + 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 ON (t1.col = t2.col); »ò - SELECT * - FROM t1 LEFT OUTER JOIN t2 USING (col); + SELECT * + FROM t1 LEFT OUTER JOIN t2 USING (col); ÕâÁ½¸öµÈ¼ÛµÄ²éѯÔÚ t1.col ºÍ t2.col ÉÏ×öÁ¬½Ó£¬²¢ÇÒ·µâ»?t1 ÖÐËùÓÐδÁ¬½ÓµÄÐУ¨ÄÇЩÔÚ t2 ÖÐûÓÐÆ¥ÅäµÄÐУ©¡£ÓÒ[Íâ]Á¬½Ó(RIGHT OUTER JOIN)½«·µ»Ø t2 ÖÐδÁ¬½ÓµÄÐС£ÍêÈ«ÍâÁ¬½Ó£¨FULL OUTER JOIN£©½«·µ»Ø t1 ºÍ @@ -928,14 +922,14 @@ £¨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 + 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) ÈçºÎʹÓÃÉæ¼°¶à¸öÊý¾Ý¿âµÄ²éѯ£¿ @@ -961,8 +955,7 @@ 4.27) ÓÐÄÄЩÊý¾Ý¸´ÖÆÑ¡Ï Óм¸ÖÖÖ÷/´Ó·½Ê½µÄ¸´ÖÆÑ¡Ïî¡£ÕâЩѡÏîÖ»ÔÊÐíÖ÷Êý¾Ý¿â½øÐиüУ¬´ÓÊý¾Ý¿âÖ»Ä - ܽøÐжÁ¡£ÍøÒ³ - http://gborg.PostgreSQL.org/genpage?replication_research + ܽøÐжÁ¡£ÍøÒ³ http://gborg.PostgreSQL.org/genpage?replication_research µÄ×îºóÁгöÁËÕâЩѡÏî¡£ÔÚ http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php ÕýÔÚ½øÐÐÒ»¸ö¶àÖ÷±¾¸´ÖƵĽâ¾ö·½°¸¡£ diff --git a/doc/src/FAQ/FAQ_chinese.html b/doc/src/FAQ/FAQ_chinese.html index 493fbeb8fe0..744496dd627 100644 --- a/doc/src/FAQ/FAQ_chinese.html +++ b/doc/src/FAQ/FAQ_chinese.html @@ -1,522 +1,593 @@ +<?xml version="1.0"?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!-- saved from url=(0063)file://I:\Wlzhang\MyDoc\postgresql\FAQcn.files\postgres-faq.htm --> -<!-- saved from url=(0046)http://laser.zhengmai.com.cn/postgres-faq.html --><HTML><HEAD><TITLE>PostgreSQL - FAQ-ch</TITLE> - <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=gb2312"> - <META content="Microsoft FrontPage 4.0" name="GENERATOR"> - </HEAD> - <BODY aLink="#0000ff" bgColor="#ffffff" link="#ff0000" text="#000000" vLink="#a00000"> - <H1>PostgreSQL ³£¼ûÎÊÌ⣨FAQ£©</H1> - ×î½ü¸üУº2003 Äê 01 Ô 06 ÈÕ ÐÇÆÚÒ» 22:27:35 CST - <P>Ŀǰά»¤ÈËÔ±£ºBruce Momjian (<A href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>) - <BR> - ÖÐÎİæÎ¬»¤ÈËÔ±£ººÎΰƽ £¨laser@pgsqldb.com - £©<P>±¾ÎĵµµÄ×îа汾¿ÉÒÔÔÚ<a href="http://www.postgresql.org/files/documentation/faqs/FAQ.html">http://www.postgresql.org/files/documentation/faqs/FAQ.html</a> - ²é¿´¡£<P>²Ù×÷ϵͳƽ̨Ïà¹ØµÄÎÊÌâÔÚ<a href="http://www.postgresql.org/docs/faq/">http://www.postgresql.org/docs/faq/</a>Àï»Ø´ð¡£<br> - <HR> - <CENTER> - <H2>³£¼ûÎÊÌâ</H2> - </CENTER> - <a href="#1.1">1.1</a>) - PostgreSQL ÊÇʲô£¿¸ÃÔõô·¢Òô£¿ - <BR> - <a href="#1.2">1.2</a>) - PostgreSQL µÄ°æÈ¨ÊÇʲô? - <BR> - <A href="#1.3">1.3</A>) - PostgreSQL ÔËÐÐÔÚʲô Unix ƽ̨ÉÏ£¿ - <BR> - <A href="#1.4">1.4</A>) ¿ÉÓÃµÄ·Ç Unix - ƽ̨ÓÐÄÇЩ£¿ - <BR> - <A href="#1.5">1.5</A>) ÎÒ´ÓÄÄÀïÄܵõ½ - PostgreSQL£¿ - <BR> - <A href="#1.6">1.6</A>) ÎÒ´ÓÄÄÀïÄܵõ½¶Ô - PostgreSQL µÄÖ§³Ö£¿ - <BR> - <A href="#1.7">1.7</A>) - PostgreSQL ×îеİ汾ÊÇʲô£¿ - <BR> - <A href="#1.8">1.8</A>) ÓÐÄÄЩ¿ÉÓÃµÄ - PostgreSQL µÄÎĵµ£¿ - <BR> - <A href="#1.9">1.9</A>) ÎÒÈçºÎÁ˽âÒÑÖªµÄ BUG - »òȱʧµÄÌØÐÔ£¿ - <BR> - <A href="#1.10">1.10</A>) ÎÒÓ¦¸ÃÔõÑùѧϰ - SQL £¿ - <BR> - <A href="#1.11">1.11</A>) - PostgreSQL ÊÇ Y2K ¼æÈݵÄÂ𣿠- <BR> - <A href="#1.12">1.12</A>) - ÎÒÓ¦¸ÃÔõÑù¼ÓÈ뿪·¢¶ÓÎ飿 - <BR> - <A href="#1.13">1.13</A>) - ÎÒÓ¦¸ÃÔõÑùÌá½»Ò»¸ö BUG ±¨¸æ£¿ - <BR> - <A href="#1.14">1.14</A>) - PostgreSQL ºÍÆäËû DBMS ±ÈÆðÀ´ÈçºÎ£¿<br> - <a href="#1.15">1.15</a>) ÎÒÓ¦¸ÃÔõÑùÔÞÖú - PostgreSQL £¿ - <CENTER> - <H2>Óû§¿Í»§¶ËÎÊÌâ</H2> - </CENTER> - <A href="#2.1">2.1</A>) ÓÐ - PostgreSQL µÄ ODBC Çý¶¯³ÌÐòô£¿ - <BR> - <A href="#2.2">2.2</A>) ÓÐʲô¹¤¾ß¿ÉÒÔ°Ñ - PostgreSQL ÓÃÓÚ Web Ò³Ãæ£¿ - <BR> - <A href="#2.3">2.3</A>) - PostgreSQL ÓµÓÐͼÐÎÓû§½çÃæÂ𣿠- <BR> - <A href="#2.4">2.4</A>) - ÎÒÃÇ¿ÉÒÔÓÃʲôÓïÑÔºÍ PostgreSQL ´ò½»µÀ£¿ - <CENTER> - <H2>ϵͳ¹ÜÀíÎÊÌâ</H2> - </CENTER> - <a href="#3.1">3.1</a>) ÎÒÔõÑùÄÜ°Ñ - PostgreSQL ×°ÔÚ /usr/local/pgsql ÒÔÍâµÄµØ·½£¿ - <BR> - <a href="#3.2">3.2</a>) µ±ÎÒÔËÐÐ - postmaster ʱ£¬³öÏÖ<I> Bad System Call</I>£¨ÏµÍ³µ÷ÓÃ´í£©»ò Core Dumped ´íÎó¡£ÎªÊ²Ã´£¿ - <BR> - <a href="#3.3">3.3</a>) µ±ÎÒÊÔͼÔËÐÐ - postmaster ʱ£¬³öÏÖ <I>IpcMemoryCreate</I> ´íÎó¡£ÎªÊ²Ã´£¿ - <BR> - <a href="#3.4">3.4</a>) µ±ÎÒÊÔͼÔËÐÐ - postmaster ʱ£¬³öÏÖ <I>IpcSemaphoreCreate</I> ´íÎó¡£ÎªÊ²Ã´£¿ - <BR> - <a href="#3.5">3.5</a>) - ÎÒÈçºÎ¿ØÖÆÀ´×ÔÆäËûÖ÷»úµÄÁ¬½Ó£¿ - <BR> - <a href="#3.6">3.6</a>) - ÎÒÔõÑùµ÷ÕûÊý¾Ý¿âÒýÇæÒÔ»ñµÃ¸üºÃµÄÐÔÄÜ£¿ - <BR> - <a href="#3.7">3.7</a>) - PostgreSQL Àï¿ÉÒÔ»ñµÃʲôÑùµÄµ÷ÊÔÌØÐÔ£¿ - <BR> - <a href="#3.8">3.8</a>) - ΪʲôÔÚÊÔͼÁ¬½ÓµÇ¼ʱÊÕµ½¡°Sorry, too many clients¡± ÏûÏ¢£¿<br> - <a href="#3.9">3.9</a>) - pgsql_tmp Ŀ¼Àï¶¼ÓÐЩʲô£¿<br> - <a href="#3.10">3.10</a>) ΪʲôҪÔÚÉý¼¶ - PostgreSQL ·¢²¼°æ±¾Ê±×ö dump ºÍ restore £¿ - <CENTER> - <H2>²Ù×÷ÎÊÌâ</H2> - </CENTER> - <a href="#4.1">4.1</a>) - ¶þ½øÖÆÓαêºÍÆÕͨÓαêÖ®¼äµÄÇø±ðÊÇʲô£¿ - <BR> - <a href="#4.2">4.2</a>) - ÈçºÎֻѡÔñÒ»¸ö²éѯ½á¹ûµÄÍ·¼¸ÐУ¿ - <BR> - <a href="#4.3">4.3</a>) - ÎÒÈçºÎ»ñȡһ¸öÊý¾Ý¿âÖбíµÄÁÐ±í£¬»òÕßÊÇÆäËûÎÒÄÜÔÚ <I>psql </I>Àï¿´µ½µÄ¶«Î÷£¿ - <BR> - <a href="#4.4">4.4</a>) - ÔõÑù´Ó±íÀïÃæÉ¾³ýÒ»ÁУ¿ - <BR> - <a href="#4.5">4.5</a>) - Ò»ÐУ¬Ò»¸ö±í£¬Ò»¸ö¿âµÄ×î´ó³ß´çÊǶàÉÙ£¿ - <BR> - <a href="#4.6">4.6</a>) - ´æ´¢Ò»¸öµäÐ͵ÄÎı¾ÎļþÀïµÄÊý¾ÝÐèÒª¶àÉÙ´ÅÅ̿ռ䣿 - <BR> - <a href="#4.7">4.7</a>) - ÈçºÎ²é¿´±í¡¢Ë÷Òý¡¢Êý¾Ý¿âÒÔ¼°Óû§µÄ¶¨Ò壿 - <BR> - <a href="#4.8">4.8</a>) - ÎҵIJéѯºÜÂý»òÕßûÓÐÀûÓÃË÷Òý¡£ÎªÊ²Ã´£¿ - <BR> - <a href="#4.9">4.9</a>) - ÎÒÈçºÎ²ÅÄÜ¿´µ½²éѯÓÅ»¯Æ÷ÊÇÔõÑù´¦ÀíÎҵIJéѯµÄ£¿ - <BR> - <a href="#4.10">4.10</a>) R-tree - Ë÷ÒýÊÇʲô£¿ - <BR> - <a href="#4.11">4.11</a>) - ʲôÊÇ»ùÒò²éѯÓÅ»¯£¨Genetic Query Optimization£©£¿ - <BR> - <a href="#4.12">4.12</a>) - ÎÒÔõÑù×öÕýÔò±í´ïʽËÑË÷ºÍ´óСдÎ޹صÄÕýÔò±í´ïʽ²éÕÒ£¿ÔõÑùÀûÓÃË÷Òý½øÐдóСдÎ޹زéÕÒ£¿ - <BR> - <a href="#4.13">4.13</a>) - ÔÚÒ»¸ö²éѯÀÎÒÔõÑù¼ì²âÒ»¸ö×Ö¶ÎÊÇ·ñΪ NULL£¿ - <BR> - <a href="#4.14">4.14</a>) - ¸÷ÖÖ×Ö·ûÀàÐÍÖ®¼äÓÐʲô²»Í¬£¿ - <BR> - <a href="#4.15.1">4.15.1</a>) - ÎÒÔõÑù´´½¨Ò»¸öÐòÁкÅ/×Ô¶¯µÝÔöµÄ×ֶΣ¿ - <BR> - <a href="#4.15.2">4.15.2</a>) - ÎÒÈçºÎ»ñµÃÒ»¸ö²åÈëµÄÐòÁкŵÄÖµ£¿ - <BR> - <a href="#4.15.3">4.15.3</a>) ʹÓà - currval() ºÍ nextval() »áµ¼ÖÂºÍÆäËûÓû§µÄÎÉÂÒÇé¿ö£¨race condition£©Âð£¿<br> - <a href="#4.15.4">4.15.4</a>) - Ϊʲô²»ÔÚÊÂÎñÒì³£ÖÐÖ¹ºóÖØÓÃÐòÁкÅÄØ£¿ÎªÊ²Ã´ÔÚÐòÁкÅ×ֶεÄȡֵÖдæÔÚ¼ä¶ÏÄØ£¿ - <BR> - <a href="#4.16">4.16</a>) ʲôÊÇ - OID£¿Ê²Ã´ÊÇ TID £¿ - <BR> - <a href="#4.17">4.17</a>) - PostgreSQL ʹÓõÄһЩÊõÓïµÄº¬ÒåÊÇʲô£¿ - <BR> - <a href="#4.18">4.18</a>) - ΪʲôÎÒÊÕµ½´íÎó¡°<i>ERROR: Memory exhausted in AllocSetAlloc()</i>¡±£¿<br> - <a href="#4.19">4.19</a>) - ÎÒÈçºÎ²ÅÄÜÖªµÀËùÔËÐÐµÄ PostgreSQL µÄ°æ±¾£¿ - <BR> - <a href="#4.20">4.20</a>) - ΪʲôÎҵĴó¶ÔÏó²Ù×÷µ¼Ö´íÎó¡°<I>invalid large obj descriptor¡±£¨·Ç·¨µÄ´ó¶ÔÏóÃèÊö·û£©</I>£¿ - <BR> - <a href="#4.21">4.21</a>) - ÎÒÈçºÎ´´½¨Ò»¸öȱʡֵÊǵ±Ç°Ê±¼äµÄ×ֶΣ¿ - <BR> - <a href="#4.22">4.22</a>) ΪʲôʹÓà <TT>IN</TT> - µÄ×Ó²éѯÕâôÂý£¿ - <BR> - <a href="#4.23">4.23</a>) ÈçºÎ½øÐÐ - outer join £¨ÍâÁ¬½Ó£©£¿<br> - <a href="#4.24">4.24</a>) - ÈçºÎʹÓÃÉæ¼°¶à¸öÊý¾Ý¿âµÄ²éѯ£¿<br> - <a href="#4.25">4.25</a>) - ÈçºÎÈú¯Êý·µ»Ø¶àÐлò¶àÁУ¿<br> - <a href="#4.26">4.26</a>) ΪʲôÔÚ - PL/PgSQL º¯ÊýÖв»Äܿɿ¿µØ´´½¨»òɾ³ýÁÙʱ±í£¿<br> - <a href="#4.27">4.27</a>) - ÓÐÄÄЩÊý¾Ý¸´ÖÆÑ¡Ï<br> - <a href="#4.28">4.28</a>) - ÓÐÄÄЩÊý¾Ý¼ÓÃÜÑ¡Ï - <CENTER> - <H2>À©Õ¹ PostgreSQL</H2> - </CENTER> - <A href="#5.1">5.1</A>) - ÎÒдÁËÒ»¸öÓû§¶¨Ò庯Êý¡£µ±ÎÒÔÚ<I> psql</I> ÀïÔËÐÐʱ£¬ÎªÊ²Ã´»áµ¼Ö core dump£¿ - <BR> - <a href="#5.2">5.2</a>) ÎÒÈçºÎÄܸø - PostgreSQL ¹±Ï×һЩͦ²»´íµÄÐÂÀàÐͺͺ¯Êý£¿ - <BR> - <a href="#5.3">5.3</a>) - ÎÒÔõÑùдһ¸ö·µ»ØÒ»Ìõ¼Ç¼µÄ C º¯Êý£¿ - <BR> - <a href="#5.4">5.4</a>) - ÎÒÐÞ¸ÄÁËÒ»¸öÔ´Îļþ£¬ÎªÊ²Ã´ÖØÐ±àÒëºóûÓп´µ½¸Ä±ä£¿ - <BR> - <HR> - <CENTER> - <H2>³£¼ûÎÊÌâ</H2> - </CENTER> - <H4><A name="1.1"></A>1.1) PostgreSQL ÊÇʲô£¿¸ÃÔõô·¢Òô£¿</H4> - PostgreSQL ¶Á×÷ <I>Post-Gres-Q-L</I><i> ¡£</i> - <p>PostgreSQL ÊÇÏÂÒ»´ú DBMS µÄÑо¿ÔÐÍ POSTGRES Êý¾Ý¿â¹ÜÀíϵͳµÄÔöÇ¿°æ¡£PostgreSQL ÔÚ±£³Ö POSTGRES - µÄÇ¿´óµÄÊý¾ÝÄ£ÐͺͷḻµÄÊý¾ÝÀàÐ͵Ļù´¡ÉÏ£¬ÓÃÒ»¸öÀ©Õ¹Á赀 SQL ×Ó¼¯È¡´úÁËÔÏ鵀 PostQuel ²éѯÓïÑÔ¡£PostgreSQL - ÊÇ×ÔÓɵIJ¢ÇÒËùÓÐÔ´´úÂë¶¼¿ÉÒÔ»ñµÃ¡£</p> - <P>PostgreSQL µÄ¿ª·¢ÓÉ²Î¼Ó PostgreSQL ¿ª·¢ÓʼþÁбíµÄÒ»¸ö¿ª·¢ÈËԱС×é½øÐС£Ä¿Ç°µÄе÷ÈËÊÇ Marc G. Fournier £¨<A href="mailto:scrappy@postgreSQL.org">scrappy@postgreSQL.org</A> - £©¡££¨¹ØÓÚÈçºÎ¼ÓÈë²Î¼û1.6½Ú£©¡£Õâ¸ö¶ÓÎéÏÖÔÚ¸ºÔð PostgreSQL µÄËùÓпª·¢¡£ - <P> - PostgreSQL 1.01 µÄ×÷ÕßÊÇ Andrew Yu ºÍ Jolly - Chen¡£»¹ÓÐÐí¶àÆäËûÈËÎªÒÆÖ²£¬²âÊÔ£¬µ÷ÊÔºÍÔöÇ¿´úÂë×öÁË´óÁ¿¹±Ïס£PostgreSQL µÄ×î³õÆðÔ´ Postgres£¬ÊÇÔÚ¼ÓÖÝ´óѧ²®¿ËÀû·ÖУµÄ Michael - Stonebraker ½ÌÊÚµÄÖ¸µ¼Ï£¬ÓÉÐí¶àÑо¿Éú£¬±¾¿ÆÉúºÍ±à³ÌÖ°Ô±Íê³ÉµÄ¡£ - <P>Õâ¸öÈí¼þ×î³õÔÚ²®¿ËÀûµÄÃû×ÖÊÇ Postgres¡£ÔÚ 1995 Ä꣬µ±Ôö¼ÓÁË SQL ¹¦Äܺó£¬ËüµÄÃû×Ö¸Ä³É Postgres95¡£ÔÚ 1996ÄêÄ©£¬²Å¸ÄÃûΪ - PostgreSQL¡£ - <H4><A name="1.2"></A>1.2) PostgreSQL µÄ°æÈ¨ÊÇʲô?</H4> - PostgreSQL ÊÜÏÂÃæµÄ°æÈ¨Ô¼Êø¡£ - <P> - PostgreSQL Êý¾Ý¿â¹ÜÀíϵͳ - <P> - £¨PostgreSQL Data Base Management System£©<P>²¿·Ö°æÈ¨£¨c£©1996-2002£¬PostgreSQL È«Çò¿ª·¢Ð¡×é<br> - ²¿·Ö°æÈ¨£¨c£©1994-6 ¼ÓÖÝ´óѧ¶Ê - <P>£¨Portions copyright (c) 1996-2002, PostgreSQL Global Development Group<br> - Portions Copyright (c) 1994-6 Regents of the University of California£© - <P> - ÔÊÐíΪÈκÎÄ¿µÄʹÓ㬿½±´£¬Ð޸ĺͷַ¢Õâ¸öÈí¼þºÍËüµÄÎĵµ¶ø²»ÊÕÈ¡ÈκηÑÓ㬲¢ÇÒÎÞÐëÇ©ÊðÒò´Ë¶ø²úÉúµÄÖ¤Ã÷£¬Ç°ÌáÊÇÉÏÃæµÄ°æÈ¨ÉùÃ÷ºÍ±¾¶ÎÒÔ¼°ÏÂÃæÁ½¶ÎÎÄ×Ö³öÏÖÔÚËùÓп½±´ÖС£ - <P> - £¨Permission to use, copy, modify, and distribute this software and its - documentation for any purpose, without fee, and without a written agreement is - hereby granted, provided that the above copyright notice and this paragraph and - the following two paragraphs appear in all copies.£© - <P> - ÔÚÈκÎÇé¿öÏ£¬¼ÓÖÝ´óѧ¶¼²»³Ðµ£ÒòʹÓôËÈí¼þ¼°ÆäÎĵµ¶øµ¼ÖµĶÔÈκε±ÊÂÈ˵ÄÖ±½ÓµÄ£¬¼ä½ÓµÄ£¬ÌØÊâµÄ£¬¸½¼ÓµÄ»òÕßÏà°é¶øÉúµÄË𻵣¬°üÀ¨ÀûÒæËðʧµÄÔðÈΣ¬¼´Ê¹¼ÓÖÝ´óѧÒѾ½¨ÒéÁËÕâЩËðʧµÄ¿ÉÄÜÐÔʱҲÊÇÈç´Ë¡£ - <P> - £¨IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR - DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST - PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF - THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH - DAMAGE.£© - <P> - ¼ÓÖÝ´óѧÃ÷È··ÅÆúÈκα£Ö¤£¬°üÀ¨µ«²»¾ÖÏÞÓÚÄ³Ò»ÌØ¶¨ÓÃ;µÄÉÌÒµºÍÀûÒæµÄÒþº¬±£Ö¤¡£ÕâÀïÌṩµÄÕâ·ÝÈí¼þÊÇ»ùÓÚ¡°µ±×÷ÊÇ¡±µÄ»ù´¡µÄ£¬Òò¶ø¼ÓÖÝ´óѧûÓÐÔðÈÎÌṩά»¤£¬Ö§³Ö£¬¸üУ¬ÔöÇ¿»òÕßÐ޸ĵķþÎñ¡£<P>£¨THE - UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT - NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND - THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, - SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.£©<br> - <br> - ÉÏÃæ¾ÍÊÇ BSD °æÈ¨ÉùÃ÷£¬Ò»¸ö¾µäµÄ¿ªÔ´°æÈ¨ÉùÃ÷¡£Ëü¶ÔÔ´´úÂëµÄʹÓÃδ×÷ÈκÎÏÞÖÆ¡£ÎÒÃÇϲ»¶Ëü²¢ÇÒ²»´òËã¸Ä±äËü¡£ - <H4><A name="1.3"></A>1.3) PostgreSQL ÔËÐÐÔÚʲô Unix ƽ̨ÉÏ£¿</H4> - <p>Ò»°ã˵À´£¬Ò»¸öÏÖ´úµÄ UNIX ¼æÈÝµÄÆ½Ì¨¶¼ÄÜÔËÐÐ PostgreSQL ¡£ÔÚ°²×°Ö¸ÄÏÀïÁгöÁË·¢²¼Ê±¾¹ýÃ÷È·²âÊÔµÄÆ½Ì¨¡£</p> - <H4><A name="1.4"></A>1.4) ¿ÉÓÃµÄ·Ç Unix ƽ̨ÓÐÄÄЩ£¿</H4> - ¿Í»§¶Ë - <p>°Ñ libpq C ¿â£¬psql£¬ÆäËû½Ó¿ÚºÍ¿Í»§¶ËÓ¦ÓóÌÐò±àÒë³É¿ÉÒÔÔÚ MS Windows ƽ̨ÉÏÔËÐÐÊÇ¿ÉÄܵġ£ÕâÖÖÇé¿öÏ£¬¿Í»§¶ËÔÚ MS Windows - ÉÏÔËÐУ¬²¢ÇÒͨ¹ý TCP/IP ÓëÒ»¸öÔËÐÐÔÚÎÒÃÇÖ§³ÖµÄ Unix ƽ̨ÉϵķþÎñÆ÷½øÐÐͨѶ¡£·¢²¼°æ±¾Öаüº¬Ò»¸öÎļþ win32.mak ÓÃÓÚÉú³É Win32 - libpq ¿âºÍ psql ¡£PostgreSQL Ò²¿ÉÒÔºÍ ODBC ¿Í»§¶ËͨѶ¡£</p> - <p>·þÎñÆ÷</p> - <P>Êý¾Ý¿â·þÎñÆ÷ÏÖÔÚ¿ÉÒÔͨ¹ý Cygwin £¬Cygnus µÄ Unix/NT ÒÆÖ²¿âÔÚ Windows NT ºÍ Win2k ÉÏÔËÐС£²ÎÔÄ·¢²¼°æ±¾ÀïµÄ See <i>pgsql/doc/FAQ_MSWIN</i> - Îļþ»ò <a href="http://www.PostgreSQL.org/docs/faq-mswin.html">http://www.PostgreSQL.org/docs/faq-mswin.html</a> - ¡£ - <P>ÒÆÖ²µ½ MS Win NT/2000/XP µÄ±¾»ú°æµÄ¹¤×÷ÕýÔÚ½øÐС£ - <H4><A name="1.5"></A>1.5) ÎÒ´ÓÄÄÀïÄܵõ½ PostgreSQL£¿</H4> - <P>PostgreSQL µÄÖ÷ÄäÃûFTPÕ¾µãÊÇ <a href="ftp://ftp.PostgreSQL.org/pub">ftp://ftp.PostgreSQL.org/pub</a>£¬¾µÏñÕ¾µã¿ÉÒԲο¼ÎÒÃÇÍøÕ¾µÄÖ÷Ò³¡£ - <H4><A name="1.6"></A>1.6) ÎÒ´ÓÄÄÀïÄܵõ½¶Ô PostgreSQL µÄÖ§³Ö£¿</H4> - <P>Ö÷ÒªµÄÓʼþÁбíÊÇ£º<A href="mailto:pgsql-general@postgreSQL.org">pgsql-general@postgreSQL.org</A>¡£¿ÉÒÔÔÚÄÇÀïÌÖÂÛÓÐ¹Ø - PostgreSQL µÄÎÊÌâ¡£Òª¼ÓÈëÁÐ±í£¬·¢Ò»·âÓʼþÄÚÈÝ£¨²»ÊÇÖ÷ÌâÐУ©Îª - <PRE> subscribe - end</PRE> - µÄÓʼþµ½ <A href="mailto:pgsql-general-request@postgreSQL.org">pgsql-general-request@postgreSQL.org</A> - ¡£ - <P>»¹¿ÉÒÔ»ñȡժҪÁÐ±í¡£Òª¼ÓÈëÕâ¸öÁÐ±í£¬·¢Óʼþµ½£º<A href="mailto:pgsql-general-digest-request@postgreSQL.org">pgsql-general-digest-request@postgreSQL.org</A>£¬ÆäÄÚÈÝΪ£º - <PRE> subscribe - end</PRE> - ÿµ±Ö÷Áбí´ïµ½´óÔ¼ 30k µÄÏûÏ¢ÄÚÈÝʱ£¬ÕªÒª¾Í·¢Ë͸øÕâ¸öÁбíµÄ³ÉÔ±¡£ - <P>»¹¿ÉÒԲμӳô³æÓʼþÁÐ±í¡£Òª¼ÓÈëÕâ¸öÁÐ±í£¬·¢ËÍÒ»¸öÓʼþµ½ <A href="mailto:bugs-request@postgreSQL.org">bugs-request@postgreSQL.org</A>£¬ÄÚÈÝΪ£º - <PRE> subscribe - end</PRE> - »¹¿ÉÒԲμӿª·¢ÈËÔ±ÓʼþÁÐ±í¡£Òª¼ÓÈëÕâ¸öÁÐ±í£¬·¢ËÍÒ»¸öÓʼþµ½ <A href="mailto:hackers-request@postgreSQL.org">hackers-request@postgreSQL.org</A>£¬ÄÚÈÝΪ£º - <PRE> subscribe - end</PRE> - ÆäËûµÄ¹ØÓÚ PostgreSQL ÓʼþÁбíºÍÆäËûÐÅÏ¢¿ÉÒÔÔÚ PostgreSQL µÄ WWW Ö÷Ò³ÕÒµ½£º <BLOCKQUOTE><A href="http://postgresql.org/">http://postgresql.org/</A></BLOCKQUOTE> - ÔÚ EFNet ÀﻹÓÐÒ»¸ö IRC ƵµÀ£¬ÆµµÀ #PostgreSQL¡£ÎÒÓà unix ÃüÁî<TT>irc -c '#PostgreSQL' "$USER" - irc.phoenix.net</TT> - <P>ÉÌÒµÖ§³Ö¹«Ë¾µÄÁбíÔÚ <a href="http://www.PostgreSQL.org/users-lounge/commercial-support.html">http://www.PostgreSQL.org/users-lounge/commercial-support.html</a> - ¡£ - <H4><A name="1.7"></A>1.7) PostgreSQL ×îеİ汾ÊÇʲô£¿</H4> - PostgreSQL ×îеİ汾Êǰ汾 7.2.3¡££¨Òë×¢£ºÏÖÔÚÓ¦¸ÃÊÇ 7.3.1 ÁË¡££© - <P>ÎÒÃǼƻ®Ã¿ËĸöÔ·¢²¼Ò»¸öÖ÷Òª°æ±¾¡£ - <H4><A name="1.8"></A>1.8) ÓÐÄÄЩ¿ÉÓÃµÄ PostgreSQL µÄÎĵµ£¿</H4> - ÔÚ·¢²¼°üÀïÓÐһЩÊֲᣬÊÖ²áÒ³ºÍһЩСµÄ²âÊÔÀý×Ó¡£²Î¼û /doc Ŀ¼¡££¨Òë×¢£ºÓ¦Îª $PGHOME/doc£©¡£Ä㻹¿ÉÒÔÔÚÏßä¯ÀÀ PostgreSQL - µÄÊֲᣬÔÚ <a href="http://www.PostgreSQL.org/users-lounge/docs/">http://www.PostgreSQL.org/users-lounge/docs/</a> - ¡£<P>ÓÐÁ½±¾¹ØÓÚ PostgreSQL µÄÊéÔÚÏßÌṩ£¬ÔÚ <a href="http://www.PostgreSQL.org/docs/awbook.html"> - http://www.PostgreSQL.org/docs/awbook.html</a> ºÍ <a href="http://www.commandprompt.com/ppbook/"> - http://www.commandprompt.com/ppbook/</a> ¡£ÔÚ <a href="http://www.ca.PostgreSQL.org/books/"> - http://www.ca.PostgreSQL.org/books/</a> ÉÏÓйØÓÚ PostgreSQL µÄ¿É¹ºÊé¼®µÄÁÐ±í¡£ÔÚ <a href="http://techdocs.PostgreSQL.org/"> - http://techdocs.PostgreSQL.org/</a> - ÉÏÊÕ¼¯ÁËÓÐ¹Ø PostgreSQL µÄ¼¼ÊõÎÄÕ¡£ - <P><I>psql</I> - ÓÐһЩ²»´íµÄ \d ÃüÁÏÔʾ¹ØÓÚÀàÐÍ£¬²Ù×÷·û£¬º¯Êý£¬¾Û¼¯µÈµÄÐÅÏ¢¡£ - <P>ÎÒÃÇµÄ web Õ¾µã°üº¬¸ü¶àµÄÎĵµ£®<H4><A name="1.9"></A>1.9) - ÎÒÈçºÎÁ˽âÒÑÖªµÄ BUG ºÍȱʧµÄÌØÐÔ£¿</H4> - PostgreSQL Ö§³ÖÒ»¸öÀ©Õ¹Á赀 SQL-92 µÄ×Ó¼¯¡£²ÎÔÄÎÒÃÇµÄ <A href="http://www.postgresql.org/docs/todo.html"> - TODO</A> <A href="http://www.postgresql.org/docs/todo.html"></A>ÁÐ±í£¬»ñȡһ¸öÒÑÖª³ô³æ£¬È±Ê§ÌØÐÔºÍδÀ´¼Æ»®¡£ - <H4><A name="1.10"></A>1.10) ÎÒÓ¦¸ÃÔõÑùѧϰ SQL£¿</H4> - ÔÚ <A href="http://www.postgresql.org/docs/awbook.html">http://www.postgresql.org/docs/awbook.html</A> - µÄ¹ØÓÚ PostgreSQL µÄÊé½ÌÊÚ SQL¡££¨Òë×¢£ºÎÒÏÂÔØµ½±¾µØÁË¡££©ÔÚ <a href="http://www.commandprompt.com/ppbook/"> - http://www.commandprompt.com/ppbook</a> ÓÐÁíÍâÒ»±¾¹ØÓÚ PostgreSQL µÄÊé¡£ÔÚ<a href="http://www.intermedia.net/support/sql/sqltut.shtm">http://www.intermedia.net/support/sql/sqltut.shtm</a>£¬<a href="http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM">http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM </a> - ºÍ <a href="http://sqlcourse.com/">http://sqlcourse.com</a> - ÓÐÒ»¸ö²»´íµÄÈëÃŽ̡̳£ - <P>ÁíÒ»¸öÊÇ "Teach Yourself SQL in 21 Days, Second Edition"£¨21Ììѧ»áSQL£¬µÚ¶þ°æ£©£¬ÔÚ <A href="http://members.tripod.com/er4ebus/sql/index.htm"> - http://members.tripod.com/er4ebus/sql/index.htm</A> - <P>ÎÒÃǵÄÐí¶àÓû§Ï²»¶ <I>The Practical SQL Handbook, Bowman, Judith S., et al., Addison-Wesley ¡£ </I> - ÆäËûµÄÓÐ<I> The Complete Reference SQL, Groff et al., McGraw-Hill ¡£</I> - <H4><A name="1.11"></A>1.11) PostgreSQL ÊÇ Y2K ¼æÈݵÄÂð£¿</H4> - ÊÇ£¬ÎÒÃǺÜÈÝÒ׿ØÖÆ 2000 AD Ö®ºóºÍ 2000 BC ֮ǰµÄÈÕÆÚ¡£ - <H4><A name="1.12"></A>1.12) ÎÒÓ¦¸ÃÔõÑù¼ÓÈ뿪·¢¶ÓÎ飿</H4> - Ê×ÏÈ£¬ÏÂÔØ×îеÄÔ´´úÂë²¢ÔĶÁÎÒÃÇ web Õ¾µã»ò·¢²¼°üÖÐµÄ PostgreSQL ¿ª·¢ÕßÎĵµ¡£Æä´Î£¬¼ÓÈë pgsql-hackers ºÍ - pgsql-patches ÓʼþÁÐ±í¡£µÚÈý£¬Ïò pgsql-patches Ìá½»¸ßÖÊÁ¿µÄ²¹¶¡³ÌÐò¡£ - <P>ÏÖÔÚ´ó¸ÅÓÐÊ®¼¸¸öÈËÓÐ PostgreSQL CVS ¹éµµ <FONT size="-1">COMMIT</FONT> µÄȨÏÞ¡£ËûÃǶ¼ÒѾÌá½»Á˷dz£¶à¸ßÖÊÁ¿µÄ²¹¶¡ÁË£¬ÒÔÖÁÓÚÏÖÓеÄÌá½»È˺ÜÄѸúÉϽÚ×࣬²¢ÇÒÎÒÃÇÏàÐÅËûÃÇÌá½»µÄ²¹¶¡¶¼ÊǸßÖÊÁ¿µÄ¡£<H4><A name="1.13"></A>1.13) - ÎÒÓ¦¸ÃÔõÑùÌá½»Ò»¸öBUG±¨¸æ£¿</H4> - Çë·ÃÎÊ <a href="http://www.PostgreSQL.org/bugs/bugs.php">http://www.PostgreSQL.org/bugs/bugs.php</a> - µÄ PostgreSQL BugTool Ò³Ãæ, ÄÇÀï¸ø³öÁËÈçºÎÌá½»Ò»¸öBUG±¨¸æµÄÖ¸ÄÏ¡£ - <P>ͬÑùÒ²Òª¿´¿´ÎÒÃÇµÄ ftp Õ¾µã <A href="ftp://ftp.postgresql.org/pub">ftp://ftp.postgreSQL.org/pub</A>£¬¿´ÓÐûÓиüÐ嵀 - PostgreSQL °æ±¾»ò²¹¶¡¡£ - <H4><A name="1.14"></A>1.14) PostgreSQL ºÍÆäËû DBMS ±ÈÆðÀ´ÈçºÎ£¿</H4> - ÆÀ¼ÛÈí¼þÓкü¸ÖÖ·½·¨£ºÌØÐÔ£¬ÐÔÄÜ£¬¿É¿¿ÐÔ£¬Ö§³ÖºÍ¼Û¸ñ¡£ - <DL> - <DT><B>ÌØÐÔ</B> - <DD> - PostgreSQL ÓµÓдóÐÍÉÌÓà DBMS - Àï´ó¶àÊýÌØÐÔ£¬ÀýÈ磺ÊÂÎñ£¬×Ó²éѯ£¬´¥·¢Æ÷£¬ÊÓͼ£¬Íâ¼ü²Î¿¼ÍêÕûÐԺ͸´ÔÓµÄËøµÈ¡£ÎÒÃÇ»¹ÓÐһЩËüÃÇûÓеÄÌØÐÔ£¬ÈçÓû§¶¨ÒåÀàÐÍ£¬¼Ì³Ð£¬¹æÔòºÍ¶à°æ±¾²¢ÐпØÖÆÒÔ¼õÉÙËøµÄÕùÓõȡ£ - <BR> - <DT><B>ÐÔÄÜ</B> - <DD> - PostgreSQL ºÍÆäËûÉÌÓúͿªÔ´µÄÊý¾Ý¿â¾ßÓÐÀàËÆµÄÐÔÄÜ¡£¶ÔijЩ´¦ÀíËü±È½Ï¿ì£¬¶ÔÆäËûһЩ´¦ÀíËü±È½ÏÂý¡£Óë MySQL »ò¸üÇá±ãµÄÊý¾Ý¿âϵͳ±È½Ï£¬ÎÒÃÇÔÚ - insert/update ʱÂý£¬ÒòΪÎÒÃÇÓÐÊÂÎñ´¦Àí¡£µ±È» MySQL ²»¾ßÓÐÎÒÃÇÔÚÉÏÃæµÄ<I>ÌØÐÔ </I>¶ÎÀï¸ø³öµÄÈκÎÌØÐÔ¡£ÎÒÃǵÄÖ÷Òª·½ÏòÊǿɿ¿ÐÔºÍÌØÐÔ£¬¾¡¹ÜÎÒÃÇÔÚÿ´Î·¢²¼Ê±²»¶ÏµØ¸Ä½øÐÔÄÜ¡£ÓÐÒ»¸öºÜÓÐȤµÄÍøÒ³±È½ÏÁË - PostgreSQL ºÍ MySQL <A href="http://openacs.org/why-not-mysql.html">http://openacs.org/why-not-mysql.html</A>¡£<br> - <DT><B>¿É¿¿ÐÔ</B> - <DD> - ÎÒÃÇÖªµÀ DBMS ±ØÐëÊǿɿ¿µÄ£¬·ñÔòËü¾ÍÒ»µãÓö¼Ã»ÓС£ÎÒÃÇŬÁ¦×öµ½·¢²¼¾¹ýÈÏÕæ²âÊԵģ¬Îȶ¨µÄ³ô³æ×îÉٵĴúÂ롣ÿ¸ö°æ±¾ÖÁÉÙÓÐÒ»¸öÔ嵀 beta - ²âÊÔ£¬²¢ÇÒÎÒÃǵķ¢²¼ÀúÊ·ÏÔʾÎÒÃÇ¿ÉÒÔÌṩÎȶ¨µÄ£¬Àι̵ģ¬¿ÉÓÃÓÚÉú²úʹÓõİ汾¡£ÎÒÃÇÏàÐÅÔÚÕâ·½ÃæÎÒÃÇÓëÆäËûµÄÊý¾Ý¿âÈí¼þÊÇÏ൱µÄ¡£ - <BR> - <DT><B>Ö§³Ö</B> - <DD> - ÎÒÃǵÄÓʼþÁбíÌṩһ¸ö·Ç³£´óµÄ¿ª·¢ÈËÔ±ºÍÓû§µÄ×éÒÔ°ïÖú½â¾öËùÅöµ½µÄÈκÎÎÊÌâ¡£ÎÒÃDz»Äܱ£Ö¤¿Ï¶¨Äܽâ¾öÎÊÌ⣬Ïà±È֮ϣ¬ÉÌÓà DBMS - Ò²²¢²»ÊÇ×ÜÄܹ»Ìṩ½â¾ö·½·¨¡£Ö±½ÓÓ뿪·¢ÈËÔ±£¬Óû§Èº£¬ÊÖ²áºÍÔ´³ÌÐò½Ó´¥Áî PostgreSQL µÄÖ§³Ö±ÈÆäËû DBMS - »¹ÒªºÃ¡£»¹ÓÐһЩÉÌÒµÐÔµÄÔ¤°ü×°µÄÖ§³Ö£¬¿ÉÒÔ¸øÌṩ¸øÄÇЩÐèÒªµÄÈË¡££¨²ÎÔÄÖ§³Ö FAQ Ìõ¿î 1.6 С½Ú¡££© - <BR> - <DT><B>¼Û¸ñ</B> - <DD> - ÎÒÃǶÔÈκÎÓÃ;¶¼Ãâ·Ñ£¬°üÀ¨ÉÌÓúͷÇÉÌÓÃÄ¿µÄ¡£Äã¿ÉÒÔ²»¼ÓÏÞÖÆµØÏòÄãµÄ²úÆ·Àï¼ÓÈëÎÒÃǵĴúÂ룬³ýÁËÄÇЩÎÒÃÇÔÚÉÏÃæµÄ°æÈ¨ÉùÃ÷ÀïÉùÃ÷µÄ BSD ·ç¸ñµÄ°æÈ¨Íâ¡£ - </DL> - <h4><a name="1.15"></a>1.15) ÎÒÓ¦¸ÃÔõÑùÔÞÖú PostgreSQL £¿</h4> - <p>×Ô´Ó1996Ä꿪ʼ£¬PostgreSQL - ÒѾÓÐÁËÒ»¸öÓÅÐãµÄ×éÖ¯¡£ÕâЩӦ¸Ã¹é¹¦ÓÚ Marc - Fournier£¬ÊÇËû´´½¨Á˲¢ÔÚÕâЩÄêÒ»Ö±¹ÜÀíÕâ¸ö×éÖ¯¡£</p> - <p>¶ÔÓÚÒ»¸ö¿ªÔ´ÏîÄ¿À´Ëµ£¬ÖÊÁ¿»ù´¡ÉèÊ©ÊǷdz£ÖØÒªµÄ¡£ËüÄÜ·ÀÖ¹³öÏÖÑÏÖØÑÓ³ÙÏîĿǰ½øµÄ»ìÂÒ¡£</p> - <p>ÏÔÈ»£¬Õâ¸ö×éÖ¯µÄÔËת³É±¾²»·Æ¡£Î¬³ÖÆäǰ½øÓи÷ÖÖÔ¶ȵġ¢Ò»´ÎÐԵĿªÖ§¡£Èç¹ûÄã»òÕßÄãµÄ¹«Ë¾ÄܽøÐоèÔùÒÔÖ§³ÖÕâÏîÊÂÒµ£¬Çë·ÃÎÊ <a href="http://store.pgsql.com/shopping/"> - http://store.pgsql.com/shopping/</a> ½øÐоèÔù¡£</p> - <p>ËäÈ»¸ÃÍøÒ³Ìá¼°ÁË PostgreSQL ¹«Ë¾£¬ÕâЩ¾èÔù½«½öÓÃÓÚÖ§³Ö PostgreSQL - ÏîÄ¿£¬²¢²»»áÓÃÓÚ×ÊÖúû¸öÌØ¶¨µÄ¹«Ë¾¡£Èç¹ûÄãÔ¸Ò⣬Ҳ¿ÉÒÔÓʼÄ֧Ʊµ½ÁªÏµµØÖ·¡£</p> - <HR> - <CENTER> - <H2>Óû§¿Í»§¶ËÎÊÌâ</H2> - </CENTER> - <H4><A name="2.1"></A>2.1) ÓÐ PostgreSQL µÄ ODBC Çý¶¯Ã´£¿</H4> - ÓÐÁ½¸ö ODBC Çý¶¯¿ÉÒÔ»ñµÃ£¬PsqlODBC ºÍ OpenLink ODBC.<P>¿ÉÒÔÔÚ<a href="http://gborg.postgresql.org/project/psqlodbc/projdisplay.php">http://gborg.postgresql.org/project/psqlodbc/projdisplay.php</a> - ÏÂÔØ PsqlODBC ¡£ - <P>OpenLink ODBC ¿ÉÒÔ´Ó <A href="http://www.openlinksw.com/">http://www.openlinksw.com/</A> - »ñµÃ¡£ËüÓëËûÃǵıê×¼ ODBC ¿Í»§¶ËÈí¼þ¼æÈÝ£¬Òò¶øÄã¿ÉÒÔÔÚÈκÎËûÃÇÖ§³ÖµÄ¿Í»§¶Ëƽ̨£¨Win, Mac, Unix, VMS£©ÉÏʹÓà PostgreSQL - ODBC¡£ - <P>ËûÃÇ¿ÉÄܽ«Õâ¸ö²úÆ·ÏúÊÛ¸øÄÇЩÐèÒªÉÌÒµÖ§³ÖµÄÓû§£¬µ«ÊÇ×ÜÊÇÓÐÒ»¸ö freeware £¨×ÔÓÉÈí¼þ£©µÄ°æ±¾¿ÉÒԵõ½¡£ÇëѯÎÊ <A href="mailto:postgres95@openlink.co.uk"> - postgres95@openlink.co.uk</A>¡£ - <H4><A name="2.2"></A>2.2) ÓÐʲô¹¤¾ß¿ÉÒÔ°Ñ PostgreSQL ÓÃÓÚ Web Ò³Ãæ£¿</H4> - Ò»¸ö½éÉÜÒÔÊý¾Ý¿âΪºǫ́µÄͦ²»´íµÄ Õ¾µãÊÇ£º<a href="http://www.webreview.com">http://www.webreview.com</a> - ¡£ - <P>¶ÔÓÚ Web ¼¯³É£¬PHP ÊÇÒ»¸ö¼«ºÃµÄ½Ó¿Ú¡£ËüÔÚ£º<A href="http://www.php.net/">http://www.php.net/</A> - ¡£ - <P>¶ÔÓÚ¸´ÔÓµÄÈÎÎñ£¬ºÜ¶àÈ˲ÉÓà Perl ½Ó¿ÚºÍ CGI.pm »ò mod_perl ¡£ - <H4><A name="2.3"></A>2.3) PostgreSQL ÓµÓÐͼÐÎÓû§½çÃæÂð£¿</H4> - Êǵġ£Óм¸¸öÊÊÓÃÓÚ PostgreSQL µÄͼÐνӿڡ£°üÀ¨PgAccess£¨<a href="http://www.pgaccess.com">http://www.pgaccess.com</a>)£¬PgAdmin - II £¨<a href="http://www.pgadmin.org">http://www.pgadmin.org</a>£¬½öÊÊÓÃÓÚWin32£©£¬ - RHDB Admin (<a href="http://sources.redhat.com/rhdb/">http://sources.redhat.com/rhdb/</a>£© - ÒÔ¼° Rekall £¨<a href="http://www.thekompany.com/products/rekall/">http://www.thekompany.com/products/rekall/</a>£¬ - רÓеÄ/proprietary)¡£»¹ÓÐPHPPgAdmin £¨<a href="http://phppgadmin.sourceforge.net/">http://phppgadmin.sourceforge.net/£©</a> - £¬Ò»¸ö»ùÓÚ web µÄ PostgreSQL ·ÃÎʽӿڡ£ - <p>ÎÒÃÇÓÐÒ»¸ö²»´íµÄͼÐÎÓû§½çÃæ£¬³ÆÎª PgAccess £¬ËüÒ²¿ÉÒÔÓÃ×÷±¨±íÉú³ÉÆ÷¡£ÍøÒ³ÊÇ <a href="http://www.pgaccess.org/">http://www.pgaccess.org/</a>¡£</p> - <H4><A name="2.4"></A>2.4) ÎÒÃÇ¿ÉÒÔÓÃʲôÓïÑÔºÍ PostgreSQL ´ò½»µÀ£¿</H4> - <p>´ó¶àÊýÁ÷Ðеıà³ÌÓïÑÔ¶¼ÓзÃÎÊ PostgreSQL µÄ½Ó¿Ú¡£Çë¼ì²é±à³ÌÓïÑÔµÄÀ©Õ¹Ä£¿éÁÐ±í¡£</p> - <p>PostgreSQL ·¢²¼°üÖаüº¬ÁËÒÔϽӿڣº</p> - <ul> - <li> - C (libpq) - <li> - Embedded C (ecpg) - <li> - Java (jdbc) - <li> - Python (PyGreSQL) - <li> - TCL (libpgtcl)</li> - </ul> - <p>ÆäËûµÄ½Ó¿ÚÔÚ <a href="http://gborg.postgresql.org">http://gborg.postgresql.org</a> É쵀 <i>Drivers/Interfaces</i> - С½Ú¡£</p> - <HR> - <CENTER> - <H2>ϵͳ¹ÜÀíÎÊÌâ</H2> - </CENTER> - <H4><A name="3.1"></A>3.1) ÎÒÔõÑùÄÜ°Ñ PostgreSQL ×°ÔÚ /usr/local/pgsql ÒÔÍâµÄµØ·½£¿</H4> - <p>ÔÚÔËÐÐ configure ʱ¼ÓÉÏ --prefix Ñ¡Ïî¡£</p> - <H4><A name="3.2"></A>3.2) µ±ÎÒÔËÐÐ postmaster ʱ£¬³öÏÖ<I> Bad System Call</I>£¨ÏµÍ³µ÷ÓÃ´í£©»ò Core - Dumped ´íÎó¡£ÎªÊ²Ã´£¿</H4> - <p>Õâ¿ÉÄÜÊÇºÜ¶à·½ÃæµÄÎÊÌ⣬ÇëÏȼì²é²Ù×÷ϵͳºËÐÄÊÇ·ñÖ§³Ö System V À©Õ¹¡£PostgreSQL ÐèÒªÄÚºËÖ§³Ö¹²ÏíÄÚ´æºÍÐźŵơ£</p> - <H4><A name="3.3"></A>3.3) µ±ÎÒÊÔͼÔËÐÐ postmaster ʱ£¬³öÏÖ <I>IpcMemoryCreate</I> ´íÎó¡£ÎªÊ²Ã´£¿</H4> - ÄãҪôÊÇûÓÐÔÚÄÚºËÀïÕýÈ·ÅäÖù²ÏíÄڴ棬ҪôÊÇÄãÐèÒªÀ©´óÄãµÄÄں˵ĿÉÓù²ÏíÄÚ´æ¡£ÐèÒªµÄ¹²ÏíÄÚ´æ¾ßÌåµÄÊýÁ¿È¡¾öÓÚÄãµÄÌåϵ½á¹¹ºÍÄãÅäÖÃÄãµÄ postmaster - ÔËÐÐʱʹÓõĻº³åÇøºÍºó¶Ë½ø³ÌÊýÄ¿¡£¶Ô´ó¶àÊýϵͳ£¬Ê¹ÓÃȱʡ»º³åÇøºÍ½ø³ÌÊýĿʱ£¬Äã×îÉÙÐèÒª~1MB¡£Óйع²ÏíÄÚ´æºÍÐźŵƵÄÏêϸÐÅÏ¢Çë²Î¿¼ <a href="http://www.postgresql.org/idocs/index.php?kernel-resources.html"> - PostgreSQL Administrator's Guide</a> ¡£ - <H4><A name="3.4"></A>3.4) µ±ÎÒÊÔͼÔËÐÐ postmaster ʱ£¬³öÏÖ <I>IpcSemaphoreCreate</I> ´íÎó¡£ÎªÊ²Ã´£¿</H4> - <p>Èç¹û´íÎóÐÅÏ¢ÊÇ <I>IpcSemaphoreCreate: semget failed (No space left on device)</I>£¬ÄÇôÔÒòÊÇÄãµÄÄÚºËûÓÐÅäÖÃ×ã¹»µÄÐźŵÆ×ÊÔ´¡£Postgres - µÄÿ¸öDZÔڵĺǫ́½ø³Ì¶¼ÐèÒªÒ»¸öÐźŵơ£Ò»¸öÁÙʱµÄ½â¾ö·½·¨ÊÇÒԱȽÏÉٵĺǫ́½ø³ÌÊý£¨²ÎÊý£©Æô¶¯ postmaster¡£Ê¹Óÿª¹Ø <I>-N</I> ´øÒ»¸öÉÙÓÚȱʡֵ - 32 µÄ²ÎÊýÔËÐÐ postmaster¡£¸ü³¤¾ÃµÄ½â¾ö·½·¨ÊǼӴóÄãµÄÄÚºËµÄ <FONT size="-1">SEMMNS</FONT> ºÍ <FONT size="-1"> - SEMMNI</FONT> ²ÎÊý¡£</p> - <p>ÔÚÊý¾Ý¿â·ÃÎÊÁ¿ºÜ´óʱ£¬ÐźŵƲ»¿ÉÓÿÉÄܵ¼ÖÂϵͳ±ÀÀ£¡£</p> - <P>Èç¹û´íÎóÐÅÏ¢ÊÇÆäËûµÄʲô¶«Î÷£¬Äã¿ÉÄܾ͸ù±¾Ã»ÓÐÔÚÄÚºËÀïÃæÅäÖÃÐźŵÆÖ§³Ö¡£Óйع²ÏíÄÚ´æºÍÐźŵƵÄÏêϸÐÅÏ¢Çë²Î¿¼ <a href="http://www.postgresql.org/idocs/index.php?kernel-resources.html"> - PostgreSQL Administrator's Guide</a> ¡£<H4><A name="3.5"></A>3.5) - ÎÒÈçºÎ¿ØÖÆÀ´×ÔÆäËûÖ÷»úµÄÁ¬½Ó£¿</H4> - <p>ȱʡʱ£¬PostgreSQL Ö»ÔÊÐíͨ¹ý unix ÓòÌ×½Ó×ÖÀ´×Ô±¾»úµÄÁ¬½Ó¡£³ý·ÇÄãʹÓà <I>-i</I> ¿ª¹ØÆô¶¯ <I>postmaster</I>£¬<B>²¢ÇÒ</B>ͨ¹ý¶ÔÓ¦µÄ±à¼ - <I>$PGDATA/pg_hba.conf</I> Îļþ´ò¿ªÁËÖ÷»úΪ»ù´¡£¨ host-based £©µÄÈÏÖ¤£¬·ñÔòÆäËû»úÆ÷ÊDz»ÄÜÓëÄãµÄ»úÆ÷Á¬½ÓµÄ¡£ÕâÑù½«ÔÊÐí - TCP/IP Á¬½Ó¡£</p> - <H4><A name="3.6"></A>3.6) ÎÒÔõÑùµ÷ÕûÊý¾Ý¿âÒýÇæÒÔ»ñµÃ¸üºÃµÄÐÔÄÜ£¿</H4> - <p>µ±È»£¬Ë÷Òý¿ÉÒÔ¼ÓËÙ²éѯ¡£<FONT size="-1">EXPLAIN</FONT> ÃüÁîÔÊÐíÄã¹Û²ì PostgreSQL - ÈçºÎ½âÊÍÄãµÄ²éѯ£¬ÒÔ¼°Ê¹ÓÃÁËÄÄЩË÷Òý¡£</p> - <P>Èç¹ûÄãÕý´¦ÀíÒ»¶Ñ <FONT size="-1">INSERT</FONT>£¬¿¼ÂÇʹÓà <FONT size="-1">COPY</FONT> ÃüÁîÒÔ´óÅúÁ¿µÄ·½Ê½½øÐС£ÕâÑù×ö±Èµ¥¶ÀµÄÒ»¸ö¸ö - <FONT size="-1">INSERT </FONT>¿ìµÃ¶à¡£Æä´Î£¬Ã»Óд¦ÓÚ <FONT size="-1">BEGIN WORK/COMMIT</FONT> - ÊÂÎñ¿éÖ®¼äµÄÓï¾ä±»ÈÏΪÊôÓÚͬһ¸öÊÂÎñ¡£ÊÔ×ÅÔÚÒ»¸öÊÂÎñ¿éÀïÃæ´¦Àí¸ü¶àµÄÓï¾ä¡£ÕâÑù¿ÉÒÔ¼õÉÙÊÂÎñ´øÀ´µÄ¶îÍ⿪Ïú¡£Í¬Ñù£¬ÔÚ×ö´óÁ¿µÄÊý¾Ý¸Ä±äʱ¿¼ÂÇɾ³ýºÍÖØ½¨Ë÷Òý¡£ - <P>»¹Óм¸¸öµ÷½ÚµÄÑ¡Ïî¿ÉÒÔʹÓá£Äã¿ÉÒÔͨ¹ý´ø <I>-o -F</I> Ñ¡ÏîÆô¶¯ postmaster À´½ûÖ¹ fsync()¡£ÕâÑù½«±ÜÃâÿ´ÎÊÂÎñºóµ÷Óà <I>fsync() - </I> - °ÑÊý¾Ýˢе½´ÅÅÌÉÏ¡£ - <P> - Ä㻹¿ÉÒÔʹÓà postmaster -B Ñ¡ÏîÔö¼Óºó¶Ë½ø³ÌʹÓõĹ²ÏíÄڴ滺³åµÄÊýÄ¿¡£Èç¹ûÄã°ÑÕâ¸ö²ÎÊýÉèÖõÃÌ«´ó£¬postmaster - ¿ÉÄÜÎÞ·¨Æô¶¯£¬ÒòΪÄãÒѾ³¬¹ýÁËÄãµÄÄÚºËÔÚ¹²ÏíÄÚ´æ¿Õ¼äÉϵÄÏÞÖÆ¡£Ã¿¸ö»º³åÇøÊÇ 8K ²¢ÇÒȱʡ 64 ¸ö»º³åÇø¡£<P> - Ä㻹¿ÉÒÔʹÓúǫ́½ø³ÌµÄ -S Ñ¡ÏîÀ´Ôö¼Óÿ¸öºǫ́½ø³ÌÓÃÓÚÁÙʱÅÅÐòÓõÄ×î´óÄÚ´æÊýÁ¿¡£-S ÖµÊÇÒÔK×ֽڼƵģ¬È±Ê¡ÊÇ 512 £¨Ò²¾ÍÊÇ˵£¬512K£©¡£<P>Ä㻹¿ÉÒÔʹÓà <FONT size="-1"> - CLUSTER</FONT> ÃüÁîÀ´°Ñ±íÀïµÄÊý¾Ý°´ÕÕij¸öË÷Òý½øÐоۼ¯´æ·Å¡£²ÎÔÄ CLUSTER µÄÊÖ²áÒ³»ñÈ¡¸ü¶àϸ½Ú¡£ - <H4><a name="3.7"></a>3.7) PostgreSQL Àï¿ÉÒÔ»ñµÃʲôÑùµÄµ÷ÊÔÌØÐÔ£¿</H4> - <p>PostgreSQL Óм¸¸öÌØÐÔÓÃÓÚ±¨¸æ×´Ì¬ÐÅÏ¢£¬ÕâЩÐÅÏ¢¿ÉÄܶԵ÷ÊÔÓÃ;ºÜÓаïÖú¡£</p> - <P>Ê×ÏÈ£¬Í¨¹ý¸½´ø --enable-cassert Ñ¡ÏîÔËÐÐ configure£¬Óкܶà <I>assert()</I> - ¼à¿Øºǫ́½ø³ÌºÍÔÚ·¢ÉúÄ³Ð©Î´ÔøÔ¤ÁϵÄÏÖÏóʱֹͣ³ÌÐòÔËÐС£ - <P>postmaster ºÍ postgres ¶¼ÓÐһЩ¿ÉÓõÄÑ¡Ïî¡£Ê×ÏÈ£¬µ±ÄãÆô¶¯ postmaster - ʱ£¬È·±£Äã°Ñ±ê×¼Êä³öºÍ±ê×¼´íÎóÊä³ö¶¨Ïòµ½ÁËÒ»¸öÈÕÖ¾ÎļþÀïÈ¥ÁË£¬Ïó£º - <PRE> cd /usr/local/pgsql - ./bin/postmaster >server.log 2>&1 &</PRE> - ÕâÑù½«ÔÚ PostgreSQL ¶¥¼¶Ä¿Â¼ÏÂÊä³öÒ»¸ö server.log Îļþ¡£Õâ¸öÎļþ°üº¬·þÎñÆ÷Åöµ½µÄÎÊÌâºÍ´íÎóµÄÓÐÓÃÐÅÏ¢¡£postmaster ÓÐÒ»¸ö - -d Ñ¡Ï¸ÃÑ¡ÏîÔÊÐíÎÒÃÇ»ñµÃ¸ü¶àµÄϸ½Ú»ã±¨¡£-d Ñ¡Ïî½ÓÊÜÒ»¸öÊý×Ö±êÃ÷µ÷ÊÔ¼¶±ð¡£ÐèÒª¾¯¸æµÄÊǸߵĵ÷ÊÔ¼¶±ð¿ÉÄÜ»áÉú³É¾Þ´óµÄÈÕÖ¾Îļþ¡£<P>Èç¹û postmaster - ûÓÐÔËÐУ¬Äã¿ÉÒÔÖ±½ÓÔÚÃüÁîÐÐÉÏÆô¶¯ postgres ºǫ́½ø³Ì£¬È»ºóÖ±½Ó¼üÈë SQL Óï¾ä¡£ÎÒÃÇ<B>Ö»</B> - ÍÆ¼öÔÚµ÷ÊÔµÄʱºòÕâô¸É¡£Çë×¢ÒâÕâʱÓû»ÐÐÜÞ¶ø²»ÊǷֺűíʾÓï¾ä½áβ¡£Èç¹ûÄã´ø×ŵ÷ÊÔ·ûºÅ±àÒ룬Äã¿ÉÒÔʹÓÃÒ»¸öµ÷ÊÔÆ÷¹Û¿´·¢ÉúÁËʲôÊÂÇé¡£ÒòΪºǫ́½ø³ÌûÓÐÓÉ - postmaster Æô¶¯µÄ£¬Ëü²»ÊǺÍʵ¼ÊµÄÔËÐл·¾³Ò»Ö£¬¶øÇÒËø¶¨/ºǫ́½»»¥ÎÊÌâ¿ÉÄܲ»ÄÜÖØÏÖ¡£ - <P>Èç¹û postmaster ÒѾÔËÐУ¬¿ÉÔÚÒ»¸ö´°¿ÚÖÐÆô¶¯ <I>psql</I>£¬È»ºóÕÒ³ö <I>psql</I> ¶ÔÓ¦µÄ <I>postgres</I> ½ø³ÌµÄ - <FONT size="-1">PID</FONT>¡£Ê¹ÓÃÒ»¸öµ÷ÊÔÆ÷¸½×ÅÔÚÕâ¸ö <I>postgres </I><FONT size="-1">PID</FONT> - ÉÏ¡£Äã¿ÉÒÔÔÚµ÷ÊÔÆ÷ÀïÉèÖöϵ㲢ÇÒ´Ó <I>psql</I> ÀïÖ´Ðвéѯ¡£Èç¹ûÄãÔÚµ÷ÊÔ <I>postgres</I> µÄÆô¶¯£¬Äã¿ÉÒÔÉèÖà - PGOPTIONS="-W n"£¬È»ºóÆô¶¯ <I>psql</I>¡£ÕâÑù½«µ¼ÖÂÆô¶¯ÑÓ³Ù <I>n</I> - Ã룬ÕâÑùÄã¾Í¿ÉÒÔ¸½¼ÓÒ»¸öµ÷ÊÔÆ÷²¢ÇÒ¸ú×ÙÆô¶¯Ë³ÐòµÄ¹ý³Ì¡£ - <P> - postgres ³ÌÐòÓÐ -s£¬-A£¬ºÍ -t Ñ¡Ïî¿ÉÄÜÔÚµ÷ÊÔºÍÐÔÄܲâÁ¿µÄʱºò·Ç³£ÓÐÓᣠ- <P>Ä㻹¿ÉÒÔ´ø profiling Ö§³Ö±àÒëºǫ́£¬ÒÔ±ã¹Û²ìÄÄЩº¯ÊýÕ¼ÓõÄÖ´ÐÐʱ¼ä½Ï¶à¡£profile Îļþ½«·ÅÔÚ pgsql/data/base/dbname - Ŀ¼Ï¡£¿Í»§¶Ë profile Îļþ½«·ÅÔÚ¿Í»§¶Ëµ±Ç°Ä¿Â¼Ï¡£ÔÚ Linux ÏÂÖ§³Ö profiling ÒªÔÚ±àÒëʱ¼ÓÉÏ<i>-DLINUX_PROFILE </i> - ¡£<H4><a name="3.8"></a>3.8) - ΪʲôÔÚÊÔͼÁ¬½ÓµÇ¼ʱÊÕµ½¡°Sorry, too many clients¡±ÏûÏ¢£¿</H4> - <p>ÄãÐèÒªÔö´ó postmaster Æô¶¯Ê±Ö§³ÖµÄ²¢·¢ºǫ́½ø³ÌÊý¡£</p> - <P>ȱʡÏÞÖÆÊÇ 32 ½ø³Ì¡£Äã¿ÉÒÔͨ¹ý´ø×ÅÊʵ±µÄ <I>-N</I> Öµ¿ª¹ØÆô¶¯ postmaster Ôö¼ÓÕâ¸öÊýÄ¿¡£»òÕßÐÞ¸Ä <i>postgresql.conf</i> - Îļþ¡£ - <P>ҪעÒâÈç¹ûÄã°Ñ <I>-N</I> ÉèÖÃΪ´óÓÚ 32£¬Äã±ØÐëͬÑùÔö´ó <I>-B</I>£¬³¬¹ýËüȱʡµÄ 64£»-B ±ØÐë×îÉÙÊÇ -N - µÄÁ½±¶£¬¶øÇÒΪÁ˸üºÃµÄÐÔÄÜ¿ÉÄÜÒª±ÈÄǸöÊý×ÖÒª´ó¡£¶ÔÓÚ´óÊýÄ¿µÄºó¶Ë½ø³Ì£¬Äã¿ÉÄÜ»¹»á·¢ÏÖÄ㻹ÐèÒªÔö¼ÓÐí¶à Unix - ÄÚºËÅäÖòÎÊýÖµ¡£Òª¼ì²éµÄ¶«Î÷°üÀ¨¹²ÏíÄÚ´æ¿éµÄ×î´ó³ß´ç£¬<FONT size="-1">SHMMAX</FONT>£¬ÐźŵƵÄ×î´óÊýÄ¿£¬<FONT size="-1">SEMMNS</FONT> - ºÍ <FONT size="-1">SEMMNI</FONT>£¬×î´óµÄ½ø³ÌÊý£¬<FONT size="-1">NPROC</FONT>£¬µ¥Óû§×î´ó½ø³ÌÊý£¬<FONT size="-1">MAXUPRC</FONT>£¬ÒÔ¼°´ò¿ªÎļþµÄ×î´óÊýÄ¿£¬<FONT size="-1">NFILE</FONT> - ºÍ <FONT size="-1">NINODE</FONT> - ¡£Postgres ¶ÔÔÊÐíµÄºǫ́½ø³ÌÊýÓÐÏÞÖÆµÄÔÒòÊÇΪÁËÈ·±£ÄãµÄϵͳ²»»áÓùâ×ÊÔ´¡£<P>ÔÚ Postgres ÔçÓÚ 6.5 µÄ°æ±¾£¬×î´óºǫ́½ø³ÌÊýȱʡÊÇ - 64£¬²¢ÇÒ¶ÔËüµÄÐÞ¸ÄÊ×ÏÈÐèÒªÐÞ¸Ä <I>include/storage/sinvaladt.h</I> ÀïµÄ MaxBackendId ³£Á¿£¬È»ºóÖØÐ - BUILD¡£ - <H4><a name="3.9"></a>3.9) pgsql_tmp Ŀ¼Àï¶¼ÓÐЩʲô£¿</H4> - <p>¸ÃĿ¼Ï±£´æÁ˲éѯִÐÐÆ÷Éú³ÉµÄÁÙʱÎļþ¡£ÀýÈ磬Èç¹ûÐèҪΪÂú×ã <FONT size="-1">ORDER BY</FONT> Ìõ¼þ×öÅÅÐò£¬²¢ÇÒÅÅÐòÐèÒª±Èºǫ́µÄ - -S ²ÎÊý¸ø³öµÄ¸ü¶àµÄ¿Õ¼ä£¬ÄÇô¾Í»á´´½¨Ò»¸öÁÙʱÎļþ±£´æ¶à³öÀ´µÄÊý¾Ý¡£</p> - <P>ÁÙʱÎļþÓ¦¸Ã×Ô¶¯É¾³ý£¬²»¹ýÈç¹ûÔÚÅÅÐò¹ý³ÌÖкǫ́±ÀÀ£Á˾ͿÉÄÜÁôÏÂÀ´¡£Í£Ö¹²¢ÖØÆð postmaster ½«»áɾ³ýÕâЩÎļþ¡£ - <BR> - <h4><a name="3.10"></a>3.10) ΪʲôҪÔÚÉý¼¶ PostgreSQL ·¢²¼°æ±¾Ê±×ö dump ºÍ restore £¿</h4> - <p> - PostgreSQL ¿ª·¢×é¶Ôÿ´ÎСµÄÉý¼¶½ö×öÁ˽ÏÉÙµÄÐÞ¸Ä,Òò´Ë´Ó 7.2 Éý¼¶µ½ 7.2.1 ²»ÐèÒª dump ºÍ restore¡£µ«ÊÇÖ÷ÒªµÄÉý¼¶£¨ÀýÈç´Ó - 7.2 µ½ 7.3£©Í¨³£»áÐÞ¸Äϵͳ±íºÍÊý¾Ý±íµÄÄÚ²¿¸ñʽ¡£ÕâЩ±ä»¯Ò»°ã±È½Ï¸´ÔÓ£¬Òò´ËÎÒÃDz»Î¬Êý¾ÝÎļþµÄÏòºó¼æÈÝ¡£dump - ½«Êý¾Ý°´ÕÕͨÓõĸñʽÊä³ö£¬Ëæºó¿ÉÒÔ±»ÖØÐ¼ÓÔØ²¢Ê¹ÓÃеÄÄÚ²¿¸ñʽ¡£</p> - <p> - ´ÅÅÌÎļþ¸ñʽûÓб仯µÄÉý¼¶£¬¿ÉÒÔÓà <i>pg_upgrade</i> ½Å±¾£¬¶ø²»ÐèÒª×ö dump ºÍ restor¡£·¢²¼ËµÃ÷script »áÖ¸Ã÷ <i>pg_upgrade</i> - ¶Ô¸Ã´ÎÉý¼¶ÊÇ·ñ¿ÉÓá£</p> - <HR> - <CENTER> - <H2>²Ù×÷ÎÊÌâ</H2> - </CENTER> - <H4><A name="4.1"></A>4.1) - ¶þ½øÖÆÓαêºÍÆÕͨÓαêÖ®¼äµÄÇø±ðÊÇʲô£¿</H4> - ²ÎÔÄ <FONT size="-1">DECLARE</FONT> ÊÖ²áÒ³»ñÈ¡ÐÅÏ¢¡£ - <H4><a name="4.2"></a>4.2)ÈçºÎÖ» <FONT size="-1">SELECT</FONT> Ò»¸ö²éѯ½á¹ûµÄÍ·¼¸ÐУ¿</H4> - ²ÎÔÄ <FONT size="-1">FETCH</FONT> - ÊÖ²áÒ³£¬»òÕßʹÓà SELECT ... LIMIT.... - <P>¼´Ê¹ÄãÖ»ÐèÒª¿ªÍ·µÄ¼¸ÐУ¬Ò²»áÉæ¼°µ½Õû¸ö²éѯ¡£ÊÔ×ÅʹÓôøÓÐ <FONT size="-1">ORDER BY</FONT> µÄ²éѯ¡£Èç¹ûÓÐÒ»¸öË÷ÒýÓë <FONT size="-1"> - ORDER BY</FONT> Æ¥Å䣬PostgreSQL ¿ÉÄܾÍÖ»´¦ÀíÒªÇóµÄÍ·¼¸Ìõ¼Ç¼£¬·ñÔò½«¶ÔÕû¸ö²éѯ½øÐд¦ÀíÖ±µ½Éú³ÉÐèÒªµÄÐС£ - <H4><a name="4.3"></a>4.3) ÎÒÈçºÎ»ñȡһ¸ö±íµÄÁÐ±í£¬»òÕßÊÇÆäËûÎÒÄÜÔÚ <I>psql</I> Àï¿´µ½µÄ¶«Î÷£¿</H4> - Äã¿ÉÒÔÔĶÁ <I>psql</I> µÄÔ´´úÂëÎļþ<I>pgsql/src/bin/psql/describe.c</I> ¡£Ëü°üÀ¨ÎªÉú³É psql - µÄ·´Ð±¸ÜÃüÁîµÄÊä³öµÄ SQL ÃüÁî¡£Ä㻹¿ÉÒÔ´ø <I>-E</I> Ñ¡ÏîÆô¶¯ <I>psql</I>£¬ÕâÑùËü½«´òÓ¡³öÖ´ÐÐÄã¸ø³öµÄÃüÁîËùÓõIJéѯ¡£ - <H4><a name="4.4"></a>4.4) ÔõÑù´Ó±íÀïÃæÉ¾³ýÒ»ÁУ¿</H4> - <P>7.3 ÀïÔö¼ÓÁË <FONT size="-1">ALTER TABLE DROP COLUMN</FONT>£¬ÒÔÖ§³Ö´ËÏÄÜ¡£ÔÚÒÔǰµÄ°æ±¾ÖУ¬¿ÉÒÔÕâÑù×ö£º</P> - <PRE> BEGIN; +<!-- saved from url=(0046)http://laser.zhengmai.com.cn/postgres-faq.html --> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta name="generator" content= +"HTML Tidy for BSD/OS (vers 12 April 2005), see www.w3.org" /> +<title>PostgreSQL FAQ-ch</title> +<meta http-equiv="Content-Type" content= +"text/html; CHARSET=gb2312" /> +<meta content="Microsoft FrontPage 4.0" name="GENERATOR" /> +</head> +<body alink="#0000FF" bgcolor="#FFFFFF" link="#FF0000" text= +"#000000" vlink="#A00000"> +<h1>PostgreSQL ³£¼ûÎÊÌ⣨FAQ£©</h1> +×î½ü¸üУº2003 Äê 01 Ô 06 ÈÕ ÐÇÆÚÒ» 22:27:35 CST +<p>Ŀǰά»¤ÈËÔ±£ºBruce Momjian (<a href= +"mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</a>)<br /> +ÖÐÎİæÎ¬»¤ÈËÔ±£ººÎΰƽ £¨laser@pgsqldb.com £©</p> +<p>±¾ÎĵµµÄ×îа汾¿ÉÒÔÔÚ<a href= +"http://www.postgresql.org/files/documentation/faqs/FAQ.html">http://www.postgresql.org/files/documentation/faqs/FAQ.html</a> +²é¿´¡£</p> +<p>²Ù×÷ϵͳƽ̨Ïà¹ØµÄÎÊÌâÔÚ<a href= +"http://www.postgresql.org/docs/faq/">http://www.postgresql.org/docs/faq/</a>Àï»Ø´ð¡£<br /> +</p> +<hr /> +<center> +<h2>³£¼ûÎÊÌâ</h2> +</center> +<a href="#1.1">1.1</a>) PostgreSQL ÊÇʲô£¿¸ÃÔõô·¢Òô£¿<br /> +<a href="#1.2">1.2</a>) PostgreSQL µÄ°æÈ¨ÊÇʲô?<br /> +<a href="#1.3">1.3</a>) PostgreSQL ÔËÐÐÔÚʲô Unix ƽ̨ÉÏ£¿<br /> +<a href="#1.4">1.4</a>) ¿ÉÓÃµÄ·Ç Unix ƽ̨ÓÐÄÇЩ£¿<br /> +<a href="#1.5">1.5</a>) ÎÒ´ÓÄÄÀïÄܵõ½ PostgreSQL£¿<br /> +<a href="#1.6">1.6</a>) ÎÒ´ÓÄÄÀïÄܵõ½¶Ô PostgreSQL µÄÖ§³Ö£¿<br /> +<a href="#1.7">1.7</a>) PostgreSQL ×îеİ汾ÊÇʲô£¿<br /> +<a href="#1.8">1.8</a>) ÓÐÄÄЩ¿ÉÓÃµÄ PostgreSQL µÄÎĵµ£¿<br /> +<a href="#1.9">1.9</a>) ÎÒÈçºÎÁ˽âÒÑÖªµÄ BUG »òȱʧµÄÌØÐÔ£¿<br /> +<a href="#1.10">1.10</a>) ÎÒÓ¦¸ÃÔõÑùѧϰ SQL £¿<br /> +<a href="#1.11">1.11</a>) PostgreSQL ÊÇ Y2K ¼æÈݵÄÂð£¿<br /> +<a href="#1.12">1.12</a>) ÎÒÓ¦¸ÃÔõÑù¼ÓÈ뿪·¢¶ÓÎ飿<br /> +<a href="#1.13">1.13</a>) ÎÒÓ¦¸ÃÔõÑùÌá½»Ò»¸ö BUG ±¨¸æ£¿<br /> +<a href="#1.14">1.14</a>) PostgreSQL ºÍÆäËû DBMS ±ÈÆðÀ´ÈçºÎ£¿<br /> +<a href="#1.15">1.15</a>) ÎÒÓ¦¸ÃÔõÑùÔÞÖú PostgreSQL £¿ +<center> +<h2>Óû§¿Í»§¶ËÎÊÌâ</h2> +</center> +<a href="#2.1">2.1</a>) ÓÐ PostgreSQL µÄ ODBC Çý¶¯³ÌÐòô£¿<br /> +<a href="#2.2">2.2</a>) ÓÐʲô¹¤¾ß¿ÉÒÔ°Ñ PostgreSQL ÓÃÓÚ Web +Ò³Ãæ£¿<br /> +<a href="#2.3">2.3</a>) PostgreSQL ÓµÓÐͼÐÎÓû§½çÃæÂð£¿<br /> +<a href="#2.4">2.4</a>) ÎÒÃÇ¿ÉÒÔÓÃʲôÓïÑÔºÍ PostgreSQL ´ò½»µÀ£¿ +<center> +<h2>ϵͳ¹ÜÀíÎÊÌâ</h2> +</center> +<a href="#3.1">3.1</a>) ÎÒÔõÑùÄÜ°Ñ PostgreSQL ×°ÔÚ /usr/local/pgsql +ÒÔÍâµÄµØ·½£¿<br /> +<a href="#3.2">3.2</a>) µ±ÎÒÔËÐÐ postmaster ʱ£¬³öÏÖ <i>Bad System +Call</i>£¨ÏµÍ³µ÷ÓÃ´í£©»ò Core Dumped ´íÎó¡£ÎªÊ²Ã´£¿<br /> +<a href="#3.3">3.3</a>) µ±ÎÒÊÔͼÔËÐÐ postmaster ʱ£¬³öÏÖ +<i>IpcMemoryCreate</i> ´íÎó¡£ÎªÊ²Ã´£¿<br /> +<a href="#3.4">3.4</a>) µ±ÎÒÊÔͼÔËÐÐ postmaster ʱ£¬³öÏÖ +<i>IpcSemaphoreCreate</i> ´íÎó¡£ÎªÊ²Ã´£¿<br /> +<a href="#3.5">3.5</a>) ÎÒÈçºÎ¿ØÖÆÀ´×ÔÆäËûÖ÷»úµÄÁ¬½Ó£¿<br /> +<a href="#3.6">3.6</a>) +ÎÒÔõÑùµ÷ÕûÊý¾Ý¿âÒýÇæÒÔ»ñµÃ¸üºÃµÄÐÔÄÜ£¿<br /> +<a href="#3.7">3.7</a>) PostgreSQL +Àï¿ÉÒÔ»ñµÃʲôÑùµÄµ÷ÊÔÌØÐÔ£¿<br /> +<a href="#3.8">3.8</a>) ΪʲôÔÚÊÔͼÁ¬½ÓµÇ¼ʱÊÕµ½¡°Sorry, too many +clients¡± ÏûÏ¢£¿<br /> +<a href="#3.9">3.9</a>) pgsql_tmp Ŀ¼Àï¶¼ÓÐЩʲô£¿<br /> +<a href="#3.10">3.10</a>) ΪʲôҪÔÚÉý¼¶ PostgreSQL ·¢²¼°æ±¾Ê±×ö +dump ºÍ restore £¿ +<center> +<h2>²Ù×÷ÎÊÌâ</h2> +</center> +<a href="#4.1">4.1</a>) +¶þ½øÖÆÓαêºÍÆÕͨÓαêÖ®¼äµÄÇø±ðÊÇʲô£¿<br /> +<a href="#4.2">4.2</a>) ÈçºÎֻѡÔñÒ»¸ö²éѯ½á¹ûµÄÍ·¼¸ÐУ¿<br /> +<a href="#4.3">4.3</a>) +ÎÒÈçºÎ»ñȡһ¸öÊý¾Ý¿âÖбíµÄÁÐ±í£¬»òÕßÊÇÆäËûÎÒÄÜÔÚ <i>psql</i> +Àï¿´µ½µÄ¶«Î÷£¿<br /> +<a href="#4.4">4.4</a>) ÔõÑù´Ó±íÀïÃæÉ¾³ýÒ»ÁУ¿<br /> +<a href="#4.5">4.5</a>) +Ò»ÐУ¬Ò»¸ö±í£¬Ò»¸ö¿âµÄ×î´ó³ß´çÊǶàÉÙ£¿<br /> +<a href="#4.6">4.6</a>) +´æ´¢Ò»¸öµäÐ͵ÄÎı¾ÎļþÀïµÄÊý¾ÝÐèÒª¶àÉÙ´ÅÅ̿ռ䣿<br /> +<a href="#4.7">4.7</a>) +ÈçºÎ²é¿´±í¡¢Ë÷Òý¡¢Êý¾Ý¿âÒÔ¼°Óû§µÄ¶¨Ò壿<br /> +<a href="#4.8">4.8</a>) +ÎҵIJéѯºÜÂý»òÕßûÓÐÀûÓÃË÷Òý¡£ÎªÊ²Ã´£¿<br /> +<a href="#4.9">4.9</a>) +ÎÒÈçºÎ²ÅÄÜ¿´µ½²éѯÓÅ»¯Æ÷ÊÇÔõÑù´¦ÀíÎҵIJéѯµÄ£¿<br /> +<a href="#4.10">4.10</a>) R-tree Ë÷ÒýÊÇʲô£¿<br /> +<a href="#4.11">4.11</a>) ʲôÊÇ»ùÒò²éѯÓÅ»¯£¨Genetic Query +Optimization£©£¿<br /> +<a href="#4.12">4.12</a>) +ÎÒÔõÑù×öÕýÔò±í´ïʽËÑË÷ºÍ´óСдÎ޹صÄÕýÔò±í´ïʽ²éÕÒ£¿ÔõÑùÀûÓÃË÷Òý½øÐдóСдÎ޹زéÕÒ£¿<br /> + +<a href="#4.13">4.13</a>) ÔÚÒ»¸ö²éѯÀÎÒÔõÑù¼ì²âÒ»¸ö×Ö¶ÎÊÇ·ñΪ +NULL£¿<br /> +<a href="#4.14">4.14</a>) ¸÷ÖÖ×Ö·ûÀàÐÍÖ®¼äÓÐʲô²»Í¬£¿<br /> +<a href="#4.15.1">4.15.1</a>) +ÎÒÔõÑù´´½¨Ò»¸öÐòÁкÅ/×Ô¶¯µÝÔöµÄ×ֶΣ¿<br /> +<a href="#4.15.2">4.15.2</a>) +ÎÒÈçºÎ»ñµÃÒ»¸ö²åÈëµÄÐòÁкŵÄÖµ£¿<br /> +<a href="#4.15.3">4.15.3</a>) ʹÓà currval() ºÍ nextval() +»áµ¼ÖÂºÍÆäËûÓû§µÄÎÉÂÒÇé¿ö£¨race condition£©Âð£¿<br /> +<a href="#4.15.4">4.15.4</a>) +Ϊʲô²»ÔÚÊÂÎñÒì³£ÖÐÖ¹ºóÖØÓÃÐòÁкÅÄØ£¿ÎªÊ²Ã´ÔÚÐòÁкÅ×ֶεÄȡֵÖдæÔÚ¼ä¶ÏÄØ£¿<br /> + +<a href="#4.16">4.16</a>) ʲôÊÇ OID£¿Ê²Ã´ÊÇ TID £¿<br /> +<a href="#4.17">4.17</a>) PostgreSQL +ʹÓõÄһЩÊõÓïµÄº¬ÒåÊÇʲô£¿<br /> +<a href="#4.18">4.18</a>) ΪʲôÎÒÊÕµ½´íÎó¡°<i>ERROR: Memory +exhausted in AllocSetAlloc()</i>¡±£¿<br /> +<a href="#4.19">4.19</a>) ÎÒÈçºÎ²ÅÄÜÖªµÀËùÔËÐÐµÄ PostgreSQL +µÄ°æ±¾£¿<br /> +<a href="#4.20">4.20</a>) ΪʲôÎҵĴó¶ÔÏó²Ù×÷µ¼Ö´íÎó¡°<i>invalid +large obj descriptor¡±£¨·Ç·¨µÄ´ó¶ÔÏóÃèÊö·û£©</i>£¿<br /> +<a href="#4.21">4.21</a>) +ÎÒÈçºÎ´´½¨Ò»¸öȱʡֵÊǵ±Ç°Ê±¼äµÄ×ֶΣ¿<br /> +<a href="#4.22">4.22</a>) ΪʲôʹÓà <tt>IN</tt> +µÄ×Ó²éѯÕâôÂý£¿<br /> +<a href="#4.23">4.23</a>) ÈçºÎ½øÐÐ outer join £¨ÍâÁ¬½Ó£©£¿<br /> +<a href="#4.24">4.24</a>) ÈçºÎʹÓÃÉæ¼°¶à¸öÊý¾Ý¿âµÄ²éѯ£¿<br /> +<a href="#4.25">4.25</a>) ÈçºÎÈú¯Êý·µ»Ø¶àÐлò¶àÁУ¿<br /> +<a href="#4.26">4.26</a>) ΪʲôÔÚ PL/PgSQL +º¯ÊýÖв»Äܿɿ¿µØ´´½¨»òɾ³ýÁÙʱ±í£¿<br /> +<a href="#4.27">4.27</a>) ÓÐÄÄЩÊý¾Ý¸´ÖÆÑ¡Ï<br /> +<a href="#4.28">4.28</a>) ÓÐÄÄЩÊý¾Ý¼ÓÃÜÑ¡Ï +<center> +<h2>À©Õ¹ PostgreSQL</h2> +</center> +<a href="#5.1">5.1</a>) ÎÒдÁËÒ»¸öÓû§¶¨Ò庯Êý¡£µ±ÎÒÔÚ <i>psql</i> +ÀïÔËÐÐʱ£¬ÎªÊ²Ã´»áµ¼Ö core dump£¿<br /> +<a href="#5.2">5.2</a>) ÎÒÈçºÎÄܸø PostgreSQL +¹±Ï×һЩͦ²»´íµÄÐÂÀàÐͺͺ¯Êý£¿<br /> +<a href="#5.3">5.3</a>) ÎÒÔõÑùдһ¸ö·µ»ØÒ»Ìõ¼Ç¼µÄ C º¯Êý£¿<br /> +<a href="#5.4">5.4</a>) +ÎÒÐÞ¸ÄÁËÒ»¸öÔ´Îļþ£¬ÎªÊ²Ã´ÖØÐ±àÒëºóûÓп´µ½¸Ä±ä£¿<br /> +<hr /> +<center> +<h2>³£¼ûÎÊÌâ</h2> +</center> +<h4><a name="1.1"></a>1.1) PostgreSQL ÊÇʲô£¿¸ÃÔõô·¢Òô£¿</h4> +PostgreSQL ¶Á×÷ <i>Post-Gres-Q-L</i> <i>¡£</i> +<p>PostgreSQL ÊÇÏÂÒ»´ú DBMS µÄÑо¿ÔÐÍ POSTGRES +Êý¾Ý¿â¹ÜÀíϵͳµÄÔöÇ¿°æ¡£PostgreSQL ÔÚ±£³Ö POSTGRES +µÄÇ¿´óµÄÊý¾ÝÄ£ÐͺͷḻµÄÊý¾ÝÀàÐ͵Ļù´¡ÉÏ£¬ÓÃÒ»¸öÀ©Õ¹Á赀 SQL +×Ó¼¯È¡´úÁËÔÏ鵀 PostQuel ²éѯÓïÑÔ¡£PostgreSQL +ÊÇ×ÔÓɵIJ¢ÇÒËùÓÐÔ´´úÂë¶¼¿ÉÒÔ»ñµÃ¡£</p> +<p>PostgreSQL µÄ¿ª·¢ÓÉ²Î¼Ó PostgreSQL +¿ª·¢ÓʼþÁбíµÄÒ»¸ö¿ª·¢ÈËԱС×é½øÐС£Ä¿Ç°µÄе÷ÈËÊÇ Marc G. Fournier +£¨<a href= +"mailto:scrappy@postgreSQL.org">scrappy@postgreSQL.org</a> +£©¡££¨¹ØÓÚÈçºÎ¼ÓÈë²Î¼û1.6½Ú£©¡£Õâ¸ö¶ÓÎéÏÖÔÚ¸ºÔð PostgreSQL +µÄËùÓпª·¢¡£</p> +<p>PostgreSQL 1.01 µÄ×÷ÕßÊÇ Andrew Yu ºÍ Jolly +Chen¡£»¹ÓÐÐí¶àÆäËûÈËÎªÒÆÖ²£¬²âÊÔ£¬µ÷ÊÔºÍÔöÇ¿´úÂë×öÁË´óÁ¿¹±Ïס£PostgreSQL +µÄ×î³õÆðÔ´ Postgres£¬ÊÇÔÚ¼ÓÖÝ´óѧ²®¿ËÀû·ÖУµÄ Michael Stonebraker +½ÌÊÚµÄÖ¸µ¼Ï£¬ÓÉÐí¶àÑо¿Éú£¬±¾¿ÆÉúºÍ±à³ÌÖ°Ô±Íê³ÉµÄ¡£</p> +<p>Õâ¸öÈí¼þ×î³õÔÚ²®¿ËÀûµÄÃû×ÖÊÇ Postgres¡£ÔÚ 1995 Ä꣬µ±Ôö¼ÓÁË SQL +¹¦Äܺó£¬ËüµÄÃû×Ö¸Ä³É Postgres95¡£ÔÚ 1996ÄêÄ©£¬²Å¸ÄÃûΪ +PostgreSQL¡£</p> +<h4><a name="1.2"></a>1.2) PostgreSQL µÄ°æÈ¨ÊÇʲô?</h4> +PostgreSQL ÊÜÏÂÃæµÄ°æÈ¨Ô¼Êø¡£ +<p>PostgreSQL Êý¾Ý¿â¹ÜÀíϵͳ</p> +<p>£¨PostgreSQL Data Base Management System£©</p> +<p>²¿·Ö°æÈ¨£¨c£©1996-2002£¬PostgreSQL È«Çò¿ª·¢Ð¡×é<br /> +²¿·Ö°æÈ¨£¨c£©1994-6 ¼ÓÖÝ´óѧ¶ÊÂ</p> +<p>£¨Portions copyright (c) 1996-2002, PostgreSQL Global +Development Group<br /> + Portions Copyright (c) 1994-6 Regents of the University of +California£©</p> +<p> +ÔÊÐíΪÈκÎÄ¿µÄʹÓ㬿½±´£¬Ð޸ĺͷַ¢Õâ¸öÈí¼þºÍËüµÄÎĵµ¶ø²»ÊÕÈ¡ÈκηÑÓ㬲¢ÇÒÎÞÐëÇ©ÊðÒò´Ë¶ø²úÉúµÄÖ¤Ã÷£¬Ç°ÌáÊÇÉÏÃæµÄ°æÈ¨ÉùÃ÷ºÍ±¾¶ÎÒÔ¼°ÏÂÃæÁ½¶ÎÎÄ×Ö³öÏÖÔÚËùÓп½±´ÖС£</p> +<p>£¨Permission to use, copy, modify, and distribute this software +and its documentation for any purpose, without fee, and without a +written agreement is hereby granted, provided that the above +copyright notice and this paragraph and the following two +paragraphs appear in all copies.£©</p> +<p> +ÔÚÈκÎÇé¿öÏ£¬¼ÓÖÝ´óѧ¶¼²»³Ðµ£ÒòʹÓôËÈí¼þ¼°ÆäÎĵµ¶øµ¼ÖµĶÔÈκε±ÊÂÈ˵ÄÖ±½ÓµÄ£¬¼ä½ÓµÄ£¬ÌØÊâµÄ£¬¸½¼ÓµÄ»òÕßÏà°é¶øÉúµÄË𻵣¬°üÀ¨ÀûÒæËðʧµÄÔðÈΣ¬¼´Ê¹¼ÓÖÝ´óѧÒѾ½¨ÒéÁËÕâЩËðʧµÄ¿ÉÄÜÐÔʱҲÊÇÈç´Ë¡£</p> +<p>£¨IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO +ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR +CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE +USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY +OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE.£©</p> +<p> +¼ÓÖÝ´óѧÃ÷È··ÅÆúÈκα£Ö¤£¬°üÀ¨µ«²»¾ÖÏÞÓÚÄ³Ò»ÌØ¶¨ÓÃ;µÄÉÌÒµºÍÀûÒæµÄÒþº¬±£Ö¤¡£ÕâÀïÌṩµÄÕâ·ÝÈí¼þÊÇ»ùÓÚ¡°µ±×÷ÊÇ¡±µÄ»ù´¡µÄ£¬Òò¶ø¼ÓÖÝ´óѧûÓÐÔðÈÎÌṩά»¤£¬Ö§³Ö£¬¸üУ¬ÔöÇ¿»òÕßÐ޸ĵķþÎñ¡£</p> +<p>£¨THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE +SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE +UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, +SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.£©<br /> +<br /> +ÉÏÃæ¾ÍÊÇ BSD +°æÈ¨ÉùÃ÷£¬Ò»¸ö¾µäµÄ¿ªÔ´°æÈ¨ÉùÃ÷¡£Ëü¶ÔÔ´´úÂëµÄʹÓÃδ×÷ÈκÎÏÞÖÆ¡£ÎÒÃÇϲ»¶Ëü²¢ÇÒ²»´òËã¸Ä±äËü¡£</p> +<h4><a name="1.3"></a>1.3) PostgreSQL ÔËÐÐÔÚʲô Unix ƽ̨ÉÏ£¿</h4> +<p>Ò»°ã˵À´£¬Ò»¸öÏÖ´úµÄ UNIX ¼æÈÝµÄÆ½Ì¨¶¼ÄÜÔËÐÐ PostgreSQL +¡£ÔÚ°²×°Ö¸ÄÏÀïÁгöÁË·¢²¼Ê±¾¹ýÃ÷È·²âÊÔµÄÆ½Ì¨¡£</p> +<h4><a name="1.4"></a>1.4) ¿ÉÓÃµÄ·Ç Unix ƽ̨ÓÐÄÄЩ£¿</h4> +¿Í»§¶Ë +<p>°Ñ libpq C ¿â£¬psql£¬ÆäËû½Ó¿ÚºÍ¿Í»§¶ËÓ¦ÓóÌÐò±àÒë³É¿ÉÒÔÔÚ MS +Windows ƽ̨ÉÏÔËÐÐÊÇ¿ÉÄܵġ£ÕâÖÖÇé¿öÏ£¬¿Í»§¶ËÔÚ MS Windows +ÉÏÔËÐУ¬²¢ÇÒͨ¹ý TCP/IP ÓëÒ»¸öÔËÐÐÔÚÎÒÃÇÖ§³ÖµÄ Unix +ƽ̨ÉϵķþÎñÆ÷½øÐÐͨѶ¡£·¢²¼°æ±¾Öаüº¬Ò»¸öÎļþ win32.mak ÓÃÓÚÉú³É +Win32 libpq ¿âºÍ psql ¡£PostgreSQL Ò²¿ÉÒÔºÍ ODBC ¿Í»§¶ËͨѶ¡£</p> +<p>·þÎñÆ÷</p> +<p>Êý¾Ý¿â·þÎñÆ÷ÏÖÔÚ¿ÉÒÔͨ¹ý Cygwin £¬Cygnus µÄ Unix/NT ÒÆÖ²¿âÔÚ +Windows NT ºÍ Win2k ÉÏÔËÐС£²ÎÔÄ·¢²¼°æ±¾ÀïµÄ See +<i>pgsql/doc/FAQ_MSWIN</i> Îļþ»ò <a href= +"http://www.PostgreSQL.org/docs/faq-mswin.html">http://www.PostgreSQL.org/docs/faq-mswin.html</a> +¡£</p> +<p>ÒÆÖ²µ½ MS Win NT/2000/XP µÄ±¾»ú°æµÄ¹¤×÷ÕýÔÚ½øÐС£</p> +<h4><a name="1.5"></a>1.5) ÎÒ´ÓÄÄÀïÄܵõ½ PostgreSQL£¿</h4> +<p>PostgreSQL µÄÖ÷ÄäÃûFTPÕ¾µãÊÇ <a href= +"ftp://ftp.PostgreSQL.org/pub">ftp://ftp.PostgreSQL.org/pub</a>£¬¾µÏñÕ¾µã¿ÉÒԲο¼ÎÒÃÇÍøÕ¾µÄÖ÷Ò³¡£</p> +<h4><a name="1.6"></a>1.6) ÎÒ´ÓÄÄÀïÄܵõ½¶Ô PostgreSQL +µÄÖ§³Ö£¿</h4> +<p>Ö÷ÒªµÄÓʼþÁбíÊÇ£º<a href= +"mailto:pgsql-general@postgreSQL.org">pgsql-general@postgreSQL.org</a>¡£¿ÉÒÔÔÚÄÇÀïÌÖÂÛÓÐ¹Ø +PostgreSQL µÄÎÊÌâ¡£Òª¼ÓÈëÁÐ±í£¬·¢Ò»·âÓʼþÄÚÈÝ£¨²»ÊÇÖ÷ÌâÐУ©Îª</p> +<pre> + subscribe + end +</pre> +µÄÓʼþµ½ <a href= +"mailto:pgsql-general-request@postgreSQL.org">pgsql-general-request@postgreSQL.org</a> +¡£ +<p>»¹¿ÉÒÔ»ñȡժҪÁÐ±í¡£Òª¼ÓÈëÕâ¸öÁÐ±í£¬·¢Óʼþµ½£º<a href= +"mailto:pgsql-general-digest-request@postgreSQL.org">pgsql-general-digest-request@postgreSQL.org</a>£¬ÆäÄÚÈÝΪ£º</p> +<pre> + subscribe + end +</pre> +ÿµ±Ö÷Áбí´ïµ½´óÔ¼ 30k µÄÏûÏ¢ÄÚÈÝʱ£¬ÕªÒª¾Í·¢Ë͸øÕâ¸öÁбíµÄ³ÉÔ±¡£ +<p>»¹¿ÉÒԲμӳô³æÓʼþÁÐ±í¡£Òª¼ÓÈëÕâ¸öÁÐ±í£¬·¢ËÍÒ»¸öÓʼþµ½ <a href= +"mailto:bugs-request@postgreSQL.org">bugs-request@postgreSQL.org</a>£¬ÄÚÈÝΪ£º</p> +<pre> + subscribe + end +</pre> +»¹¿ÉÒԲμӿª·¢ÈËÔ±ÓʼþÁÐ±í¡£Òª¼ÓÈëÕâ¸öÁÐ±í£¬·¢ËÍÒ»¸öÓʼþµ½ <a href= +"mailto:hackers-request@postgreSQL.org">hackers-request@postgreSQL.org</a>£¬ÄÚÈÝΪ£º +<pre> + subscribe + end +</pre> +ÆäËûµÄ¹ØÓÚ PostgreSQL ÓʼþÁбíºÍÆäËûÐÅÏ¢¿ÉÒÔÔÚ PostgreSQL µÄ WWW +Ö÷Ò³ÕÒµ½£º +<blockquote><a href= +"http://postgresql.org/">http://postgresql.org/</a></blockquote> +ÔÚ EFNet ÀﻹÓÐÒ»¸ö IRC ƵµÀ£¬ÆµµÀ #PostgreSQL¡£ÎÒÓà unix +ÃüÁî<tt>irc -c '#PostgreSQL' "$USER" irc.phoenix.net</tt> +<p>ÉÌÒµÖ§³Ö¹«Ë¾µÄÁбíÔÚ <a href= +"http://www.PostgreSQL.org/users-lounge/commercial-support.html">http://www.PostgreSQL.org/users-lounge/commercial-support.html</a> +¡£</p> +<h4><a name="1.7"></a>1.7) PostgreSQL ×îеİ汾ÊÇʲô£¿</h4> +PostgreSQL ×îеİ汾Êǰ汾 7.2.3¡££¨Òë×¢£ºÏÖÔÚÓ¦¸ÃÊÇ 7.3.1 ÁË¡££© +<p>ÎÒÃǼƻ®Ã¿ËĸöÔ·¢²¼Ò»¸öÖ÷Òª°æ±¾¡£</p> +<h4><a name="1.8"></a>1.8) ÓÐÄÄЩ¿ÉÓÃµÄ PostgreSQL µÄÎĵµ£¿</h4> +ÔÚ·¢²¼°üÀïÓÐһЩÊֲᣬÊÖ²áÒ³ºÍһЩСµÄ²âÊÔÀý×Ó¡£²Î¼û /doc +Ŀ¼¡££¨Òë×¢£ºÓ¦Îª $PGHOME/doc£©¡£Ä㻹¿ÉÒÔÔÚÏßä¯ÀÀ PostgreSQL +µÄÊֲᣬÔÚ <a href= +"http://www.PostgreSQL.org/users-lounge/docs/">http://www.PostgreSQL.org/users-lounge/docs/</a> +¡£ +<p>ÓÐÁ½±¾¹ØÓÚ PostgreSQL µÄÊéÔÚÏßÌṩ£¬ÔÚ <a href= +"http://www.PostgreSQL.org/docs/awbook.html">http://www.PostgreSQL.org/docs/awbook.html</a> +ºÍ <a href= +"http://www.commandprompt.com/ppbook/">http://www.commandprompt.com/ppbook/</a> +¡£ÔÚ <a href= +"http://www.ca.PostgreSQL.org/books/">http://www.ca.PostgreSQL.org/books/</a> +ÉÏÓйØÓÚ PostgreSQL µÄ¿É¹ºÊé¼®µÄÁÐ±í¡£ÔÚ <a href= +"http://techdocs.PostgreSQL.org/">http://techdocs.PostgreSQL.org/</a> +ÉÏÊÕ¼¯ÁËÓÐ¹Ø PostgreSQL µÄ¼¼ÊõÎÄÕ¡£</p> +<p><i>psql</i> ÓÐһЩ²»´íµÄ \d +ÃüÁÏÔʾ¹ØÓÚÀàÐÍ£¬²Ù×÷·û£¬º¯Êý£¬¾Û¼¯µÈµÄÐÅÏ¢¡£</p> +<p>ÎÒÃÇµÄ web Õ¾µã°üº¬¸ü¶àµÄÎĵµ£®</p> +<h4><a name="1.9"></a>1.9) ÎÒÈçºÎÁ˽âÒÑÖªµÄ BUG ºÍȱʧµÄÌØÐÔ£¿</h4> +PostgreSQL Ö§³ÖÒ»¸öÀ©Õ¹Á赀 SQL-92 µÄ×Ó¼¯¡£²ÎÔÄÎÒÃÇµÄ <a href= +"http://www.postgresql.org/docs/todo.html">TODO</a> <a href= +"http://www.postgresql.org/docs/todo.html"></a>ÁÐ±í£¬»ñȡһ¸öÒÑÖª³ô³æ£¬È±Ê§ÌØÐÔºÍδÀ´¼Æ»®¡£ +<h4><a name="1.10"></a>1.10) ÎÒÓ¦¸ÃÔõÑùѧϰ SQL£¿</h4> +ÔÚ <a href= +"http://www.postgresql.org/docs/awbook.html">http://www.postgresql.org/docs/awbook.html</a> +µÄ¹ØÓÚ PostgreSQL µÄÊé½ÌÊÚ SQL¡££¨Òë×¢£ºÎÒÏÂÔØµ½±¾µØÁË¡££©ÔÚ +<a href= +"http://www.commandprompt.com/ppbook/">http://www.commandprompt.com/ppbook</a> +ÓÐÁíÍâÒ»±¾¹ØÓÚ PostgreSQL µÄÊé¡£ÔÚ<a href= +"http://www.intermedia.net/support/sql/sqltut.shtm">http://www.intermedia.net/support/sql/sqltut.shtm</a>£¬<a href="http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM">http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM +</a> ºÍ <a href="http://sqlcourse.com/">http://sqlcourse.com</a> +ÓÐÒ»¸ö²»´íµÄÈëÃŽ̡̳£ +<p>ÁíÒ»¸öÊÇ "Teach Yourself SQL in 21 Days, Second +Edition"£¨21Ììѧ»áSQL£¬µÚ¶þ°æ£©£¬ÔÚ <a href= +"http://members.tripod.com/er4ebus/sql/index.htm">http://members.tripod.com/er4ebus/sql/index.htm</a></p> +<p>ÎÒÃǵÄÐí¶àÓû§Ï²»¶ <i>The Practical SQL Handbook, Bowman, Judith +S., et al., Addison-Wesley ¡£</i> ÆäËûµÄÓÐ <i>The Complete +Reference SQL, Groff et al., McGraw-Hill ¡£</i></p> +<h4><a name="1.11"></a>1.11) PostgreSQL ÊÇ Y2K ¼æÈݵÄÂð£¿</h4> +ÊÇ£¬ÎÒÃǺÜÈÝÒ׿ØÖÆ 2000 AD Ö®ºóºÍ 2000 BC ֮ǰµÄÈÕÆÚ¡£ +<h4><a name="1.12"></a>1.12) ÎÒÓ¦¸ÃÔõÑù¼ÓÈ뿪·¢¶ÓÎ飿</h4> +Ê×ÏÈ£¬ÏÂÔØ×îеÄÔ´´úÂë²¢ÔĶÁÎÒÃÇ web Õ¾µã»ò·¢²¼°üÖÐµÄ PostgreSQL +¿ª·¢ÕßÎĵµ¡£Æä´Î£¬¼ÓÈë pgsql-hackers ºÍ pgsql-patches +ÓʼþÁÐ±í¡£µÚÈý£¬Ïò pgsql-patches Ìá½»¸ßÖÊÁ¿µÄ²¹¶¡³ÌÐò¡£ +<p>ÏÖÔÚ´ó¸ÅÓÐÊ®¼¸¸öÈËÓÐ PostgreSQL CVS ¹éµµ <font size= +"-1">COMMIT</font> +µÄȨÏÞ¡£ËûÃǶ¼ÒѾÌá½»Á˷dz£¶à¸ßÖÊÁ¿µÄ²¹¶¡ÁË£¬ÒÔÖÁÓÚÏÖÓеÄÌá½»È˺ÜÄѸúÉϽÚ×࣬²¢ÇÒÎÒÃÇÏàÐÅËûÃÇÌá½»µÄ²¹¶¡¶¼ÊǸßÖÊÁ¿µÄ¡£</p> +<h4><a name="1.13"></a>1.13) ÎÒÓ¦¸ÃÔõÑùÌá½»Ò»¸öBUG±¨¸æ£¿</h4> +Çë·ÃÎÊ <a href= +"http://www.PostgreSQL.org/bugs/bugs.php">http://www.PostgreSQL.org/bugs/bugs.php</a> +µÄ PostgreSQL BugTool Ò³Ãæ, ÄÇÀï¸ø³öÁËÈçºÎÌá½»Ò»¸öBUG±¨¸æµÄÖ¸ÄÏ¡£ +<p>ͬÑùÒ²Òª¿´¿´ÎÒÃÇµÄ ftp Õ¾µã <a href= +"ftp://ftp.postgresql.org/pub">ftp://ftp.postgreSQL.org/pub</a>£¬¿´ÓÐûÓиüÐ嵀 +PostgreSQL °æ±¾»ò²¹¶¡¡£</p> +<h4><a name="1.14"></a>1.14) PostgreSQL ºÍÆäËû DBMS +±ÈÆðÀ´ÈçºÎ£¿</h4> +ÆÀ¼ÛÈí¼þÓкü¸ÖÖ·½·¨£ºÌØÐÔ£¬ÐÔÄÜ£¬¿É¿¿ÐÔ£¬Ö§³ÖºÍ¼Û¸ñ¡£ +<dl> +<dt><b>ÌØÐÔ</b></dt> +<dd>PostgreSQL ÓµÓдóÐÍÉÌÓà DBMS +Àï´ó¶àÊýÌØÐÔ£¬ÀýÈ磺ÊÂÎñ£¬×Ó²éѯ£¬´¥·¢Æ÷£¬ÊÓͼ£¬Íâ¼ü²Î¿¼ÍêÕûÐԺ͸´ÔÓµÄËøµÈ¡£ÎÒÃÇ»¹ÓÐһЩËüÃÇûÓеÄÌØÐÔ£¬ÈçÓû§¶¨ÒåÀàÐÍ£¬¼Ì³Ð£¬¹æÔòºÍ¶à°æ±¾²¢ÐпØÖÆÒÔ¼õÉÙËøµÄÕùÓõȡ£<br /> + + </dd> +<dt><b>ÐÔÄÜ</b></dt> +<dd>PostgreSQL +ºÍÆäËûÉÌÓúͿªÔ´µÄÊý¾Ý¿â¾ßÓÐÀàËÆµÄÐÔÄÜ¡£¶ÔijЩ´¦ÀíËü±È½Ï¿ì£¬¶ÔÆäËûһЩ´¦ÀíËü±È½ÏÂý¡£Óë +MySQL »ò¸üÇá±ãµÄÊý¾Ý¿âϵͳ±È½Ï£¬ÎÒÃÇÔÚ insert/update +ʱÂý£¬ÒòΪÎÒÃÇÓÐÊÂÎñ´¦Àí¡£µ±È» MySQL ²»¾ßÓÐÎÒÃÇÔÚÉÏÃæµÄ<i>ÌØÐÔ</i> +¶ÎÀï¸ø³öµÄÈκÎÌØÐÔ¡£ÎÒÃǵÄÖ÷Òª·½ÏòÊǿɿ¿ÐÔºÍÌØÐÔ£¬¾¡¹ÜÎÒÃÇÔÚÿ´Î·¢²¼Ê±²»¶ÏµØ¸Ä½øÐÔÄÜ¡£ÓÐÒ»¸öºÜÓÐȤµÄÍøÒ³±È½ÏÁË +PostgreSQL ºÍ MySQL <a href= +"http://openacs.org/why-not-mysql.html">http://openacs.org/why-not-mysql.html</a>¡£<br /> +</dd> +<dt><b>¿É¿¿ÐÔ</b></dt> +<dd>ÎÒÃÇÖªµÀ DBMS +±ØÐëÊǿɿ¿µÄ£¬·ñÔòËü¾ÍÒ»µãÓö¼Ã»ÓС£ÎÒÃÇŬÁ¦×öµ½·¢²¼¾¹ýÈÏÕæ²âÊԵģ¬Îȶ¨µÄ³ô³æ×îÉٵĴúÂ롣ÿ¸ö°æ±¾ÖÁÉÙÓÐÒ»¸öÔ嵀 +beta +²âÊÔ£¬²¢ÇÒÎÒÃǵķ¢²¼ÀúÊ·ÏÔʾÎÒÃÇ¿ÉÒÔÌṩÎȶ¨µÄ£¬Àι̵ģ¬¿ÉÓÃÓÚÉú²úʹÓõİ汾¡£ÎÒÃÇÏàÐÅÔÚÕâ·½ÃæÎÒÃÇÓëÆäËûµÄÊý¾Ý¿âÈí¼þÊÇÏ൱µÄ¡£<br /> + + </dd> +<dt><b>Ö§³Ö</b></dt> +<dd> +ÎÒÃǵÄÓʼþÁбíÌṩһ¸ö·Ç³£´óµÄ¿ª·¢ÈËÔ±ºÍÓû§µÄ×éÒÔ°ïÖú½â¾öËùÅöµ½µÄÈκÎÎÊÌâ¡£ÎÒÃDz»Äܱ£Ö¤¿Ï¶¨Äܽâ¾öÎÊÌ⣬Ïà±È֮ϣ¬ÉÌÓà +DBMS +Ò²²¢²»ÊÇ×ÜÄܹ»Ìṩ½â¾ö·½·¨¡£Ö±½ÓÓ뿪·¢ÈËÔ±£¬Óû§Èº£¬ÊÖ²áºÍÔ´³ÌÐò½Ó´¥Áî +PostgreSQL µÄÖ§³Ö±ÈÆäËû DBMS +»¹ÒªºÃ¡£»¹ÓÐһЩÉÌÒµÐÔµÄÔ¤°ü×°µÄÖ§³Ö£¬¿ÉÒÔ¸øÌṩ¸øÄÇЩÐèÒªµÄÈË¡££¨²ÎÔÄÖ§³Ö +FAQ Ìõ¿î 1.6 С½Ú¡££©<br /> + </dd> +<dt><b>¼Û¸ñ</b></dt> +<dd> +ÎÒÃǶÔÈκÎÓÃ;¶¼Ãâ·Ñ£¬°üÀ¨ÉÌÓúͷÇÉÌÓÃÄ¿µÄ¡£Äã¿ÉÒÔ²»¼ÓÏÞÖÆµØÏòÄãµÄ²úÆ·Àï¼ÓÈëÎÒÃǵĴúÂ룬³ýÁËÄÇЩÎÒÃÇÔÚÉÏÃæµÄ°æÈ¨ÉùÃ÷ÀïÉùÃ÷µÄ +BSD ·ç¸ñµÄ°æÈ¨Íâ¡£</dd> +</dl> +<h4><a name="1.15"></a>1.15) ÎÒÓ¦¸ÃÔõÑùÔÞÖú PostgreSQL £¿</h4> +<p>×Ô´Ó1996Ä꿪ʼ£¬PostgreSQL +ÒѾÓÐÁËÒ»¸öÓÅÐãµÄ×éÖ¯¡£ÕâЩӦ¸Ã¹é¹¦ÓÚ Marc +Fournier£¬ÊÇËû´´½¨Á˲¢ÔÚÕâЩÄêÒ»Ö±¹ÜÀíÕâ¸ö×éÖ¯¡£</p> +<p> +¶ÔÓÚÒ»¸ö¿ªÔ´ÏîÄ¿À´Ëµ£¬ÖÊÁ¿»ù´¡ÉèÊ©ÊǷdz£ÖØÒªµÄ¡£ËüÄÜ·ÀÖ¹³öÏÖÑÏÖØÑÓ³ÙÏîĿǰ½øµÄ»ìÂÒ¡£</p> +<p> +ÏÔÈ»£¬Õâ¸ö×éÖ¯µÄÔËת³É±¾²»·Æ¡£Î¬³ÖÆäǰ½øÓи÷ÖÖÔ¶ȵġ¢Ò»´ÎÐԵĿªÖ§¡£Èç¹ûÄã»òÕßÄãµÄ¹«Ë¾ÄܽøÐоèÔùÒÔÖ§³ÖÕâÏîÊÂÒµ£¬Çë·ÃÎÊ +<a href= +"http://store.pgsql.com/shopping/">http://store.pgsql.com/shopping/</a> +½øÐоèÔù¡£</p> +<p>ËäÈ»¸ÃÍøÒ³Ìá¼°ÁË PostgreSQL ¹«Ë¾£¬ÕâЩ¾èÔù½«½öÓÃÓÚÖ§³Ö +PostgreSQL +ÏîÄ¿£¬²¢²»»áÓÃÓÚ×ÊÖúû¸öÌØ¶¨µÄ¹«Ë¾¡£Èç¹ûÄãÔ¸Ò⣬Ҳ¿ÉÒÔÓʼÄ֧Ʊµ½ÁªÏµµØÖ·¡£</p> +<hr /> +<center> +<h2>Óû§¿Í»§¶ËÎÊÌâ</h2> +</center> +<h4><a name="2.1"></a>2.1) ÓÐ PostgreSQL µÄ ODBC Çý¶¯Ã´£¿</h4> +ÓÐÁ½¸ö ODBC Çý¶¯¿ÉÒÔ»ñµÃ£¬PsqlODBC ºÍ OpenLink ODBC. +<p>¿ÉÒÔÔÚ<a href= +"http://gborg.postgresql.org/project/psqlodbc/projdisplay.php">http://gborg.postgresql.org/project/psqlodbc/projdisplay.php</a> +ÏÂÔØ PsqlODBC ¡£</p> +<p>OpenLink ODBC ¿ÉÒÔ´Ó <a href= +"http://www.openlinksw.com/">http://www.openlinksw.com/</a> +»ñµÃ¡£ËüÓëËûÃǵıê×¼ ODBC +¿Í»§¶ËÈí¼þ¼æÈÝ£¬Òò¶øÄã¿ÉÒÔÔÚÈκÎËûÃÇÖ§³ÖµÄ¿Í»§¶Ëƽ̨£¨Win, Mac, +Unix, VMS£©ÉÏʹÓà PostgreSQL ODBC¡£</p> +<p>ËûÃÇ¿ÉÄܽ«Õâ¸ö²úÆ·ÏúÊÛ¸øÄÇЩÐèÒªÉÌÒµÖ§³ÖµÄÓû§£¬µ«ÊÇ×ÜÊÇÓÐÒ»¸ö +freeware £¨×ÔÓÉÈí¼þ£©µÄ°æ±¾¿ÉÒԵõ½¡£ÇëѯÎÊ <a href= +"mailto:postgres95@openlink.co.uk">postgres95@openlink.co.uk</a>¡£</p> +<h4><a name="2.2"></a>2.2) ÓÐʲô¹¤¾ß¿ÉÒÔ°Ñ PostgreSQL ÓÃÓÚ Web +Ò³Ãæ£¿</h4> +Ò»¸ö½éÉÜÒÔÊý¾Ý¿âΪºǫ́µÄͦ²»´íµÄ Õ¾µãÊÇ£º<a href= +"http://www.webreview.com">http://www.webreview.com</a> ¡£ +<p>¶ÔÓÚ Web ¼¯³É£¬PHP ÊÇÒ»¸ö¼«ºÃµÄ½Ó¿Ú¡£ËüÔÚ£º<a href= +"http://www.php.net/">http://www.php.net/</a> ¡£</p> +<p>¶ÔÓÚ¸´ÔÓµÄÈÎÎñ£¬ºÜ¶àÈ˲ÉÓà Perl ½Ó¿ÚºÍ CGI.pm »ò mod_perl ¡£</p> +<h4><a name="2.3"></a>2.3) PostgreSQL ÓµÓÐͼÐÎÓû§½çÃæÂð£¿</h4> +Êǵġ£Óм¸¸öÊÊÓÃÓÚ PostgreSQL µÄͼÐνӿڡ£°üÀ¨PgAccess£¨<a href= +"http://www.pgaccess.com">http://www.pgaccess.com</a>)£¬PgAdmin II +£¨<a href= +"http://www.pgadmin.org">http://www.pgadmin.org</a>£¬½öÊÊÓÃÓÚWin32£©£¬ +RHDB Admin (<a href= +"http://sources.redhat.com/rhdb/">http://sources.redhat.com/rhdb/</a>£© +ÒÔ¼° Rekall £¨<a href= +"http://www.thekompany.com/products/rekall/">http://www.thekompany.com/products/rekall/</a>£¬ +רÓеÄ/proprietary)¡£»¹ÓÐPHPPgAdmin £¨<a href= +"http://phppgadmin.sourceforge.net/">http://phppgadmin.sourceforge.net/£©</a> +£¬Ò»¸ö»ùÓÚ web µÄ PostgreSQL ·ÃÎʽӿڡ£ +<p>ÎÒÃÇÓÐÒ»¸ö²»´íµÄͼÐÎÓû§½çÃæ£¬³ÆÎª PgAccess +£¬ËüÒ²¿ÉÒÔÓÃ×÷±¨±íÉú³ÉÆ÷¡£ÍøÒ³ÊÇ <a href= +"http://www.pgaccess.org/">http://www.pgaccess.org/</a>¡£</p> +<h4><a name="2.4"></a>2.4) ÎÒÃÇ¿ÉÒÔÓÃʲôÓïÑÔºÍ PostgreSQL +´ò½»µÀ£¿</h4> +<p>´ó¶àÊýÁ÷Ðеıà³ÌÓïÑÔ¶¼ÓзÃÎÊ PostgreSQL +µÄ½Ó¿Ú¡£Çë¼ì²é±à³ÌÓïÑÔµÄÀ©Õ¹Ä£¿éÁÐ±í¡£</p> +<p>PostgreSQL ·¢²¼°üÖаüº¬ÁËÒÔϽӿڣº</p> +<ul> +<li>C (libpq)</li> +<li>Embedded C (ecpg)</li> +<li>Java (jdbc)</li> +<li>Python (PyGreSQL)</li> +<li>TCL (libpgtcl)</li> +</ul> +<p>ÆäËûµÄ½Ó¿ÚÔÚ <a href= +"http://gborg.postgresql.org">http://gborg.postgresql.org</a> É쵀 +<i>Drivers/Interfaces</i> С½Ú¡£</p> +<hr /> +<center> +<h2>ϵͳ¹ÜÀíÎÊÌâ</h2> +</center> +<h4><a name="3.1"></a>3.1) ÎÒÔõÑùÄÜ°Ñ PostgreSQL ×°ÔÚ +/usr/local/pgsql ÒÔÍâµÄµØ·½£¿</h4> +<p>ÔÚÔËÐÐ configure ʱ¼ÓÉÏ --prefix Ñ¡Ïî¡£</p> +<h4><a name="3.2"></a>3.2) µ±ÎÒÔËÐÐ postmaster ʱ£¬³öÏÖ <i>Bad +System Call</i>£¨ÏµÍ³µ÷ÓÃ´í£©»ò Core Dumped ´íÎó¡£ÎªÊ²Ã´£¿</h4> +<p>Õâ¿ÉÄÜÊÇºÜ¶à·½ÃæµÄÎÊÌ⣬ÇëÏȼì²é²Ù×÷ϵͳºËÐÄÊÇ·ñÖ§³Ö System V +À©Õ¹¡£PostgreSQL ÐèÒªÄÚºËÖ§³Ö¹²ÏíÄÚ´æºÍÐźŵơ£</p> +<h4><a name="3.3"></a>3.3) µ±ÎÒÊÔͼÔËÐÐ postmaster ʱ£¬³öÏÖ +<i>IpcMemoryCreate</i> ´íÎó¡£ÎªÊ²Ã´£¿</h4> +ÄãҪôÊÇûÓÐÔÚÄÚºËÀïÕýÈ·ÅäÖù²ÏíÄڴ棬ҪôÊÇÄãÐèÒªÀ©´óÄãµÄÄں˵ĿÉÓù²ÏíÄÚ´æ¡£ÐèÒªµÄ¹²ÏíÄÚ´æ¾ßÌåµÄÊýÁ¿È¡¾öÓÚÄãµÄÌåϵ½á¹¹ºÍÄãÅäÖÃÄãµÄ +postmaster +ÔËÐÐʱʹÓõĻº³åÇøºÍºó¶Ë½ø³ÌÊýÄ¿¡£¶Ô´ó¶àÊýϵͳ£¬Ê¹ÓÃȱʡ»º³åÇøºÍ½ø³ÌÊýĿʱ£¬Äã×îÉÙÐèÒª~1MB¡£Óйع²ÏíÄÚ´æºÍÐźŵƵÄÏêϸÐÅÏ¢Çë²Î¿¼ +<a href= +"http://www.postgresql.org/idocs/index.php?kernel-resources.html">PostgreSQL +Administrator's Guide</a> ¡£ +<h4><a name="3.4"></a>3.4) µ±ÎÒÊÔͼÔËÐÐ postmaster ʱ£¬³öÏÖ +<i>IpcSemaphoreCreate</i> ´íÎó¡£ÎªÊ²Ã´£¿</h4> +<p>Èç¹û´íÎóÐÅÏ¢ÊÇ <i>IpcSemaphoreCreate: semget failed (No space +left on +device)</i>£¬ÄÇôÔÒòÊÇÄãµÄÄÚºËûÓÐÅäÖÃ×ã¹»µÄÐźŵÆ×ÊÔ´¡£Postgres +µÄÿ¸öDZÔڵĺǫ́½ø³Ì¶¼ÐèÒªÒ»¸öÐźŵơ£Ò»¸öÁÙʱµÄ½â¾ö·½·¨ÊÇÒԱȽÏÉٵĺǫ́½ø³ÌÊý£¨²ÎÊý£©Æô¶¯ +postmaster¡£Ê¹Óÿª¹Ø <i>-N</i> ´øÒ»¸öÉÙÓÚȱʡֵ 32 µÄ²ÎÊýÔËÐÐ +postmaster¡£¸ü³¤¾ÃµÄ½â¾ö·½·¨ÊǼӴóÄãµÄÄÚºËµÄ <font size= +"-1">SEMMNS</font> ºÍ <font size="-1">SEMMNI</font> ²ÎÊý¡£</p> +<p>ÔÚÊý¾Ý¿â·ÃÎÊÁ¿ºÜ´óʱ£¬ÐźŵƲ»¿ÉÓÿÉÄܵ¼ÖÂϵͳ±ÀÀ£¡£</p> +<p> +Èç¹û´íÎóÐÅÏ¢ÊÇÆäËûµÄʲô¶«Î÷£¬Äã¿ÉÄܾ͸ù±¾Ã»ÓÐÔÚÄÚºËÀïÃæÅäÖÃÐźŵÆÖ§³Ö¡£Óйع²ÏíÄÚ´æºÍÐźŵƵÄÏêϸÐÅÏ¢Çë²Î¿¼ +<a href= +"http://www.postgresql.org/idocs/index.php?kernel-resources.html">PostgreSQL +Administrator's Guide</a> ¡£</p> +<h4><a name="3.5"></a>3.5) ÎÒÈçºÎ¿ØÖÆÀ´×ÔÆäËûÖ÷»úµÄÁ¬½Ó£¿</h4> +<p>ȱʡʱ£¬PostgreSQL Ö»ÔÊÐíͨ¹ý unix +ÓòÌ×½Ó×ÖÀ´×Ô±¾»úµÄÁ¬½Ó¡£³ý·ÇÄãʹÓà <i>-i</i> ¿ª¹ØÆô¶¯ +<i>postmaster</i>£¬<b>²¢ÇÒ</b>ͨ¹ý¶ÔÓ¦µÄ±à¼ +<i>$PGDATA/pg_hba.conf</i> Îļþ´ò¿ªÁËÖ÷»úΪ»ù´¡£¨ host-based +£©µÄÈÏÖ¤£¬·ñÔòÆäËû»úÆ÷ÊDz»ÄÜÓëÄãµÄ»úÆ÷Á¬½ÓµÄ¡£ÕâÑù½«ÔÊÐí TCP/IP +Á¬½Ó¡£</p> +<h4><a name="3.6"></a>3.6) +ÎÒÔõÑùµ÷ÕûÊý¾Ý¿âÒýÇæÒÔ»ñµÃ¸üºÃµÄÐÔÄÜ£¿</h4> +<p>µ±È»£¬Ë÷Òý¿ÉÒÔ¼ÓËÙ²éѯ¡£<font size="-1">EXPLAIN</font> +ÃüÁîÔÊÐíÄã¹Û²ì PostgreSQL +ÈçºÎ½âÊÍÄãµÄ²éѯ£¬ÒÔ¼°Ê¹ÓÃÁËÄÄЩË÷Òý¡£</p> +<p>Èç¹ûÄãÕý´¦ÀíÒ»¶Ñ <font size="-1">INSERT</font>£¬¿¼ÂÇʹÓà +<font size="-1">COPY</font> +ÃüÁîÒÔ´óÅúÁ¿µÄ·½Ê½½øÐС£ÕâÑù×ö±Èµ¥¶ÀµÄÒ»¸ö¸ö <font size= +"-1">INSERT</font> ¿ìµÃ¶à¡£Æä´Î£¬Ã»Óд¦ÓÚ <font size="-1">BEGIN +WORK/COMMIT</font> +ÊÂÎñ¿éÖ®¼äµÄÓï¾ä±»ÈÏΪÊôÓÚͬһ¸öÊÂÎñ¡£ÊÔ×ÅÔÚÒ»¸öÊÂÎñ¿éÀïÃæ´¦Àí¸ü¶àµÄÓï¾ä¡£ÕâÑù¿ÉÒÔ¼õÉÙÊÂÎñ´øÀ´µÄ¶îÍ⿪Ïú¡£Í¬Ñù£¬ÔÚ×ö´óÁ¿µÄÊý¾Ý¸Ä±äʱ¿¼ÂÇɾ³ýºÍÖØ½¨Ë÷Òý¡£</p> +<p>»¹Óм¸¸öµ÷½ÚµÄÑ¡Ïî¿ÉÒÔʹÓá£Äã¿ÉÒÔͨ¹ý´ø <i>-o -F</i> Ñ¡ÏîÆô¶¯ +postmaster À´½ûÖ¹ fsync()¡£ÕâÑù½«±ÜÃâÿ´ÎÊÂÎñºóµ÷Óà <i>fsync()</i> +°ÑÊý¾Ýˢе½´ÅÅÌÉÏ¡£</p> +<p>Ä㻹¿ÉÒÔʹÓà postmaster -B +Ñ¡ÏîÔö¼Óºó¶Ë½ø³ÌʹÓõĹ²ÏíÄڴ滺³åµÄÊýÄ¿¡£Èç¹ûÄã°ÑÕâ¸ö²ÎÊýÉèÖõÃÌ«´ó£¬postmaster +¿ÉÄÜÎÞ·¨Æô¶¯£¬ÒòΪÄãÒѾ³¬¹ýÁËÄãµÄÄÚºËÔÚ¹²ÏíÄÚ´æ¿Õ¼äÉϵÄÏÞÖÆ¡£Ã¿¸ö»º³åÇøÊÇ +8K ²¢ÇÒȱʡ 64 ¸ö»º³åÇø¡£</p> +<p>Ä㻹¿ÉÒÔʹÓúǫ́½ø³ÌµÄ -S +Ñ¡ÏîÀ´Ôö¼Óÿ¸öºǫ́½ø³ÌÓÃÓÚÁÙʱÅÅÐòÓõÄ×î´óÄÚ´æÊýÁ¿¡£-S +ÖµÊÇÒÔK×ֽڼƵģ¬È±Ê¡ÊÇ 512 £¨Ò²¾ÍÊÇ˵£¬512K£©¡£</p> +<p>Ä㻹¿ÉÒÔʹÓà <font size="-1">CLUSTER</font> +ÃüÁîÀ´°Ñ±íÀïµÄÊý¾Ý°´ÕÕij¸öË÷Òý½øÐоۼ¯´æ·Å¡£²ÎÔÄ CLUSTER +µÄÊÖ²áÒ³»ñÈ¡¸ü¶àϸ½Ú¡£</p> +<h4><a name="3.7"></a>3.7) PostgreSQL +Àï¿ÉÒÔ»ñµÃʲôÑùµÄµ÷ÊÔÌØÐÔ£¿</h4> +<p>PostgreSQL +Óм¸¸öÌØÐÔÓÃÓÚ±¨¸æ×´Ì¬ÐÅÏ¢£¬ÕâЩÐÅÏ¢¿ÉÄܶԵ÷ÊÔÓÃ;ºÜÓаïÖú¡£</p> +<p>Ê×ÏÈ£¬Í¨¹ý¸½´ø --enable-cassert Ñ¡ÏîÔËÐÐ configure£¬Óкܶà +<i>assert()</i> +¼à¿Øºǫ́½ø³ÌºÍÔÚ·¢ÉúÄ³Ð©Î´ÔøÔ¤ÁϵÄÏÖÏóʱֹͣ³ÌÐòÔËÐС£</p> +<p>postmaster ºÍ postgres ¶¼ÓÐһЩ¿ÉÓõÄÑ¡Ïî¡£Ê×ÏÈ£¬µ±ÄãÆô¶¯ +postmaster +ʱ£¬È·±£Äã°Ñ±ê×¼Êä³öºÍ±ê×¼´íÎóÊä³ö¶¨Ïòµ½ÁËÒ»¸öÈÕÖ¾ÎļþÀïÈ¥ÁË£¬Ïó£º</p> +<pre> + cd /usr/local/pgsql + ./bin/postmaster >server.log 2>&1 & +</pre> +ÕâÑù½«ÔÚ PostgreSQL ¶¥¼¶Ä¿Â¼ÏÂÊä³öÒ»¸ö server.log +Îļþ¡£Õâ¸öÎļþ°üº¬·þÎñÆ÷Åöµ½µÄÎÊÌâºÍ´íÎóµÄÓÐÓÃÐÅÏ¢¡£postmaster +ÓÐÒ»¸ö -d Ñ¡Ï¸ÃÑ¡ÏîÔÊÐíÎÒÃÇ»ñµÃ¸ü¶àµÄϸ½Ú»ã±¨¡£-d +Ñ¡Ïî½ÓÊÜÒ»¸öÊý×Ö±êÃ÷µ÷ÊÔ¼¶±ð¡£ÐèÒª¾¯¸æµÄÊǸߵĵ÷ÊÔ¼¶±ð¿ÉÄÜ»áÉú³É¾Þ´óµÄÈÕÖ¾Îļþ¡£ +<p>Èç¹û postmaster ûÓÐÔËÐУ¬Äã¿ÉÒÔÖ±½ÓÔÚÃüÁîÐÐÉÏÆô¶¯ postgres +ºǫ́½ø³Ì£¬È»ºóÖ±½Ó¼üÈë SQL Óï¾ä¡£ÎÒÃÇ<b>Ö»</b> +ÍÆ¼öÔÚµ÷ÊÔµÄʱºòÕâô¸É¡£Çë×¢ÒâÕâʱÓû»ÐÐÜÞ¶ø²»ÊǷֺűíʾÓï¾ä½áβ¡£Èç¹ûÄã´ø×ŵ÷ÊÔ·ûºÅ±àÒ룬Äã¿ÉÒÔʹÓÃÒ»¸öµ÷ÊÔÆ÷¹Û¿´·¢ÉúÁËʲôÊÂÇé¡£ÒòΪºǫ́½ø³ÌûÓÐÓÉ +postmaster +Æô¶¯µÄ£¬Ëü²»ÊǺÍʵ¼ÊµÄÔËÐл·¾³Ò»Ö£¬¶øÇÒËø¶¨/ºǫ́½»»¥ÎÊÌâ¿ÉÄܲ»ÄÜÖØÏÖ¡£</p> +<p>Èç¹û postmaster ÒѾÔËÐУ¬¿ÉÔÚÒ»¸ö´°¿ÚÖÐÆô¶¯ +<i>psql</i>£¬È»ºóÕÒ³ö <i>psql</i> ¶ÔÓ¦µÄ <i>postgres</i> ½ø³ÌµÄ +<font size="-1">PID</font>¡£Ê¹ÓÃÒ»¸öµ÷ÊÔÆ÷¸½×ÅÔÚÕâ¸ö +<i>postgres</i> <font size="-1">PID</font> +ÉÏ¡£Äã¿ÉÒÔÔÚµ÷ÊÔÆ÷ÀïÉèÖöϵ㲢ÇÒ´Ó <i>psql</i> +ÀïÖ´Ðвéѯ¡£Èç¹ûÄãÔÚµ÷ÊÔ <i>postgres</i> µÄÆô¶¯£¬Äã¿ÉÒÔÉèÖà +PGOPTIONS="-W n"£¬È»ºóÆô¶¯ <i>psql</i>¡£ÕâÑù½«µ¼ÖÂÆô¶¯ÑÓ³Ù <i>n</i> +Ã룬ÕâÑùÄã¾Í¿ÉÒÔ¸½¼ÓÒ»¸öµ÷ÊÔÆ÷²¢ÇÒ¸ú×ÙÆô¶¯Ë³ÐòµÄ¹ý³Ì¡£</p> +<p>postgres ³ÌÐòÓÐ -s£¬-A£¬ºÍ -t +Ñ¡Ïî¿ÉÄÜÔÚµ÷ÊÔºÍÐÔÄܲâÁ¿µÄʱºò·Ç³£ÓÐÓá£</p> +<p>Ä㻹¿ÉÒÔ´ø profiling +Ö§³Ö±àÒëºǫ́£¬ÒÔ±ã¹Û²ìÄÄЩº¯ÊýÕ¼ÓõÄÖ´ÐÐʱ¼ä½Ï¶à¡£profile +Îļþ½«·ÅÔÚ pgsql/data/base/dbname Ŀ¼Ï¡£¿Í»§¶Ë profile +Îļþ½«·ÅÔÚ¿Í»§¶Ëµ±Ç°Ä¿Â¼Ï¡£ÔÚ Linux ÏÂÖ§³Ö profiling +ÒªÔÚ±àÒëʱ¼ÓÉÏ<i>-DLINUX_PROFILE</i> ¡£</p> +<h4><a name="3.8"></a>3.8) ΪʲôÔÚÊÔͼÁ¬½ÓµÇ¼ʱÊÕµ½¡°Sorry, too +many clients¡±ÏûÏ¢£¿</h4> +<p>ÄãÐèÒªÔö´ó postmaster Æô¶¯Ê±Ö§³ÖµÄ²¢·¢ºǫ́½ø³ÌÊý¡£</p> +<p>ȱʡÏÞÖÆÊÇ 32 ½ø³Ì¡£Äã¿ÉÒÔͨ¹ý´ø×ÅÊʵ±µÄ <i>-N</i> Öµ¿ª¹ØÆô¶¯ +postmaster Ôö¼ÓÕâ¸öÊýÄ¿¡£»òÕßÐÞ¸Ä <i>postgresql.conf</i> Îļþ¡£</p> +<p>ҪעÒâÈç¹ûÄã°Ñ <i>-N</i> ÉèÖÃΪ´óÓÚ 32£¬Äã±ØÐëͬÑùÔö´ó +<i>-B</i>£¬³¬¹ýËüȱʡµÄ 64£»-B ±ØÐë×îÉÙÊÇ -N +µÄÁ½±¶£¬¶øÇÒΪÁ˸üºÃµÄÐÔÄÜ¿ÉÄÜÒª±ÈÄǸöÊý×ÖÒª´ó¡£¶ÔÓÚ´óÊýÄ¿µÄºó¶Ë½ø³Ì£¬Äã¿ÉÄÜ»¹»á·¢ÏÖÄ㻹ÐèÒªÔö¼ÓÐí¶à +Unix +ÄÚºËÅäÖòÎÊýÖµ¡£Òª¼ì²éµÄ¶«Î÷°üÀ¨¹²ÏíÄÚ´æ¿éµÄ×î´ó³ß´ç£¬<font size= +"-1">SHMMAX</font>£¬ÐźŵƵÄ×î´óÊýÄ¿£¬<font size="-1">SEMMNS</font> +ºÍ <font size="-1">SEMMNI</font>£¬×î´óµÄ½ø³ÌÊý£¬<font size= +"-1">NPROC</font>£¬µ¥Óû§×î´ó½ø³ÌÊý£¬<font size= +"-1">MAXUPRC</font>£¬ÒÔ¼°´ò¿ªÎļþµÄ×î´óÊýÄ¿£¬<font size= +"-1">NFILE</font> ºÍ <font size="-1">NINODE</font> ¡£Postgres +¶ÔÔÊÐíµÄºǫ́½ø³ÌÊýÓÐÏÞÖÆµÄÔÒòÊÇΪÁËÈ·±£ÄãµÄϵͳ²»»áÓùâ×ÊÔ´¡£</p> +<p>ÔÚ Postgres ÔçÓÚ 6.5 µÄ°æ±¾£¬×î´óºǫ́½ø³ÌÊýȱʡÊÇ +64£¬²¢ÇÒ¶ÔËüµÄÐÞ¸ÄÊ×ÏÈÐèÒªÐÞ¸Ä <i>include/storage/sinvaladt.h</i> +ÀïµÄ MaxBackendId ³£Á¿£¬È»ºóÖØÐ BUILD¡£</p> +<h4><a name="3.9"></a>3.9) pgsql_tmp Ŀ¼Àï¶¼ÓÐЩʲô£¿</h4> +<p>¸ÃĿ¼Ï±£´æÁ˲éѯִÐÐÆ÷Éú³ÉµÄÁÙʱÎļþ¡£ÀýÈ磬Èç¹ûÐèҪΪÂú×ã +<font size="-1">ORDER BY</font> Ìõ¼þ×öÅÅÐò£¬²¢ÇÒÅÅÐòÐèÒª±Èºǫ́µÄ -S +²ÎÊý¸ø³öµÄ¸ü¶àµÄ¿Õ¼ä£¬ÄÇô¾Í»á´´½¨Ò»¸öÁÙʱÎļþ±£´æ¶à³öÀ´µÄÊý¾Ý¡£</p> +<p> +ÁÙʱÎļþÓ¦¸Ã×Ô¶¯É¾³ý£¬²»¹ýÈç¹ûÔÚÅÅÐò¹ý³ÌÖкǫ́±ÀÀ£Á˾ͿÉÄÜÁôÏÂÀ´¡£Í£Ö¹²¢ÖØÆð +postmaster ½«»áɾ³ýÕâЩÎļþ¡£<br /></p> +<h4><a name="3.10"></a>3.10) ΪʲôҪÔÚÉý¼¶ PostgreSQL ·¢²¼°æ±¾Ê±×ö +dump ºÍ restore £¿</h4> +<p>PostgreSQL ¿ª·¢×é¶Ôÿ´ÎСµÄÉý¼¶½ö×öÁ˽ÏÉÙµÄÐÞ¸Ä,Òò´Ë´Ó 7.2 +Éý¼¶µ½ 7.2.1 ²»ÐèÒª dump ºÍ restore¡£µ«ÊÇÖ÷ÒªµÄÉý¼¶£¨ÀýÈç´Ó 7.2 µ½ +7.3£©Í¨³£»áÐÞ¸Äϵͳ±íºÍÊý¾Ý±íµÄÄÚ²¿¸ñʽ¡£ÕâЩ±ä»¯Ò»°ã±È½Ï¸´ÔÓ£¬Òò´ËÎÒÃDz»Î¬Êý¾ÝÎļþµÄÏòºó¼æÈÝ¡£dump +½«Êý¾Ý°´ÕÕͨÓõĸñʽÊä³ö£¬Ëæºó¿ÉÒÔ±»ÖØÐ¼ÓÔØ²¢Ê¹ÓÃеÄÄÚ²¿¸ñʽ¡£</p> +<p>´ÅÅÌÎļþ¸ñʽûÓб仯µÄÉý¼¶£¬¿ÉÒÔÓà <i>pg_upgrade</i> +½Å±¾£¬¶ø²»ÐèÒª×ö dump ºÍ restor¡£·¢²¼ËµÃ÷script »áÖ¸Ã÷ +<i>pg_upgrade</i> ¶Ô¸Ã´ÎÉý¼¶ÊÇ·ñ¿ÉÓá£</p> +<hr /> +<center> +<h2>²Ù×÷ÎÊÌâ</h2> +</center> +<h4><a name="4.1"></a>4.1) +¶þ½øÖÆÓαêºÍÆÕͨÓαêÖ®¼äµÄÇø±ðÊÇʲô£¿</h4> +²ÎÔÄ <font size="-1">DECLARE</font> ÊÖ²áÒ³»ñÈ¡ÐÅÏ¢¡£ +<h4><a name="4.2"></a>4.2)ÈçºÎÖ» <font size="-1">SELECT</font> +Ò»¸ö²éѯ½á¹ûµÄÍ·¼¸ÐУ¿</h4> +²ÎÔÄ <font size="-1">FETCH</font> ÊÖ²áÒ³£¬»òÕßʹÓà SELECT ... +LIMIT.... +<p>¼´Ê¹ÄãÖ»ÐèÒª¿ªÍ·µÄ¼¸ÐУ¬Ò²»áÉæ¼°µ½Õû¸ö²éѯ¡£ÊÔ×ÅʹÓôøÓÐ +<font size="-1">ORDER BY</font> µÄ²éѯ¡£Èç¹ûÓÐÒ»¸öË÷ÒýÓë +<font size="-1">ORDER BY</font> Æ¥Å䣬PostgreSQL +¿ÉÄܾÍÖ»´¦ÀíÒªÇóµÄÍ·¼¸Ìõ¼Ç¼£¬·ñÔò½«¶ÔÕû¸ö²éѯ½øÐд¦ÀíÖ±µ½Éú³ÉÐèÒªµÄÐС£</p> +<h4><a name="4.3"></a>4.3) ÎÒÈçºÎ»ñȡһ¸ö±íµÄÁÐ±í£¬»òÕßÊÇÆäËûÎÒÄÜÔÚ +<i>psql</i> Àï¿´µ½µÄ¶«Î÷£¿</h4> +Äã¿ÉÒÔÔĶÁ <i>psql</i> +µÄÔ´´úÂëÎļþ<i>pgsql/src/bin/psql/describe.c</i> ¡£Ëü°üÀ¨ÎªÉú³É +psql µÄ·´Ð±¸ÜÃüÁîµÄÊä³öµÄ SQL ÃüÁî¡£Ä㻹¿ÉÒÔ´ø <i>-E</i> Ñ¡ÏîÆô¶¯ +<i>psql</i>£¬ÕâÑùËü½«´òÓ¡³öÖ´ÐÐÄã¸ø³öµÄÃüÁîËùÓõIJéѯ¡£ +<h4><a name="4.4"></a>4.4) ÔõÑù´Ó±íÀïÃæÉ¾³ýÒ»ÁУ¿</h4> +<p>7.3 ÀïÔö¼ÓÁË <font size="-1">ALTER TABLE DROP +COLUMN</font>£¬ÒÔÖ§³Ö´ËÏÄÜ¡£ÔÚÒÔǰµÄ°æ±¾ÖУ¬¿ÉÒÔÕâÑù×ö£º</p> +<pre> + BEGIN; LOCK TABLE old_table; SELECT ... -- select all columns but the one you want to remove INTO TABLE new_table @@ -524,24 +595,33 @@ DROP TABLE old_table; ALTER TABLE new_table RENAME TO old_table; COMMIT; -</PRE> - <H4><a name="4.5"></a>4.5) Ò»ÐУ¬Ò»¸ö±í£¬Ò»¸ö¿âµÄ×î´ó³ß´çÊǶàÉÙ£¿</H4> - ÏÂÃæÊÇһЩÏÞÖÆ£º<PRE> Ò»¸öÊý¾Ý¿â×î´ó³ß´ç£¿ ÎÞÏÞÖÆ£¨´æÔÚ 1TB µÄÊý¾Ý¿â£© - Ò»¸ö±íµÄ×î´ó³ß´ç£¿ 16TB - Ò»ÐеÄ×î´ó³ß´ç£¿ 1.6TB +</pre> +<h4><a name="4.5"></a>4.5) +Ò»ÐУ¬Ò»¸ö±í£¬Ò»¸ö¿âµÄ×î´ó³ß´çÊǶàÉÙ£¿</h4> +ÏÂÃæÊÇһЩÏÞÖÆ£º +<pre> + Ò»¸öÊý¾Ý¿â×î´ó³ß´ç£¿ ÎÞÏÞÖÆ£¨´æÔÚ 1TB µÄÊý¾Ý¿â£© + Ò»¸ö±íµÄ×î´ó³ß´ç£¿ 16TB + Ò»ÐеÄ×î´ó³ß´ç£¿ 1.6TB Ò»¸ö×ֶεÄ×î´ó³ß´ç? 1GB - Ò»¸ö±íÀï×î´óÐÐÊý£¿ ÎÞÏÞÖÆ - Ò»¸ö±íÀï×î´óÁÐÊý£¿ ¸úÁÐÀàÐÍÓйØ,250-1600 - Ò»¸ö±íÀïµÄ×î´óË÷ÒýÊýÁ¿£¿ÎÞÏÞÖÆ</PRE> - µ±È»£¬Êµ¼ÊÉÏûÓÐÕæÕýµÄÎÞÏÞÖÆ£¬»¹ÊÇÒªÊÜ¿ÉÓôÅÅ̿ռ䡢¿ÉÓÃÄÚ´æ/½»»»ÇøµÄÖÆÔ¼¡£ - <P> - ±íµÄ×î´ó³ß´ç 16 TB ²»ÐèÒª²Ù×÷ϵͳ¶Ô´óÎļþµÄÖ§³Ö¡£´ó±íÓöà¸ö 1 - GB µÄÎļþ´æ´¢£¬Òò´ËÎļþϵͳ³ß´çµÄÏÞÖÆÊDz»ÖØÒªµÄ¡£ - <P>Èç¹ûȱʡµÄ¿é´óСÔö³¤µ½ 32K £¬×î´óµÄ±í³ß´çºÍ×î´óÁÐÊý¿ÉÒÔÔö¼Ó¡£</P> - <H4><a name="4.6"></a>4.6)´æ´¢Ò»¸öµäÐÍµÄÆ½ÃæÎļþÀïµÄÊý¾ÝÐèÒª¶àÉÙ´ÅÅ̿ռ䣿</H4> - Ò»¸ö Postgres Êý¾Ý¿â×î¶à¿ÉÄÜÐèÒªÏ൱ÓÚÔÚÒ»¸öÆ½ÃæÎļþÀï´æ´¢ÏàͬÊý¾ÝµÄ5±¶µÄ´ÅÅ̿ռ䡣 - <P>ÀýÈ磬¼ÙÉèÓÐÒ»¸ö 100,000 ÐеÄÎļþ£¬Ã¿ÐÐÓÐÒ»¸öÕûÊýºÍÒ»¸öÎı¾ÃèÊö¡£¼ÙÉèÎı¾´®µÄƽ¾ù³¤¶Èλ20×Ö½Ú¡£Æ½ÃæÎļþÕ¼Óà 2.8 MB¡£´æ·ÅÕâЩÊý¾ÝµÄ - PostgreSQL Êý¾Ý¿âÎļþ´óÔ¼ÊÇ 6.4 MB:<PRE> 36 ×Ö½Ú: ÿÐеÄÍ·£¨¹À¼ÆÖµ£© + Ò»¸ö±íÀï×î´óÐÐÊý£¿ ÎÞÏÞÖÆ + Ò»¸ö±íÀï×î´óÁÐÊý£¿ ¸úÁÐÀàÐÍÓйØ,250-1600 + Ò»¸ö±íÀïµÄ×î´óË÷ÒýÊýÁ¿£¿ÎÞÏÞÖÆ +</pre> +µ±È»£¬Êµ¼ÊÉÏûÓÐÕæÕýµÄÎÞÏÞÖÆ£¬»¹ÊÇÒªÊÜ¿ÉÓôÅÅ̿ռ䡢¿ÉÓÃÄÚ´æ/½»»»ÇøµÄÖÆÔ¼¡£ +<p>±íµÄ×î´ó³ß´ç 16 TB ²»ÐèÒª²Ù×÷ϵͳ¶Ô´óÎļþµÄÖ§³Ö¡£´ó±íÓöà¸ö 1 GB +µÄÎļþ´æ´¢£¬Òò´ËÎļþϵͳ³ß´çµÄÏÞÖÆÊDz»ÖØÒªµÄ¡£</p> +<p>Èç¹ûȱʡµÄ¿é´óСÔö³¤µ½ 32K +£¬×î´óµÄ±í³ß´çºÍ×î´óÁÐÊý¿ÉÒÔÔö¼Ó¡£</p> +<h4><a name= +"4.6"></a>4.6)´æ´¢Ò»¸öµäÐÍµÄÆ½ÃæÎļþÀïµÄÊý¾ÝÐèÒª¶àÉÙ´ÅÅ̿ռ䣿</h4> +Ò»¸ö Postgres +Êý¾Ý¿â×î¶à¿ÉÄÜÐèÒªÏ൱ÓÚÔÚÒ»¸öÆ½ÃæÎļþÀï´æ´¢ÏàͬÊý¾ÝµÄ5±¶µÄ´ÅÅ̿ռ䡣 +<p>ÀýÈ磬¼ÙÉèÓÐÒ»¸ö 100,000 +ÐеÄÎļþ£¬Ã¿ÐÐÓÐÒ»¸öÕûÊýºÍÒ»¸öÎı¾ÃèÊö¡£¼ÙÉèÎı¾´®µÄƽ¾ù³¤¶Èλ20×Ö½Ú¡£Æ½ÃæÎļþÕ¼Óà +2.8 MB¡£´æ·ÅÕâЩÊý¾ÝµÄ PostgreSQL Êý¾Ý¿âÎļþ´óÔ¼ÊÇ 6.4 MB:</p> +<pre> + 36 ×Ö½Ú: ÿÐеÄÍ·£¨¹À¼ÆÖµ£© 24 ×Ö½Ú: Ò»¸öint×ֶκÍÒ»¸öÎı¾ÐÍ×Ö¶Î + 4 ×Ö½Ú: Ò³ÃæÄÚÖ¸ÏòÔª×éµÄÖ¸Õë ---------------------------------------- @@ -558,275 +638,353 @@ 128 ÐÐÿҳ 782 Êý¾ÝÒ³ * 8192 ×Ö½Ú/Ò³ = 6,406,144 ×Ö½Ú£¨6.4 MB£© -</PRE> - <P>Ë÷Òý²»ÐèÒªÕâô¶àµÄ¶îÍâÏûºÄ£¬µ«Ò²È·Êµ°üÀ¨±»Ë÷ÒýµÄÊý¾Ý£¬Òò´ËËüÃÇÒ²¿ÉÄܴܺó¡£</P> - <P>¿ÕÖµ´æ·ÅÔÚλͼÖУ¬Òò´ËÕ¼ÓúÜÉٵĿռ䡣</P> - <H4><a name="4.7"></a>4.7) - ÈçºÎ²é¿´±í¡¢Ë÷Òý¡¢Êý¾Ý¿âÒÔ¼°Óû§µÄ¶¨Ò壿</H4> - <I> psql</I> ÓÐÐí¶à·´Ð±¸ÜÃüÁîÓÃÓÚÏÔʾÕâЩÐÅÏ¢¡£Óà \? ¿´¿´¶¼ÓÐÄÄЩ¡£ÒÔ pg_ ´òÍ·µÄϵͳ±íÒ²ÃèÊöÁËÕâЩÐÅÏ¢¡£ psql -l - ¿ÉÒÔÁгöËùÓеÄÊý¾Ý¿â¡£ - <P>Ò²¿ÉÒÔÊÔÊÔÎļþ <I>pgsql/src/tutorial/syscat.source</I>¡£ËüÑÝʾÁËÐí¶à´ÓÊý¾Ý¿âϵͳ±íÀï»ñÈ¡ÐÅÏ¢ÐèÒªµÄ <FONT size="-1"> - SELECT</FONT>¡£ - <H4><a name="4.8"></a>4.8) ÎҵIJéѯºÜÂý»òÕßûÓÐÀûÓÃË÷Òý¡£ÎªÊ²Ã´£¿</H4> - <P> - ²¢·Çÿ¸ö²éѯ¶¼»á×Ô¶¯Ê¹ÓÃË÷Òý¡£Ö»ÓÐÔÚ±íµÄ´óС³¬¹ýÒ»¸ö×îСֵ£¬²¢ÇÒ²éѯֻѡÔñ±íÖнÏС±ÈÀýµÄÐÐʱ²ÉÓÃʹÓÃË÷Òý¡£ÕâÊÇÒòΪË÷ÒýɨÃèÒýÆðµÄËæ¼´´ÅÅÌ´æÈ¡¿ÉÄܱÈÖ±½ÓµØ¶ÁÈ¡±í£¨Ë³ÐòɨÃ裩¸üÂý¡£ÎªÁËÅжÏÊÇ·ñʹÓÃË÷Òý£¬PostgreSQL - ±ØÐë»ñµÃÓйرíµÄͳ¼ÆÖµ¡£ÕâЩͳ¼ÆÖµ¿ÉÒÔʹÓà VACUUM ANALYZE£¬»ò ANALYZE - »ñµÃ¡£Ê¹ÓÃͳ¼ÆÖµ£¬ÓÅ»¯Æ÷ÖªµÀ±íÖÐÓжàÉÙÐУ¬¾ÍÄܹ»¸üºÃµØÅжÏÊÇ·ñÀûÓÃË÷Òý¡£Í³¼ÆÖµ¶ÔÈ·¶¨ÓÅ»¯µÄÁ¬½Ó˳ÐòºÍÁ¬½Ó·½·¨Ò²ºÜÓÐÓá£ÔÚ±íµÄÄÚÈÝ·¢Éú±ä»¯Ê±£¬Ó¦¶¨ÆÚ½øÐÐͳ¼ÆÖµµÄ»ñÈ¡¡£ - <P> - Ë÷Òýͨ³£²»ÓÃÓÚ ORDER BY »òÖ´ÐÐÁ¬½Ó¡£¶ÔÒ»¸ö´ó±íµÄÒ»´Î˳ÐòɨÃ裬ÔÙ×öÒ»¸öÏÔʽµÄÅÅÐòͨ³£±ÈË÷ÒýɨÃèÒª¿ì¡£ - <P>µ«ÊÇ£¬ÔÚ LIMIT ºÍ ORDER BY ½áºÏʹÓÃʱ¾³£»áʹÓÃË÷Òý£¬ÒòΪֻ»á·µ»Ø±íµÄһС²¿·Ö¡£Êµ¼ÊÉÏ£¬ËäÈ» MAX() ºÍ MIN() ²¢²»Ê¹ÓÃË÷Òý£¬Í¨¹ý¶Ô - ORDER BY ºÍ LLIMIT ʹÓÃË÷ÒýÈ¡µÃ×î´óÖµºÍ×îСֵҲÊÇ¿ÉÒԵģº<BR> - <BR> - SELECT col<BR> - FROM tab<BR> - ORDER BY col [ DESC ]<BR> - LIMIT 1; - <P>µ±Ê¹ÓÃͨÅä·û²Ù×÷£¬ÀýÈç LIKE »ò ~ ʱ£¬Ë÷ÒýÖ»ÄÜÔÚÌØ¶¨µÄÇé¿öÏÂʹÓ㺠<ul><li> ×Ö·û´®µÄ¿ªÊ¼²¿·Ö±ØÐëÊÇÆÕͨ×Ö·û´®£¬Ò²¾ÍÊÇ˵£º</li> - <li>LIKE ģʽ²»ÄÜÒÔ % ´òÍ·¡£</li><li>~ £¨ÕýÔò±í´ïʽ£©Ä£Ê½±ØÐëÒÔ ^ ´òÍ·¡£</li> - <li>×Ö·û´®²»ÄÜÒÔÆ¥Åä¶à¸ö×Ö·ûµÄģʽÀà´òÍ·£¬ÀýÈç [a-e]¡£</li><li>´óСдÎ޹صIJéÕÒ£¬Èç ILIKE ºÍ ~* µÈ²»Ê¹ÓÃË÷Òý¡£µ«¿ÉÒÔÓà 4.12 ½ÚÃèÊöµÄº¯ÊýË÷Òý¡£</li><li>ÔÚ×ö initdb ʱ±ØÐë²ÉÓÃȱʡµÄ±¾µØÉèÖà C locale¡£</li></ul> - <H4><a name="4.9"></a>4.9) - ÎÒÈçºÎ²ÅÄÜ¿´µ½²éѯÓÅ»¯Æ÷ÊÇÔõÑù´¦ÀíÎҵIJéѯµÄ£¿</H4> - ²Î¿¼ <FONT size="-1">EXPLAIN</FONT> ÊÖ²áÒ³¡£ - <H4><a name="4.10"></a>4.10) R-tree Ë÷ÒýÊÇʲô£¿</H4> - <P>R-tree Ë÷ÒýÓÃÓÚË÷Òý¿Õ¼äÊý¾Ý¡£Ò»¸ö¹þÏ£Ë÷ÒýÎÞ·¨´¦Àí·¶Î§ËÑË÷¡£¶ø B-tree Ë÷ÒýÖ»ÄÜ´¦ÀíһάµÄ·¶Î§ËÑË÷¡£R-tree - Ë÷Òý¿ÉÒÔ´¦Àí¶àάÊý¾Ý¡£ÀýÈ磬Èç¹û¿ÉÒÔÔÚÒ»¸öÀàÐÍΪ point µÄ×Ö¶ÎÉϽ¨Á¢Ò»¸ö R-tree Ë÷Òý£¬ÄÇôϵͳÄܸü¸ßЧµØ»Ø´ðÀàËÆ - ¡°Ñ¡ÔñÔÚÒ»¸ö³¤·½Ðη¶Î§ÄÚµÄËùÓе㡱¡£<BR> - <BR> - ÃèÊö×î³õµÄ R-Tree Éè¼ÆµÄÕýʽÂÛÎÄÊÇ£º<BR> - <BR> - 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. - <BR> - <BR> - Ä㻹¿ÉÒÔÔÚ Stonebraker µÄ¡°Readings in Database Systems¡±ÀïÕÒµ½ÕâÆªÎÄÕ¡£<BR> - <BR> - ϵͳÄÚÖÃµÄ R-Tree ¿ÉÒÔ´¦Àí¶à±ßÐκͷ½ÐΡ£ÀíÂÛÉÏ˵£¬R-tree ¿ÉÒÔÀ©Õ¹Îª´¦Àí¸ü¶àάÊý¡£²»¹ýÔÚʵ¼ùÉÏ£¬À©Õ¹ R-trees - ÐèÒªÒ»¶¨µÄ¹¤×÷Á¿£¬¶øÎÒÃÇĿǰûÓÐÈçºÎ×öµÄÎĵµ¡£<H4><a name="4.11"></a>4.11) - ʲôÊÇ»ùÒò²éѯÓÅ»¯£¨Genetic Query Optimization£©£¿</H4> - <P>GEQO Ä£¿é²ÉÓûùÒòËã·¨£¨Genetic Algorithm£¬GA£©¼Ó¿ì¶à±íÁ¬½ÓµÄ²éѯÓÅ»¯¡£ËüÔÊÐíͨ¹ý·ÇÇî¾ÙËÑË÷´¦Àí´óµÄÁ¬½Ó²éѯ¡£ - <H4><a name="4.12"></a>4.12) - ÎÒÔõÑù×öÕýÔò±í´ïʽËÑË÷ºÍ´óСдÎ޹صÄÕýÔò±í´ïʽËÑË÷£¿ÔõÑùÀûÓÃË÷Òý½øÐдóСдÎÞ¹ØËÑË÷£¿</H4> - <p>²Ù×÷·û ~ ´¦ÀíÕýÔò±í´ïʽƥÅ䣬¶ø ~* ´¦Àí´óСдÎ޹صÄÕýÔò±í´ïʽƥÅä¡£´óдЩÎÞ¹ØµÄ LIKE ±äÖÖ³ÉΪ ILIKE¡£<br> - <br> - ´óСдÎ޹صĵÈʽ±È½Ïͨ³£Ð´×ö£º<br> - <br> - SELECT *<br> - FROM tab<br> - WHERE lower(col) = 'abc';<br> - <br> - ÕâÑù½«²»»áʹÓñê×¼µÄË÷Òý¡£µ«ÊÇ¿ÉÒÔ´´½¨Ò»¸ö¿É±»ÀûÓõĺ¯ÊýË÷Òý:<br> - <br> - CREATE INDEX tabindex ON tab (lower(col));</p> - <h4><a name="4.13"></a>4.13) ÔÚÒ»¸ö²éѯÀÎÒÔõÑù¼ì²âÒ»¸ö×Ö¶ÎÊÇ·ñΪ NULL£¿</h4> - <p>Óà IS NULL ºÍ IS NOT NULL ²âÊÔÕâ¸ö×ֶΡ£ <br> - </p> - <h4><a name="4.14"></a>4.14) ¸÷ÖÖ×Ö·ûÀàÐÍÖ®¼äÓÐʲô²»Í¬£¿</h4> - <p> ÀàÐÍ - ÄÚ²¿Ãû³Æ - ˵Ã÷<br> - --------------------------------------------------<br> - "char" char - 1¸ö×Ö·û character<br> - CHAR(#) bpchar - ¶¨³¤×Ö·û´®£¬Êµ¼ÊÊý¾Ý²»×㶨Ò峤¶Èʱ£¬ÒÔ¿Õ¸ñ²¹Æë<br> - VARCHAR(#) varchar Ö¸¶¨ÁË×î´ó³¤¶È£¬±ä³¤×Ö·û´®£¬²»×㶨Ò峤¶ÈµÄ²¿·Ö²»²¹Æë<br> - TEXT text - ´®³¤¶È½öÊÜÐеÄ×î´ó³¤¶ÈÏÞÖÆ<br> - BYTEA bytea - ±ä³¤×Ö½ÚÐòÁУ¨±ä³¤µÄ¶þ½øÖÆÊý¾Ý£©<br> - <br> - ÔÚϵͳ±íºÍÔÚһЩ´íÎóÐÅÏ¢ÀïÄ㽫¿´µ½ÄÚ²¿Ãû³Æ¡£ <br> - <br> - ÉÏÃæ×îºóËÄÖÖÀàÐÍÊÇ"varlena"£¨±ä³¤£©ÀàÐÍ£¨Ò²¾ÍÊÇ˵£¬¿ªÍ·µÄËĸö×Ö½ÚÊdz¤¶È£¬ºóÃæ²ÅÊÇÊý¾Ý£©¡£ÓÚÊÇʵ¼ÊÕ¼ÓõĿռä±ÈÉùÃ÷µÄ´óСҪ¶àһЩ¡£È»¶øÕâЩÀàÐͶ¼¿ÉÒÔ±»Ñ¹Ëõ´æ´¢£¬Ò²¿ÉÒÔÓà TOAST ÍÑ»ú´æ´¢£¬Òò´Ë´ÅÅ̿ռäÒ²¿ÉÄܱÈÔ¤ÏëµÄÒªÉÙ¡£<br> - <br> - CHAR(n) ×îÊʺÏÓÚ´æ´¢³¤¶È»ù±¾²î²»¶àµÄ×Ö·û´®¡£VARCHAR(n) ÔÚ´æ´¢ÏÞÖÆÁË×î´ó³¤¶ÈµÄ±ä³¤×Ö·û´®ÊÇ×îºÃµÄ¡£TEXT ÊÊÓÃÓÚ´æ´¢²»ÏÞÖÆ³¤¶ÈµÄ×Ö·û´®£¬×î´ó¿É´ï 1G¡£BYTEA ÓÃÓÚ´æ´¢¶þ½øÖÆÊý¾Ý£¬ÓÈÆäÊǰüº¬ NULL ×Ö½Ú£¨¶þ½øÖƵÄ0£©µÄÖµ¡£ÕâЩÀàÐ;ßÓÐÀàÐ͵ÄÐÔÄÜ¡£</p> - <h4><a name="4.15.1"></a>4.15.1) ÎÒÔõÑù´´½¨Ò»¸öÐòÁкÅ/×Ô¶¯µÝÔöµÄ×ֶΣ¿</h4> - <p>PostgreSQL Ö§³Ö SERIAL Êý¾ÝÀàÐÍ¡£ËüÔÚ×Ö¶ÎÉÏ×Ô¶¯´´½¨Ò»¸öÐòÁкÍË÷Òý¡£ÀýÈ磬<br> - CREATE TABLE person ( <br> - id SERIAL, <br> - name TEXT <br> - );<br> - <br> - »á×Ô¶¯×ª»»Îª£º <br> - <br> - CREATE SEQUENCE person_id_seq;<br> - CREATE TABLE person ( <br> - id INT4 NOT NULL DEFAULT nextval('person_id_seq'),<br> - name TEXT <br> - );<br> - CREATE UNIQUE INDEX person_id_key ON person ( id );<br> - <br> - ²Î¿¼ create_sequence ÊÖ²áÒ³»ñÈ¡¹ØÓÚÐòÁеĸü¶àÐÅÏ¢¡£Ä㻹¿ÉÒÔÓÃÿÐÐµÄ oid ×Ö¶Î×÷Ϊһ¸öΨһֵ¡£²»¹ý£¬Èç¹ûÄãÐèÒªÇãµ¹ºÍÖØÔØÊý¾Ý¿â£¬ÄãÐèҪʹÓà pg_dump µÄ -o Ñ¡Ïî»òÕß COPY WITH OIDS Ñ¡ÏîÒÔ±£Áô OID¡£ </p> - <h4><a name="4.15.2"></a>4.15.2) - ÎÒÈçºÎ»ñµÃÒ»¸ö²åÈëµÄÐòÁкŵÄÖµ£¿</h4> - <p>Ò»ÖÖ·½·¨ÊÇÔÚ²åÈë֮ǰÏÈÓú¯Êý nextval() ´ÓÐòÁжÔÏóÀï¼ìË÷³öÏÂÒ»¸ö SERIAL Öµ£¬È»ºóÔÙÏÔʽ²åÈ롣ʹÓà - <a href="#4.15.1"> 4.15.1</a> ÀïµÄÀý±í£¬¿ÉÓÃαÂëÕâÑùÃèÊö£º <br> - <br> - new_id = execute("SELECT nextval('person_id_seq')");<br> - execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");<br> - <br> - ÕâÑù»¹ÄÜÔÚÆäËû²éѯÖÐʹÓôæ·ÅÔÚ new_id ÀïµÄÐÂÖµ£¨ÀýÈ磬×÷Ϊ person ±íµÄÍâ¼ü£©¡£×¢Òâ×Ô¶¯´´½¨µÄ SEQUENCE ¶ÔÏóµÄÃû³Æ½«»áÊÇ <table>_<serialcolumn>_seq£¬ÕâÀï table ºÍ serialcolumn ·Ö±ðÊÇÄãµÄ±íµÄÃû³ÆºÍÄãµÄ SERIAL ×ֶεÄÃû³Æ¡£ <br> - <br> - ÀàËÆµÄ£¬ÔÚ SERIAL ¶ÔÏóȱʡ²åÈëºóÄã¿ÉÒÔÓú¯Êý currval() ¼ìË÷¸Õ¸³ÖµµÄ SERIAL Öµ£¬ÀýÈ磬 <br> - <br> - execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");<br> - new_id = execute("SELECT currval('person_id_seq')");<br> - <br> - ×îºó£¬Äã¿ÉÒÔʹÓÃ´Ó INSERT Óï¾ä·µ»ØµÄ <a href="4.16">OID</a> - ²éÕÒȱʡֵ£¬¾¡¹ÜÕâ¿ÉÄÜÊÇ×îȱ·¦ÒÆÖ²ÐԵķ½·¨¡£ÔÚ Perl ÀʹÓôøÓÐ Edmund Mergl µÄ DBD::Pg Ä£¿éµÄ DBI£¬oid Öµ¿ÉÒÔͨ¹ý $sth->execute() ºóµÄ $sth->{pg_oid_status} »ñµÃ¡£ </p> - <h4><a name="4.15.3"></a>4.15.3) ʹÓà currval() ºÍ nextval() »áµ¼ÖÂÒ»¸öÓëÆäËûÓû§Ö®¼äµÄÎÉÂÒÇé¿öÂð£¿</h4> - <p>²»»á¡£currval() ·µ»Øºǫ́½ø³Ì¶ø²»ÊÇËùÓÐÓû§¸³ÓèµÄµ±Ç°Öµ¡£<br> - </p> - <h4><a name="4.15.4"></a>4.15.4) - Ϊʲô²»ÔÚÊÂÎñÒì³£ÖÐÖ¹ºóÖØÓÃÐòÁкÅÄØ£¿ÎªÊ²Ã´ÔÚÐòÁкÅ×ֶεÄȡֵÖдæÔÚ¼ä¶ÏÄØ£¿</h4> - <p>ΪÁËÌá¸ß²¢·¢ÐÔ£¬ÐòÁкÅÔÚÐèÒªµÄʱºò¸³ÓèÕýÔÚÔËÐеÄÊÂÎñ£¬²¢ÇÒÖ»ÔÚÊÂÎñ½áÊøÖ®Ç°²»·âËø¡£Õâ¾Í»áµ¼ÖÂØ²ÕÛÊÂÎñºóµÄÐòÁкųöÏÖ¼ä¸ô¡£</p> - <h4><br> - <a name="4.16"></a>4.16) ʲôÊÇ OID£¿Ê²Ã´ÊÇ TID£¿</h4> - <p>OID ÊÇ PostgreSQL ÖÐÐеÄΨһ±êʶ¡£PostgreSQL Àï´´½¨µÄÿһÐж¼»ñµÃÒ»¸öΨһµÄ OID¡£ËùÓÐÔÚ initdb ¹ý³ÌÖд´½¨µÄ OID ¶¼Ð¡ÓÚ 16384 £¨²Î¼û include/access/transam.h£©¡£ËùÓÐÓû§´´½¨µÄ OID ¶¼´óÓÚ»òµÈÓÚÕâ¸öÖµ¡£È±Ê¡Ê±£¬ËùÓÐÕâЩ OID ²»½öÔÚÒ»¸ö±í»òÒ»¸öÊý¾Ý¿âÀïÃæÎ¨Ò»£¬¶øÇÒÔÚÕû¸ö PostgreSQL °²×°ÀïÒ²ÊÇΨһµÄ¡£ <br> - <br> - PostgreSQL ÔÚËüµÄÄÚ²¿ÏµÍ³±íÀïʹÓà OID ÔÚ±íÖ®¼ä½¨Á¢ÁªÏµ¡£ÕâЩ OID ¿ÉÒÔÓÃÓÚ±êÊ¶ÌØ¶¨µÄÓû§ÐÐÒÔ¼°ÓÃÔÚÁ¬½ÓÀï¡£½¨ÒéʹÓÃ×Ö¶ÎÀàÐÍ OID ´æ´¢ OID Öµ¡£¿ÉÒÔÔÚ OID ×Ö¶ÎÉÏ´´½¨Ò»¸öË÷ÒýÒÔ¿ìËÙ·ÃÎÊ¡£ <br> - <br> - OID ´ÓÒ»¸ö±»ËùÓÐÊý¾Ý¿âʹÓõÄÖÐÐÄÇøÓòÀ︳ֵ¸øËùÓÐÐÂÐС£Èç¹ûÄãÏë°Ñ OID ¸Ä³É±ðµÄÖµ£¬»òÕßÏë×öÒ»·Ý±íµÄ´øÔʼ OID µÄ¿½±´£¬Äã¿ÉÒÔ×öµ½£º <br> - <br> - CREATE TABLE new(old_oid oid, mycol int);<br> - SELECT old_oid, mycol INTO new FROM old;<br> - COPY new TO '/tmp/pgtable';<br> - DELETE FROM new;<br> - COPY new WITH OIDS FROM '/tmp/pgtable';<br> - <br> - OID ÓÃ4×Ö½ÚµÄÕûÊý±£´æ£¬ÔÚ³¬¹ý40ÒÚʱ½«Òç³ö¡£Ã»ÓÐÈ˱¨¸æ³öÏÖ¹ýÒç³ö£¬¶øÎÒÃÇ´òËãÔÚÓÐÈ˱¨¸æÖ®Ç°Ïû³ýÕâ¸öÏÞÖÆ¡£<br> - <br> - TID ÓÃÓÚ±êʶ´ø×ÅÊý¾Ý¿é£¨µØÖ·£©ºÍ£¨¿éÄÚ£©Æ«ÒƵÄÌØ¶¨µÄÎïÀíÐС£TID ÔÚÐб»¸ü¸Ä»òÖØÔØºó·¢Éú¸Ä±ä¡£Ë÷ÒýÈë¿ÚʹÓÃËüÃÇÖ¸ÏòÎïÀíÐС£</p> - <h4><a name="4.17"></a>4.17) PostgreSQL ʹÓõÄһЩÊõÓïµÄº¬ÒåÊÇʲô£¿</h4> - <p>һЩԴ´úÂëºÍһЩ¾ÉÒ»µãµÄÎĵµÊ¹ÓÃһЩÓиü³£ÓÃÓ÷¨µÄÊõÓï¡£ÏÂÃæÊÇÆäÖÐÒ»²¿·Ö£º <br> - table, relation, class <br> - row, record, tuple <br> - column, field, attribute <br> - retrieve, select <br> - replace, update <br> - append, insert <br> - OID, serial value <br> - portal, cursor <br> - range variable, table name, table alias <br> - <br> - ÓÐÒ»¸öͨÓÃÊý¾Ý¿âÊõÓïµÄÁÐ±í£º<a href="http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html">http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html</a> - ¡£ </p> - <h4><a name="4.18"></a>4.18) - ΪʲôÎÒÊÕµ½´íÎó¡°<i>ERROR: Memory exhausted in AllocSetAlloc()</i>¡±£¿</h4> - <p>ÕâºÜ¿ÉÄÜÊÇϵͳµÄÐéÄâÄÚ´æÓùâÁË£¬»òÕßÄں˶ÔijЩ×ÊÔ´Óнϵ͵ÄÏÞÖÆÖµ¡£ÔÚÆô¶¯ postmaster ֮ǰÊÔÊÔÏÂÃæµÄÃüÁ <br> - <br> - ulimit -d 262144<br> - limit datasize 256m<br> - <br> - È¡¾öÓÚÄãÓÃµÄ shell£¬ÉÏÃæÃüÁîÖ»ÓÐÒ»ÌõÄܳɹ¦£¬µ«ÊÇËü½«°ÑÄãµÄ½ø³ÌÊý¾Ý¶ÎÏÞÖÆÉèµÃ±È½Ï¸ß£¬Òò¶øÒ²ÐíÄÜÈòéѯÍê³É¡£ÕâÌõÃüÁîÓ¦ÓÃÓÚµ±Ç°½ø³Ì£¬ÒÔ¼°ËùÓÐÔÚÕâÌõÃüÁîÔËÐк󴴽¨µÄ×Ó½ø³Ì¡£Èç¹ûÄãÊÇÔÚÔËÐÐSQL¿Í»§¶ËʱÒòΪºǫ́·µ»ØÁËÌ«¶àµÄÊý¾Ý¶ø³öÏÖÎÊÌ⣬ÇëÔÚÔËÐпͻ§¶Ë֮ǰִÐÐÉÏÊöÃüÁî¡£</p> - <h4><a name="4.19"></a>4.19) - ÎÒÈçºÎ²ÅÄÜÖªµÀËùÔËÐÐµÄ PostgreSQL µÄ°æ±¾£¿</h4> - <p>´Ó psql À¼üÈë SELECT version()£»<br> - </p> - <h4><a name="4.20"></a>4.20) - ΪʲôÎҵĴó¶ÔÏó²Ù×÷µ¼Ö´íÎó¡°<I>invalid large obj descriptor¡±£¨·Ç·¨µÄ´ó¶ÔÏóÃèÊö·û£©</I>£¿</h4> - <p>ÄãÐèÒªÔÚʹÓÃÈκδó¶ÔÏó¾ä±úµÄǰºó·ÅÉÏ BEGIN WORK ºÍ COMMIT£¬Ò²¾ÍÊÇ˵£¬°üΧ lo_open ... lo_close¡£ <br> - <br> - Ŀǰ PostgreSQL Ç¿ÖÆÊµÊ©ÕâÌõ¹æÔò£ºÔÚÊÂÎñÌύʱ¹Ø±Õ´ó¶ÔÏó¾ä±ú£¬ÕâÑù£¬£¨Ã»ÓвÉÓÃÊÂÎñʱ£©£¬Ê״ζԴó¶ÔÏó¾ä±ú×öÈκÎÊÂÇéµÄÆóͼ¶¼»áµ¼ÖÂÒ»¸ö invalid large obj descriptor¡£ËùÒÔ£¬Èç¹ûÄãûÓÐʹÓÃÒ»¸öÊÂÎñ£¬ÒÔǰÄܹ¤×÷µÄ´úÂ루ÖÁÉÙÊÇ´ó¶àÊýʱ¼ä£©½«»áÉú³ÉÕâôһ¸ö´íÎóÐÅÏ¢¡£ <br> - <br> - Èç¹ûÄãʹÓÿͻ§¶Ë½Ó¿Ú£¬Èç ODBC£¬Äã¿ÉÄÜÐèÒª set auto-commit off¡£</p> - <h4><a name="4.21"></a>4.21) ÎÒÈçºÎ´´½¨Ò»¸öȱʡֵÊǵ±Ç°Ê±¼äµÄ×ֶΣ¿</h4> - <p>ʹÓà CURRENT_TIMESTAMP£º<br> - <br> - CREATE TABLE test(x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP);</p> - <h4><a name="4.22"></a>4.22) ΪʲôʹÓà IN µÄ×Ó²éѯÕâôÂý£¿</h4> - <p>Ŀǰ£¬ÎÒÃÇͨ¹ýΪÍâ²éѯµÄÿһÐÐ˳ÐòɨÃè×Ó²éѯµÄ½á¹ûÀ´Á¬½Ó×Ó²éѯºÍÍâ²éѯ¡£Èç¹û×Ó²éѯ·µ»ØÉÙÊý¼¸ÐУ¬¶øÍâ²éѯ·µ»ØºÜ¶àÐУ¬IN Ö´Ðеúܿ졣ΪÁ˼ӿìÆäËû IN ²éѯµÄÖ´ÐУ¬¿ÉÒÔÓà EXISTS Ìæ»» IN£º <br> - <br> - SELECT *<br> - FROM tab<br> - WHERE col IN (SELECT subcol FROM subtab);<br> - <br> - ¸ÄΪ£º <br> - <br> - SELECT *<br> - FROM tab<br> - WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);<br> - <br> - ºóÕßÒªÏëÖ´Ðеøü¿ì£¬subcol Ó¦¸ÃÊÇÒ»¸öË÷ÒýÁС£ÎÒÃÇÏ£ÍûÔÚδÀ´µÄ·¢²¼°æ±¾ÖÐÐÞ²¹Õâ¸öÏÞÖÆ¡£</p> - <h4><a name="4.23"></a>4.23) ÎÒÔõÑù½øÐÐ outer join £¨ÍâÁ¬½Ó£©£¿</h4> - <p>PostgreSQL ²ÉÓñê×¼µÄ SQL Óï·¨Ö§³ÖÍâÁ¬½Ó¡£ÕâÀïÊÇÁ½¸öÀý×Ó£º<br> - <br> - SELECT *<br> - FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);<br> - <br> - »ò <br> - SELECT *<br> - FROM t1 LEFT OUTER JOIN t2 USING (col);<br> - <br> - ÕâÁ½¸öµÈ¼ÛµÄ²éѯÔÚ t1.col ºÍ t2.col ÉÏ×öÁ¬½Ó£¬²¢ÇÒ·µâ»?t1 ÖÐËùÓÐδÁ¬½ÓµÄÐУ¨ÄÇЩÔÚ t2 ÖÐûÓÐÆ¥ÅäµÄÐУ©¡£ÓÒ[Íâ]Á¬½Ó(RIGHT OUTER JOIN)½«·µ»Ø t2 ÖÐδÁ¬½ÓµÄÐС£ÍêÈ«ÍâÁ¬½Ó£¨FULL OUTER JOIN£©½«·µ»Ø t1 ºÍ t2 ÖÐδÁ¬½ÓµÄÐС£¹Ø¼ü×Ö OUTER ÔÚ×ó[Íâ]Á¬½Ó¡¢ÓÒ[Íâ]Á¬½ÓºÍÍêÈ«[Íâ]Á¬½ÓÖÐÊÇ¿ÉÑ¡µÄ£¬ÆÕͨÁ¬½Ó±»³ÉΪÄÚÁ¬½Ó£¨INNER JOIN£©¡£<br> - <br> - ÔÚ´ËǰµÄ°æ±¾ÖУ¬ÍâÁ¬½Ó¿ÉÒÔÓà UNION ºÍ NOT IN À´Ä£Äâ¡£ÀýÈ磬ÏÂÃæµÄÀý×ÓÔÚ±í tab1 ºÍ tab2 Ö®¼ä×öÍâÁ¬½Ó£º<br> - <br> - SELECT tab1.col1, tab2.col2<br> - FROM tab1, tab2<br> - WHERE tab1.col1 = tab2.col1<br> - <br> - UNION ALL<br> - <br> - SELECT tab1.col1, NULL<br> - FROM tab1<br> - WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2)<br> - ORDER BY col1</p> - <h4><a name="4.24"></a>4.24) - ÈçºÎʹÓÃÉæ¼°¶à¸öÊý¾Ý¿âµÄ²éѯ£¿</h4> - <p>ûÓа취²éѯµ±Ç°Êý¾Ý¿âÖ®ÍâµÄÊý¾Ý¿â¡£ÒòΪ PostgreSQL ¼ÓÔØÊý¾Ý¿âÏà¹ØµÄϵͳĿ¼£¨ÏµÍ³±í£©£¬¿çÊý¾Ý¿âµÄ²éѯÈçºÎÖ´ÐÐҲδÃ÷È·¡£<br> - <br> - contrib/dblink ÔÊÐí²ÉÓú¯Êýµ÷ÓÃʵÏÖ¿ç¿â²éѯ¡£µ±È»¿ÉÒÔͬʱÁ¬½Óµ½²»Í¬µÄÊý¾Ý¿â²¢ÔÚ¿Í»§¶ËºÏ²¢½á¹û¡£</p> - <h4><a name="4.25"></a>4.25) - ÈçºÎÈú¯Êý·µ»Ø¶àÐлò¶àÁУ¿</h4> - <p>¿ÉÒÔÔÚ PL/pgSQL º¯ÊýÖÐʹÓà refcursors ·µ»Ø½á¹û¼¯¡£²Î¿´ - <a href="http://www.PostgreSQL.org/idocs/index.php?plpgsql-cursors.html"> http://www.PostgreSQL.org/idocs/index.php?plpgsql-cursors.html</a>, 23.7.3.3½Ú¡£<br> - </p> - <h4><a name="4.26"></a>4.26) ΪʲôÔÚ - PL/PgSQL º¯ÊýÖв»Äܿɿ¿µØ´´½¨»òɾ³ýÁÙʱ±í£¿</h4> - <p>PL/PgSQL - »º´æº¯ÊýµÄÄÚÈÝ£¬ÓÉ´Ë´øÀ´µÄÒ»¸ö²»ºÃµÄ¸±×÷ÓÃÊÇÈôÒ»¸ö PL/PgSQL - º¯Êý·ÃÎÊÁËÒ»¸öÁÙʱ±í£¬È»ºó¸Ã±í±»É¾³ý²¢Öؽ¨ÁË£¬ÔòÔٴε÷Óøú¯Êý½«Ê§°Ü£¬ÒòΪ»º´æµÄº¯ÊýÄÚÈÝÈÔȻָÏò¾ÉµÄÁÙʱ±í¡£½â¾öµÄ·½·¨ÊÇÔÚ - PL/PgSQL ÖÐÓà EXECUTE - ¶ÔÁÙʱ±í½øÐзÃÎÊ¡£ÕâÑù»á±£Ö¤²éѯÔÚÖ´ÐÐǰ×ÜÊÇÖØÐ·ÖÎö¡£</p> - <h4><a name="4.27"></a>4.27) - ÓÐÄÄЩÊý¾Ý¸´ÖÆÑ¡Ï</h4> - <p>Óм¸ÖÖÖ÷/´Ó·½Ê½µÄ¸´ÖÆÑ¡Ïî¡£ÕâЩѡÏîÖ»ÔÊÐíÖ÷Êý¾Ý¿â½øÐиüУ¬´ÓÊý¾Ý¿âÖ»ÄܽøÐжÁ¡£ÍøÒ³ - <a href="http://gborg.PostgreSQL.org/genpage?replication_research">http://gborg.PostgreSQL.org/genpage?replication_research</a> - µÄ×îºóÁгöÁËÕâЩѡÏî¡£ÔÚ <a href="http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php"> http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php</a> - ÕýÔÚ½øÐÐÒ»¸ö¶àÖ÷±¾¸´ÖƵĽâ¾ö·½°¸¡£</p> - <h4><a name="4.28"></a>4.28) - ÓÐÄÄЩÊý¾Ý¼ÓÃÜÑ¡Ï - </h4> - <p>contrib/pgcrypto °üº¬Á˺ܶàÔÚ SQL - ²éѯÖÐʹÓõļÓÃܺ¯Êý¡£¼ÓÃܿͻ§¶Ëµ½·þÎñÆ÷¶Ë´«ÊäÊý¾ÝµÄΨһ·½·¨ÊÇÔÚ pg_hba.conf - ÖвÉÓà hostss ¡£ <br> - <br> - 7.3 - °æ±¾ÖÐ×Ô¶¯¶ÔÊý¾Ý¿âÓû§ÃÜÂë½øÐмÓÃÜ¡£ÔÚÒÔǰµÄ°æ±¾ÖУ¬±ØÐëÔÚ - postgresql.conf Öдò¿ª PASSWORD_ENCRYPTION - Ñ¡Ïî¡£·þÎñÆ÷¿ÉÒÔÔËÐÐÔÚ¼ÓÃܵÄÎļþϵͳÉÏ£¨ÒÔ´ïµ½¼ÓÃܵÄÄ¿µÄ£©¡£<br> - <br> - --------------------------------------------------------------------------------</p> - <h2 align="center">À©Õ¹ PostgreSQL</h2> - <h4><a name="5.1"></a>5.1) - ÎÒдÁËÒ»¸öÓû§¶¨Ò庯Êý¡£µ±ÎÒÔÚ psql ÀïÔËÐÐʱ£¬ÎªÊ²Ã´»áµ¼Ö core dump£¿</h4> - <p>²úÉúÕâ¸öÎÊÌâµÄÔÒòºÜ¶à¡£ÇëÏÈÔÚÒ»¸öµ¥¶ÀµÄ²âÊÔ³ÌÐòÖвâÊÔÄãµÄ×Ô¶¨Ò庯Êý¡£</p> - <h4><a name="5.2"></a>5.2) ÎÒÈçºÎÄܸø - PostgreSQL ¹±Ï×һЩͦ²»´íµÄÐÂÀàÐͺͺ¯Êý£¿</h4> - <p>½«ÄãµÄÀ©Õ¹·¢Ë͵½ pgsql-hackers - ÓʼþÁÐ±í£¬ËüÃÇ×îÖջᱻ·Åµ½ contrib/ ×ÓĿ¼¡£<br> - </p> - <h4><a name="5.3"></a>5.3) ÎÒÔõÑùдһ¸ö·µ»ØÒ»ÌõÔª×éµÄ C º¯Êý£¿</h4> - <p>ÔÚ PostgreSQL 7.3 ÒÔºóµÄ°æ±¾ÖУ¬C, PL/PgSQL ºÍ SQL - Íêȫ֧³Ö·µ»ØÖµÎª±íµÄº¯Êý¡£¸ü¶àÐÅÏ¢Çë²Î¿¼ - ³ÌÐòÔ±Ö¸ÄÏ£¨the Programmer's Guide£©¡£ÔÚ contrib/tablefunc - ÖÐÓÐÒ»¸öÀý×ÓÊÇÓà C дµÄ·µ»ØÖµÎª±íµÄº¯Êý¡£</p> - <h4><a name="5.4"></a>5.4) - ÎÒÐÞ¸ÄÁËÒ»¸öÔ´Îļþ£¬ÎªÊ²Ã´ÖØÐ±àÒëºóûÓп´µ½¸Ä±ä£¿</h4> - <p> Makefiles ÖÐûÓаüº¬Í·ÎļþµÄÕýÈ·ÒÀÀµ¡£Äú±ØÐëÏÈ×ömake - clean£¬ ÔÙ×öÒ»´Î make ¡£Èç¹ûÄúʹÓõÄÊÇ GCC - £¬Ôò¿ÉÒÔ²ÉÓÃÑ¡Ïî --enable-depend - ÈñàÒëÆ÷×Ô¶¯Éú³ÉÍ·ÎļþµÄÒÀÀµ¹ØÏµ¡£</p> - </BODY> -</HTML> +</pre> +<p> +Ë÷Òý²»ÐèÒªÕâô¶àµÄ¶îÍâÏûºÄ£¬µ«Ò²È·Êµ°üÀ¨±»Ë÷ÒýµÄÊý¾Ý£¬Òò´ËËüÃÇÒ²¿ÉÄܴܺó¡£</p> +<p>¿ÕÖµ´æ·ÅÔÚλͼÖУ¬Òò´ËÕ¼ÓúÜÉٵĿռ䡣</p> +<h4><a name="4.7"></a>4.7) +ÈçºÎ²é¿´±í¡¢Ë÷Òý¡¢Êý¾Ý¿âÒÔ¼°Óû§µÄ¶¨Ò壿</h4> +<i> psql</i> ÓÐÐí¶à·´Ð±¸ÜÃüÁîÓÃÓÚÏÔʾÕâЩÐÅÏ¢¡£Óà \? +¿´¿´¶¼ÓÐÄÄЩ¡£ÒÔ pg_ ´òÍ·µÄϵͳ±íÒ²ÃèÊöÁËÕâЩÐÅÏ¢¡£ psql -l +¿ÉÒÔÁгöËùÓеÄÊý¾Ý¿â¡£ +<p>Ò²¿ÉÒÔÊÔÊÔÎļþ +<i>pgsql/src/tutorial/syscat.source</i>¡£ËüÑÝʾÁËÐí¶à´ÓÊý¾Ý¿âϵͳ±íÀï»ñÈ¡ÐÅÏ¢ÐèÒªµÄ +<font size="-1">SELECT</font>¡£</p> +<h4><a name="4.8"></a>4.8) +ÎҵIJéѯºÜÂý»òÕßûÓÐÀûÓÃË÷Òý¡£ÎªÊ²Ã´£¿</h4> +<p> +²¢·Çÿ¸ö²éѯ¶¼»á×Ô¶¯Ê¹ÓÃË÷Òý¡£Ö»ÓÐÔÚ±íµÄ´óС³¬¹ýÒ»¸ö×îСֵ£¬²¢ÇÒ²éѯֻѡÔñ±íÖнÏС±ÈÀýµÄÐÐʱ²ÉÓÃʹÓÃË÷Òý¡£ÕâÊÇÒòΪË÷ÒýɨÃèÒýÆðµÄËæ¼´´ÅÅÌ´æÈ¡¿ÉÄܱÈÖ±½ÓµØ¶ÁÈ¡±í£¨Ë³ÐòɨÃ裩¸üÂý¡£ÎªÁËÅжÏÊÇ·ñʹÓÃË÷Òý£¬PostgreSQL +±ØÐë»ñµÃÓйرíµÄͳ¼ÆÖµ¡£ÕâЩͳ¼ÆÖµ¿ÉÒÔʹÓà VACUUM ANALYZE£¬»ò +ANALYZE +»ñµÃ¡£Ê¹ÓÃͳ¼ÆÖµ£¬ÓÅ»¯Æ÷ÖªµÀ±íÖÐÓжàÉÙÐУ¬¾ÍÄܹ»¸üºÃµØÅжÏÊÇ·ñÀûÓÃË÷Òý¡£Í³¼ÆÖµ¶ÔÈ·¶¨ÓÅ»¯µÄÁ¬½Ó˳ÐòºÍÁ¬½Ó·½·¨Ò²ºÜÓÐÓá£ÔÚ±íµÄÄÚÈÝ·¢Éú±ä»¯Ê±£¬Ó¦¶¨ÆÚ½øÐÐͳ¼ÆÖµµÄ»ñÈ¡¡£</p> +<p>Ë÷Òýͨ³£²»ÓÃÓÚ ORDER BY +»òÖ´ÐÐÁ¬½Ó¡£¶ÔÒ»¸ö´ó±íµÄÒ»´Î˳ÐòɨÃ裬ÔÙ×öÒ»¸öÏÔʽµÄÅÅÐòͨ³£±ÈË÷ÒýɨÃèÒª¿ì¡£</p> +<p>µ«ÊÇ£¬ÔÚ LIMIT ºÍ ORDER BY +½áºÏʹÓÃʱ¾³£»áʹÓÃË÷Òý£¬ÒòΪֻ»á·µ»Ø±íµÄһС²¿·Ö¡£Êµ¼ÊÉÏ£¬ËäÈ» +MAX() ºÍ MIN() ²¢²»Ê¹ÓÃË÷Òý£¬Í¨¹ý¶Ô ORDER BY ºÍ LLIMIT +ʹÓÃË÷ÒýÈ¡µÃ×î´óÖµºÍ×îСֵҲÊÇ¿ÉÒԵģº<br /> +<br /> + SELECT col<br /> + FROM tab<br /> + ORDER BY col [ DESC ]<br /> + LIMIT 1;</p> +<p>µ±Ê¹ÓÃͨÅä·û²Ù×÷£¬ÀýÈç LIKE »ò ~ +ʱ£¬Ë÷ÒýÖ»ÄÜÔÚÌØ¶¨µÄÇé¿öÏÂʹÓ㺠</p> +<ul> +<li>×Ö·û´®µÄ¿ªÊ¼²¿·Ö±ØÐëÊÇÆÕͨ×Ö·û´®£¬Ò²¾ÍÊÇ˵£º</li> +<li>LIKE ģʽ²»ÄÜÒÔ % ´òÍ·¡£</li> +<li>~ £¨ÕýÔò±í´ïʽ£©Ä£Ê½±ØÐëÒÔ ^ ´òÍ·¡£</li> +<li>×Ö·û´®²»ÄÜÒÔÆ¥Åä¶à¸ö×Ö·ûµÄģʽÀà´òÍ·£¬ÀýÈç [a-e]¡£</li> +<li>´óСдÎ޹صIJéÕÒ£¬Èç ILIKE ºÍ ~* µÈ²»Ê¹ÓÃË÷Òý¡£µ«¿ÉÒÔÓà 4.12 +½ÚÃèÊöµÄº¯ÊýË÷Òý¡£</li> +<li>ÔÚ×ö initdb ʱ±ØÐë²ÉÓÃȱʡµÄ±¾µØÉèÖà C locale¡£</li> +</ul> +<h4><a name="4.9"></a>4.9) +ÎÒÈçºÎ²ÅÄÜ¿´µ½²éѯÓÅ»¯Æ÷ÊÇÔõÑù´¦ÀíÎҵIJéѯµÄ£¿</h4> +²Î¿¼ <font size="-1">EXPLAIN</font> ÊÖ²áÒ³¡£ +<h4><a name="4.10"></a>4.10) R-tree Ë÷ÒýÊÇʲô£¿</h4> +<p>R-tree Ë÷ÒýÓÃÓÚË÷Òý¿Õ¼äÊý¾Ý¡£Ò»¸ö¹þÏ£Ë÷ÒýÎÞ·¨´¦Àí·¶Î§ËÑË÷¡£¶ø +B-tree Ë÷ÒýÖ»ÄÜ´¦ÀíһάµÄ·¶Î§ËÑË÷¡£R-tree +Ë÷Òý¿ÉÒÔ´¦Àí¶àάÊý¾Ý¡£ÀýÈ磬Èç¹û¿ÉÒÔÔÚÒ»¸öÀàÐÍΪ point +µÄ×Ö¶ÎÉϽ¨Á¢Ò»¸ö R-tree Ë÷Òý£¬ÄÇôϵͳÄܸü¸ßЧµØ»Ø´ðÀàËÆ +¡°Ñ¡ÔñÔÚÒ»¸ö³¤·½Ðη¶Î§ÄÚµÄËùÓе㡱¡£<br /> +<br /> +ÃèÊö×î³õµÄ R-Tree Éè¼ÆµÄÕýʽÂÛÎÄÊÇ£º<br /> +<br /> +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.<br /> +<br /> +Ä㻹¿ÉÒÔÔÚ Stonebraker µÄ¡°Readings in Database +Systems¡±ÀïÕÒµ½ÕâÆªÎÄÕ¡£<br /> +<br /> +ϵͳÄÚÖÃµÄ R-Tree ¿ÉÒÔ´¦Àí¶à±ßÐκͷ½ÐΡ£ÀíÂÛÉÏ˵£¬R-tree +¿ÉÒÔÀ©Õ¹Îª´¦Àí¸ü¶àάÊý¡£²»¹ýÔÚʵ¼ùÉÏ£¬À©Õ¹ R-trees +ÐèÒªÒ»¶¨µÄ¹¤×÷Á¿£¬¶øÎÒÃÇĿǰûÓÐÈçºÎ×öµÄÎĵµ¡£</p> +<h4><a name="4.11"></a>4.11) ʲôÊÇ»ùÒò²éѯÓÅ»¯£¨Genetic Query +Optimization£©£¿</h4> +<p>GEQO Ä£¿é²ÉÓûùÒòËã·¨£¨Genetic +Algorithm£¬GA£©¼Ó¿ì¶à±íÁ¬½ÓµÄ²éѯÓÅ»¯¡£ËüÔÊÐíͨ¹ý·ÇÇî¾ÙËÑË÷´¦Àí´óµÄÁ¬½Ó²éѯ¡£</p> +<h4><a name="4.12"></a>4.12) +ÎÒÔõÑù×öÕýÔò±í´ïʽËÑË÷ºÍ´óСдÎ޹صÄÕýÔò±í´ïʽËÑË÷£¿ÔõÑùÀûÓÃË÷Òý½øÐдóСдÎÞ¹ØËÑË÷£¿</h4> +<p>²Ù×÷·û ~ ´¦ÀíÕýÔò±í´ïʽƥÅ䣬¶ø ~* +´¦Àí´óСдÎ޹صÄÕýÔò±í´ïʽƥÅä¡£´óдЩÎÞ¹ØµÄ LIKE ±äÖÖ³ÉΪ +ILIKE¡£<br /> +<br /> +´óСдÎ޹صĵÈʽ±È½Ïͨ³£Ð´×ö£º<br /> +<br /> + SELECT *<br /> + FROM tab<br /> + WHERE lower(col) = 'abc';<br /> +<br /> +ÕâÑù½«²»»áʹÓñê×¼µÄË÷Òý¡£µ«ÊÇ¿ÉÒÔ´´½¨Ò»¸ö¿É±»ÀûÓõĺ¯ÊýË÷Òý:<br /> +<br /> + CREATE INDEX tabindex ON tab (lower(col));</p> +<h4><a name="4.13"></a>4.13) ÔÚÒ»¸ö²éѯÀÎÒÔõÑù¼ì²âÒ»¸ö×Ö¶ÎÊÇ·ñΪ +NULL£¿</h4> +<p>Óà IS NULL ºÍ IS NOT NULL ²âÊÔÕâ¸ö×ֶΡ£ <br /></p> +<h4><a name="4.14"></a>4.14) ¸÷ÖÖ×Ö·ûÀàÐÍÖ®¼äÓÐʲô²»Í¬£¿</h4> +<p> ÀàÐÍ ÄÚ²¿Ãû³Æ ˵Ã÷<br /> + --------------------------------------------------<br /> + "char" char 1¸ö×Ö·û character<br /> + CHAR(#) bpchar +¶¨³¤×Ö·û´®£¬Êµ¼ÊÊý¾Ý²»×㶨Ò峤¶Èʱ£¬ÒÔ¿Õ¸ñ²¹Æë<br /> + VARCHAR(#) varchar +Ö¸¶¨ÁË×î´ó³¤¶È£¬±ä³¤×Ö·û´®£¬²»×㶨Ò峤¶ÈµÄ²¿·Ö²»²¹Æë<br /> + TEXT text ´®³¤¶È½öÊÜÐеÄ×î´ó³¤¶ÈÏÞÖÆ<br /> + BYTEA bytea ±ä³¤×Ö½ÚÐòÁУ¨±ä³¤µÄ¶þ½øÖÆÊý¾Ý£©<br /> +<br /> +ÔÚϵͳ±íºÍÔÚһЩ´íÎóÐÅÏ¢ÀïÄ㽫¿´µ½ÄÚ²¿Ãû³Æ¡£ <br /> +<br /> +ÉÏÃæ×îºóËÄÖÖÀàÐÍÊÇ"varlena"£¨±ä³¤£©ÀàÐÍ£¨Ò²¾ÍÊÇ˵£¬¿ªÍ·µÄËĸö×Ö½ÚÊdz¤¶È£¬ºóÃæ²ÅÊÇÊý¾Ý£©¡£ÓÚÊÇʵ¼ÊÕ¼ÓõĿռä±ÈÉùÃ÷µÄ´óСҪ¶àһЩ¡£È»¶øÕâЩÀàÐͶ¼¿ÉÒÔ±»Ñ¹Ëõ´æ´¢£¬Ò²¿ÉÒÔÓà +TOAST ÍÑ»ú´æ´¢£¬Òò´Ë´ÅÅ̿ռäÒ²¿ÉÄܱÈÔ¤ÏëµÄÒªÉÙ¡£<br /> +<br /> +CHAR(n) ×îÊʺÏÓÚ´æ´¢³¤¶È»ù±¾²î²»¶àµÄ×Ö·û´®¡£VARCHAR(n) +ÔÚ´æ´¢ÏÞÖÆÁË×î´ó³¤¶ÈµÄ±ä³¤×Ö·û´®ÊÇ×îºÃµÄ¡£TEXT +ÊÊÓÃÓÚ´æ´¢²»ÏÞÖÆ³¤¶ÈµÄ×Ö·û´®£¬×î´ó¿É´ï 1G¡£BYTEA +ÓÃÓÚ´æ´¢¶þ½øÖÆÊý¾Ý£¬ÓÈÆäÊǰüº¬ NULL +×Ö½Ú£¨¶þ½øÖƵÄ0£©µÄÖµ¡£ÕâЩÀàÐ;ßÓÐÀàÐ͵ÄÐÔÄÜ¡£</p> +<h4><a name="4.15.1"></a>4.15.1) +ÎÒÔõÑù´´½¨Ò»¸öÐòÁкÅ/×Ô¶¯µÝÔöµÄ×ֶΣ¿</h4> +<p>PostgreSQL Ö§³Ö SERIAL +Êý¾ÝÀàÐÍ¡£ËüÔÚ×Ö¶ÎÉÏ×Ô¶¯´´½¨Ò»¸öÐòÁкÍË÷Òý¡£ÀýÈ磬<br /> + CREATE TABLE person ( <br /> + id SERIAL, <br /> + name TEXT <br /> + );<br /> +<br /> +»á×Ô¶¯×ª»»Îª£º <br /> + <br /> + CREATE SEQUENCE person_id_seq;<br /> + CREATE TABLE person ( <br /> + id INT4 NOT NULL DEFAULT nextval('person_id_seq'),<br /> + name TEXT <br /> + );<br /> + CREATE UNIQUE INDEX person_id_key ON person ( id );<br /> +<br /> +²Î¿¼ create_sequence ÊÖ²áÒ³»ñÈ¡¹ØÓÚÐòÁеĸü¶àÐÅÏ¢¡£Ä㻹¿ÉÒÔÓÃÿÐÐµÄ +oid +×Ö¶Î×÷Ϊһ¸öΨһֵ¡£²»¹ý£¬Èç¹ûÄãÐèÒªÇãµ¹ºÍÖØÔØÊý¾Ý¿â£¬ÄãÐèҪʹÓà +pg_dump µÄ -o Ñ¡Ïî»òÕß COPY WITH OIDS Ñ¡ÏîÒÔ±£Áô OID¡£ </p> +<h4><a name="4.15.2"></a>4.15.2) +ÎÒÈçºÎ»ñµÃÒ»¸ö²åÈëµÄÐòÁкŵÄÖµ£¿</h4> +<p>Ò»ÖÖ·½·¨ÊÇÔÚ²åÈë֮ǰÏÈÓú¯Êý nextval() ´ÓÐòÁжÔÏóÀï¼ìË÷³öÏÂÒ»¸ö +SERIAL Öµ£¬È»ºóÔÙÏÔʽ²åÈ롣ʹÓà <a href="#4.15.1">4.15.1</a> +ÀïµÄÀý±í£¬¿ÉÓÃαÂëÕâÑùÃèÊö£º <br /> +<br /> + new_id = execute("SELECT nextval('person_id_seq')");<br /> + execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise +Pascal')");<br /> +<br /> +ÕâÑù»¹ÄÜÔÚÆäËû²éѯÖÐʹÓôæ·ÅÔÚ new_id ÀïµÄÐÂÖµ£¨ÀýÈ磬×÷Ϊ person +±íµÄÍâ¼ü£©¡£×¢Òâ×Ô¶¯´´½¨µÄ SEQUENCE ¶ÔÏóµÄÃû³Æ½«»áÊÇ +<table>_<serialcolumn>_seq£¬ÕâÀï table ºÍ serialcolumn +·Ö±ðÊÇÄãµÄ±íµÄÃû³ÆºÍÄãµÄ SERIAL ×ֶεÄÃû³Æ¡£ <br /> +<br /> +ÀàËÆµÄ£¬ÔÚ SERIAL ¶ÔÏóȱʡ²åÈëºóÄã¿ÉÒÔÓú¯Êý currval() ¼ìË÷¸Õ¸³ÖµµÄ +SERIAL Öµ£¬ÀýÈ磬 <br /> +<br /> + execute("INSERT INTO person (name) VALUES ('Blaise +Pascal')");<br /> + new_id = execute("SELECT currval('person_id_seq')");<br /> +<br /> +×îºó£¬Äã¿ÉÒÔʹÓÃ´Ó INSERT Óï¾ä·µ»ØµÄ <a href="4.16">OID</a> +²éÕÒȱʡֵ£¬¾¡¹ÜÕâ¿ÉÄÜÊÇ×îȱ·¦ÒÆÖ²ÐԵķ½·¨¡£ÔÚ Perl ÀʹÓôøÓÐ +Edmund Mergl µÄ DBD::Pg Ä£¿éµÄ DBI£¬oid Öµ¿ÉÒÔͨ¹ý +$sth->execute() ºóµÄ $sth->{pg_oid_status} »ñµÃ¡£ </p> +<h4><a name="4.15.3"></a>4.15.3) ʹÓà currval() ºÍ nextval() +»áµ¼ÖÂÒ»¸öÓëÆäËûÓû§Ö®¼äµÄÎÉÂÒÇé¿öÂð£¿</h4> +<p>²»»á¡£currval() +·µ»Øºǫ́½ø³Ì¶ø²»ÊÇËùÓÐÓû§¸³ÓèµÄµ±Ç°Öµ¡£<br /></p> +<h4><a name="4.15.4"></a>4.15.4) +Ϊʲô²»ÔÚÊÂÎñÒì³£ÖÐÖ¹ºóÖØÓÃÐòÁкÅÄØ£¿ÎªÊ²Ã´ÔÚÐòÁкÅ×ֶεÄȡֵÖдæÔÚ¼ä¶ÏÄØ£¿</h4> +<p> +ΪÁËÌá¸ß²¢·¢ÐÔ£¬ÐòÁкÅÔÚÐèÒªµÄʱºò¸³ÓèÕýÔÚÔËÐеÄÊÂÎñ£¬²¢ÇÒÖ»ÔÚÊÂÎñ½áÊøÖ®Ç°²»·âËø¡£Õâ¾Í»áµ¼ÖÂØ²ÕÛÊÂÎñºóµÄÐòÁкųöÏÖ¼ä¸ô¡£</p> +<h4><br /> +<a name="4.16"></a>4.16) ʲôÊÇ OID£¿Ê²Ã´ÊÇ TID£¿</h4> +<p>OID ÊÇ PostgreSQL ÖÐÐеÄΨһ±êʶ¡£PostgreSQL +Àï´´½¨µÄÿһÐж¼»ñµÃÒ»¸öΨһµÄ OID¡£ËùÓÐÔÚ initdb ¹ý³ÌÖд´½¨µÄ OID +¶¼Ð¡ÓÚ 16384 £¨²Î¼û include/access/transam.h£©¡£ËùÓÐÓû§´´½¨µÄ OID +¶¼´óÓÚ»òµÈÓÚÕâ¸öÖµ¡£È±Ê¡Ê±£¬ËùÓÐÕâЩ OID +²»½öÔÚÒ»¸ö±í»òÒ»¸öÊý¾Ý¿âÀïÃæÎ¨Ò»£¬¶øÇÒÔÚÕû¸ö PostgreSQL +°²×°ÀïÒ²ÊÇΨһµÄ¡£ <br /> +<br /> +PostgreSQL ÔÚËüµÄÄÚ²¿ÏµÍ³±íÀïʹÓà OID ÔÚ±íÖ®¼ä½¨Á¢ÁªÏµ¡£ÕâЩ OID +¿ÉÒÔÓÃÓÚ±êÊ¶ÌØ¶¨µÄÓû§ÐÐÒÔ¼°ÓÃÔÚÁ¬½ÓÀï¡£½¨ÒéʹÓÃ×Ö¶ÎÀàÐÍ OID ´æ´¢ +OID Öµ¡£¿ÉÒÔÔÚ OID ×Ö¶ÎÉÏ´´½¨Ò»¸öË÷ÒýÒÔ¿ìËÙ·ÃÎÊ¡£ <br /> +<br /> +OID ´ÓÒ»¸ö±»ËùÓÐÊý¾Ý¿âʹÓõÄÖÐÐÄÇøÓòÀ︳ֵ¸øËùÓÐÐÂÐС£Èç¹ûÄãÏë°Ñ +OID ¸Ä³É±ðµÄÖµ£¬»òÕßÏë×öÒ»·Ý±íµÄ´øÔʼ OID µÄ¿½±´£¬Äã¿ÉÒÔ×öµ½£º +<br /> +<br /> + CREATE TABLE new(old_oid oid, mycol int);<br /> + SELECT old_oid, mycol INTO new FROM old;<br /> + COPY new TO '/tmp/pgtable';<br /> + DELETE FROM new;<br /> + COPY new WITH OIDS FROM '/tmp/pgtable';<br /> +<br /> +OID +ÓÃ4×Ö½ÚµÄÕûÊý±£´æ£¬ÔÚ³¬¹ý40ÒÚʱ½«Òç³ö¡£Ã»ÓÐÈ˱¨¸æ³öÏÖ¹ýÒç³ö£¬¶øÎÒÃÇ´òËãÔÚÓÐÈ˱¨¸æÖ®Ç°Ïû³ýÕâ¸öÏÞÖÆ¡£<br /> + +<br /> +TID ÓÃÓÚ±êʶ´ø×ÅÊý¾Ý¿é£¨µØÖ·£©ºÍ£¨¿éÄÚ£©Æ«ÒƵÄÌØ¶¨µÄÎïÀíÐС£TID +ÔÚÐб»¸ü¸Ä»òÖØÔØºó·¢Éú¸Ä±ä¡£Ë÷ÒýÈë¿ÚʹÓÃËüÃÇÖ¸ÏòÎïÀíÐС£</p> +<h4><a name="4.17"></a>4.17) PostgreSQL +ʹÓõÄһЩÊõÓïµÄº¬ÒåÊÇʲô£¿</h4> +<p> +һЩԴ´úÂëºÍһЩ¾ÉÒ»µãµÄÎĵµÊ¹ÓÃһЩÓиü³£ÓÃÓ÷¨µÄÊõÓï¡£ÏÂÃæÊÇÆäÖÐÒ»²¿·Ö£º +<br /> + table, relation, class <br /> + row, record, tuple <br /> + column, field, attribute <br /> + retrieve, select <br /> + replace, update <br /> + append, insert <br /> + OID, serial value <br /> + portal, cursor <br /> + range variable, table name, table alias <br /> +<br /> +ÓÐÒ»¸öͨÓÃÊý¾Ý¿âÊõÓïµÄÁÐ±í£º<a href= +"http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html">http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html</a> +¡£ </p> +<h4><a name="4.18"></a>4.18) ΪʲôÎÒÊÕµ½´íÎó¡°<i>ERROR: Memory +exhausted in AllocSetAlloc()</i>¡±£¿</h4> +<p> +ÕâºÜ¿ÉÄÜÊÇϵͳµÄÐéÄâÄÚ´æÓùâÁË£¬»òÕßÄں˶ÔijЩ×ÊÔ´Óнϵ͵ÄÏÞÖÆÖµ¡£ÔÚÆô¶¯ +postmaster ֮ǰÊÔÊÔÏÂÃæµÄÃüÁ <br /> +<br /> + ulimit -d 262144<br /> + limit datasize 256m<br /> +<br /> +È¡¾öÓÚÄãÓÃµÄ +shell£¬ÉÏÃæÃüÁîÖ»ÓÐÒ»ÌõÄܳɹ¦£¬µ«ÊÇËü½«°ÑÄãµÄ½ø³ÌÊý¾Ý¶ÎÏÞÖÆÉèµÃ±È½Ï¸ß£¬Òò¶øÒ²ÐíÄÜÈòéѯÍê³É¡£ÕâÌõÃüÁîÓ¦ÓÃÓÚµ±Ç°½ø³Ì£¬ÒÔ¼°ËùÓÐÔÚÕâÌõÃüÁîÔËÐк󴴽¨µÄ×Ó½ø³Ì¡£Èç¹ûÄãÊÇÔÚÔËÐÐSQL¿Í»§¶ËʱÒòΪºǫ́·µ»ØÁËÌ«¶àµÄÊý¾Ý¶ø³öÏÖÎÊÌ⣬ÇëÔÚÔËÐпͻ§¶Ë֮ǰִÐÐÉÏÊöÃüÁî¡£</p> +<h4><a name="4.19"></a>4.19) ÎÒÈçºÎ²ÅÄÜÖªµÀËùÔËÐÐµÄ PostgreSQL +µÄ°æ±¾£¿</h4> +<p>´Ó psql À¼üÈë SELECT version()£»<br /></p> +<h4><a name="4.20"></a>4.20) +ΪʲôÎҵĴó¶ÔÏó²Ù×÷µ¼Ö´íÎó¡°<i>invalid large obj +descriptor¡±£¨·Ç·¨µÄ´ó¶ÔÏóÃèÊö·û£©</i>£¿</h4> +<p>ÄãÐèÒªÔÚʹÓÃÈκδó¶ÔÏó¾ä±úµÄǰºó·ÅÉÏ BEGIN WORK ºÍ +COMMIT£¬Ò²¾ÍÊÇ˵£¬°üΧ lo_open ... lo_close¡£ <br /> +<br /> +Ŀǰ PostgreSQL +Ç¿ÖÆÊµÊ©ÕâÌõ¹æÔò£ºÔÚÊÂÎñÌύʱ¹Ø±Õ´ó¶ÔÏó¾ä±ú£¬ÕâÑù£¬£¨Ã»ÓвÉÓÃÊÂÎñʱ£©£¬Ê״ζԴó¶ÔÏó¾ä±ú×öÈκÎÊÂÇéµÄÆóͼ¶¼»áµ¼ÖÂÒ»¸ö +invalid large obj +descriptor¡£ËùÒÔ£¬Èç¹ûÄãûÓÐʹÓÃÒ»¸öÊÂÎñ£¬ÒÔǰÄܹ¤×÷µÄ´úÂ루ÖÁÉÙÊÇ´ó¶àÊýʱ¼ä£©½«»áÉú³ÉÕâôһ¸ö´íÎóÐÅÏ¢¡£ +<br /> +<br /> +Èç¹ûÄãʹÓÿͻ§¶Ë½Ó¿Ú£¬Èç ODBC£¬Äã¿ÉÄÜÐèÒª set auto-commit off¡£</p> +<h4><a name="4.21"></a>4.21) +ÎÒÈçºÎ´´½¨Ò»¸öȱʡֵÊǵ±Ç°Ê±¼äµÄ×ֶΣ¿</h4> +<p>ʹÓà CURRENT_TIMESTAMP£º<br /> +<br /> + CREATE TABLE test(x int, modtime timestamp DEFAULT +CURRENT_TIMESTAMP);</p> +<h4><a name="4.22"></a>4.22) ΪʲôʹÓà IN µÄ×Ó²éѯÕâôÂý£¿</h4> +<p> +Ŀǰ£¬ÎÒÃÇͨ¹ýΪÍâ²éѯµÄÿһÐÐ˳ÐòɨÃè×Ó²éѯµÄ½á¹ûÀ´Á¬½Ó×Ó²éѯºÍÍâ²éѯ¡£Èç¹û×Ó²éѯ·µ»ØÉÙÊý¼¸ÐУ¬¶øÍâ²éѯ·µ»ØºÜ¶àÐУ¬IN +Ö´Ðеúܿ졣ΪÁ˼ӿìÆäËû IN ²éѯµÄÖ´ÐУ¬¿ÉÒÔÓà EXISTS Ìæ»» IN£º +<br /> +<br /> + SELECT *<br /> + FROM tab<br /> + WHERE col IN (SELECT subcol FROM subtab);<br /> +<br /> +¸ÄΪ£º <br /> +<br /> + SELECT *<br /> + FROM tab<br /> + WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = +col);<br /> +<br /> +ºóÕßÒªÏëÖ´Ðеøü¿ì£¬subcol +Ó¦¸ÃÊÇÒ»¸öË÷ÒýÁС£ÎÒÃÇÏ£ÍûÔÚδÀ´µÄ·¢²¼°æ±¾ÖÐÐÞ²¹Õâ¸öÏÞÖÆ¡£</p> +<h4><a name="4.23"></a>4.23) ÎÒÔõÑù½øÐÐ outer join +£¨ÍâÁ¬½Ó£©£¿</h4> +<p>PostgreSQL ²ÉÓñê×¼µÄ SQL Óï·¨Ö§³ÖÍâÁ¬½Ó¡£ÕâÀïÊÇÁ½¸öÀý×Ó£º<br /> +<br /> + SELECT *<br /> + FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);<br /> +<br /> +»ò <br /> + SELECT *<br /> + FROM t1 LEFT OUTER JOIN t2 USING (col);<br /> +<br /> +ÕâÁ½¸öµÈ¼ÛµÄ²éѯÔÚ t1.col ºÍ t2.col ÉÏ×öÁ¬½Ó£¬²¢ÇÒ·µâ»?t1 +ÖÐËùÓÐδÁ¬½ÓµÄÐУ¨ÄÇЩÔÚ t2 ÖÐûÓÐÆ¥ÅäµÄÐУ©¡£ÓÒ[Íâ]Á¬½Ó(RIGHT +OUTER JOIN)½«·µ»Ø t2 ÖÐδÁ¬½ÓµÄÐС£ÍêÈ«ÍâÁ¬½Ó£¨FULL OUTER +JOIN£©½«·µ»Ø t1 ºÍ t2 ÖÐδÁ¬½ÓµÄÐС£¹Ø¼ü×Ö OUTER +ÔÚ×ó[Íâ]Á¬½Ó¡¢ÓÒ[Íâ]Á¬½ÓºÍÍêÈ«[Íâ]Á¬½ÓÖÐÊÇ¿ÉÑ¡µÄ£¬ÆÕͨÁ¬½Ó±»³ÉΪÄÚÁ¬½Ó£¨INNER +JOIN£©¡£<br /> +<br /> +ÔÚ´ËǰµÄ°æ±¾ÖУ¬ÍâÁ¬½Ó¿ÉÒÔÓà UNION ºÍ NOT IN +À´Ä£Äâ¡£ÀýÈ磬ÏÂÃæµÄÀý×ÓÔÚ±í tab1 ºÍ tab2 Ö®¼ä×öÍâÁ¬½Ó£º<br /> +<br /> + SELECT tab1.col1, tab2.col2<br /> + FROM tab1, tab2<br /> + WHERE tab1.col1 = tab2.col1<br /> +<br /> + UNION ALL<br /> +<br /> + SELECT tab1.col1, NULL<br /> + FROM tab1<br /> + WHERE tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2)<br /> + ORDER BY col1</p> +<h4><a name="4.24"></a>4.24) ÈçºÎʹÓÃÉæ¼°¶à¸öÊý¾Ý¿âµÄ²éѯ£¿</h4> +<p>ûÓа취²éѯµ±Ç°Êý¾Ý¿âÖ®ÍâµÄÊý¾Ý¿â¡£ÒòΪ PostgreSQL +¼ÓÔØÊý¾Ý¿âÏà¹ØµÄϵͳĿ¼£¨ÏµÍ³±í£©£¬¿çÊý¾Ý¿âµÄ²éѯÈçºÎÖ´ÐÐҲδÃ÷È·¡£<br /> + +<br /> +contrib/dblink +ÔÊÐí²ÉÓú¯Êýµ÷ÓÃʵÏÖ¿ç¿â²éѯ¡£µ±È»¿ÉÒÔͬʱÁ¬½Óµ½²»Í¬µÄÊý¾Ý¿â²¢ÔÚ¿Í»§¶ËºÏ²¢½á¹û¡£</p> +<h4><a name="4.25"></a>4.25) ÈçºÎÈú¯Êý·µ»Ø¶àÐлò¶àÁУ¿</h4> +<p>¿ÉÒÔÔÚ PL/pgSQL º¯ÊýÖÐʹÓà refcursors ·µ»Ø½á¹û¼¯¡£²Î¿´ <a href= +"http://www.PostgreSQL.org/idocs/index.php?plpgsql-cursors.html">http://www.PostgreSQL.org/idocs/index.php?plpgsql-cursors.html</a>, +23.7.3.3½Ú¡£<br /></p> +<h4><a name="4.26"></a>4.26) ΪʲôÔÚ PL/PgSQL +º¯ÊýÖв»Äܿɿ¿µØ´´½¨»òɾ³ýÁÙʱ±í£¿</h4> +<p>PL/PgSQL »º´æº¯ÊýµÄÄÚÈÝ£¬ÓÉ´Ë´øÀ´µÄÒ»¸ö²»ºÃµÄ¸±×÷ÓÃÊÇÈôÒ»¸ö +PL/PgSQL +º¯Êý·ÃÎÊÁËÒ»¸öÁÙʱ±í£¬È»ºó¸Ã±í±»É¾³ý²¢Öؽ¨ÁË£¬ÔòÔٴε÷Óøú¯Êý½«Ê§°Ü£¬ÒòΪ»º´æµÄº¯ÊýÄÚÈÝÈÔȻָÏò¾ÉµÄÁÙʱ±í¡£½â¾öµÄ·½·¨ÊÇÔÚ +PL/PgSQL ÖÐÓà EXECUTE +¶ÔÁÙʱ±í½øÐзÃÎÊ¡£ÕâÑù»á±£Ö¤²éѯÔÚÖ´ÐÐǰ×ÜÊÇÖØÐ·ÖÎö¡£</p> +<h4><a name="4.27"></a>4.27) ÓÐÄÄЩÊý¾Ý¸´ÖÆÑ¡Ï</h4> +<p> +Óм¸ÖÖÖ÷/´Ó·½Ê½µÄ¸´ÖÆÑ¡Ïî¡£ÕâЩѡÏîÖ»ÔÊÐíÖ÷Êý¾Ý¿â½øÐиüУ¬´ÓÊý¾Ý¿âÖ»ÄܽøÐжÁ¡£ÍøÒ³ +<a href= +"http://gborg.PostgreSQL.org/genpage?replication_research">http://gborg.PostgreSQL.org/genpage?replication_research</a> + µÄ×îºóÁгöÁËÕâЩѡÏî¡£ÔÚ <a href= +"http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php"> +http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php</a> +ÕýÔÚ½øÐÐÒ»¸ö¶àÖ÷±¾¸´ÖƵĽâ¾ö·½°¸¡£</p> +<h4><a name="4.28"></a>4.28) ÓÐÄÄЩÊý¾Ý¼ÓÃÜÑ¡Ï</h4> +<p>contrib/pgcrypto °üº¬Á˺ܶàÔÚ SQL +²éѯÖÐʹÓõļÓÃܺ¯Êý¡£¼ÓÃܿͻ§¶Ëµ½·þÎñÆ÷¶Ë´«ÊäÊý¾ÝµÄΨһ·½·¨ÊÇÔÚ +pg_hba.conf ÖвÉÓà hostss ¡£ <br /> +<br /> +7.3 °æ±¾ÖÐ×Ô¶¯¶ÔÊý¾Ý¿âÓû§ÃÜÂë½øÐмÓÃÜ¡£ÔÚÒÔǰµÄ°æ±¾ÖУ¬±ØÐëÔÚ +postgresql.conf Öдò¿ª PASSWORD_ENCRYPTION +Ñ¡Ïî¡£·þÎñÆ÷¿ÉÒÔÔËÐÐÔÚ¼ÓÃܵÄÎļþϵͳÉÏ£¨ÒÔ´ïµ½¼ÓÃܵÄÄ¿µÄ£©¡£<br /> +<br /> +--------------------------------------------------------------------------------</p> +<h2 align="center">À©Õ¹ PostgreSQL</h2> +<h4><a name="5.1"></a>5.1) ÎÒдÁËÒ»¸öÓû§¶¨Ò庯Êý¡£µ±ÎÒÔÚ psql +ÀïÔËÐÐʱ£¬ÎªÊ²Ã´»áµ¼Ö core dump£¿</h4> +<p> +²úÉúÕâ¸öÎÊÌâµÄÔÒòºÜ¶à¡£ÇëÏÈÔÚÒ»¸öµ¥¶ÀµÄ²âÊÔ³ÌÐòÖвâÊÔÄãµÄ×Ô¶¨Ò庯Êý¡£</p> +<h4><a name="5.2"></a>5.2) ÎÒÈçºÎÄܸø PostgreSQL +¹±Ï×һЩͦ²»´íµÄÐÂÀàÐͺͺ¯Êý£¿</h4> +<p>½«ÄãµÄÀ©Õ¹·¢Ë͵½ pgsql-hackers ÓʼþÁÐ±í£¬ËüÃÇ×îÖջᱻ·Åµ½ +contrib/ ×ÓĿ¼¡£<br /></p> +<h4><a name="5.3"></a>5.3) ÎÒÔõÑùдһ¸ö·µ»ØÒ»ÌõÔª×éµÄ C º¯Êý£¿</h4> +<p>ÔÚ PostgreSQL 7.3 ÒÔºóµÄ°æ±¾ÖУ¬C, PL/PgSQL ºÍ SQL +Íêȫ֧³Ö·µ»ØÖµÎª±íµÄº¯Êý¡£¸ü¶àÐÅÏ¢Çë²Î¿¼ ³ÌÐòÔ±Ö¸ÄÏ£¨the +Programmer's Guide£©¡£ÔÚ contrib/tablefunc ÖÐÓÐÒ»¸öÀý×ÓÊÇÓà C +дµÄ·µ»ØÖµÎª±íµÄº¯Êý¡£</p> +<h4><a name="5.4"></a>5.4) +ÎÒÐÞ¸ÄÁËÒ»¸öÔ´Îļþ£¬ÎªÊ²Ã´ÖØÐ±àÒëºóûÓп´µ½¸Ä±ä£¿</h4> +<p>Makefiles ÖÐûÓаüº¬Í·ÎļþµÄÕýÈ·ÒÀÀµ¡£Äú±ØÐëÏÈ×ömake clean£¬ +ÔÙ×öÒ»´Î make ¡£Èç¹ûÄúʹÓõÄÊÇ GCC £¬Ôò¿ÉÒÔ²ÉÓÃÑ¡Ïî --enable-depend +ÈñàÒëÆ÷×Ô¶¯Éú³ÉÍ·ÎļþµÄÒÀÀµ¹ØÏµ¡£</p> +</body> +</html> |