From 28ebe6b5d0ecafee14db78759ce906987532b704 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Wed, 21 Feb 2007 16:42:36 +0000 Subject: Update Chinese FAQs to have two versions, a traditional Chinese version (Taiwan) and a Simplified version (China (PRC)). Backpatch to 8.2.X. Daojing.Zhou --- doc/FAQ_chinese | 794 -------------------------------------------------------- 1 file changed, 794 deletions(-) delete mode 100644 doc/FAQ_chinese (limited to 'doc/FAQ_chinese') diff --git a/doc/FAQ_chinese b/doc/FAQ_chinese deleted file mode 100644 index 43d46647592..00000000000 --- a/doc/FAQ_chinese +++ /dev/null @@ -1,794 +0,0 @@ - - PostgreSQL 常è§é®é¢ï¼FAQï¼ - - æè¿æ´æ°ï¼2007 å¹´ 1 æ 5 æ¥ ææäº 15:40:20 EST - 䏿çæè¿æ´æ°ï¼2007 å¹´ 1 æ 29 æ¥ ææä¸ 22:48:04 CST - - ç®åç»´æ¤äººåï¼Bruce Momjian (pgman@candle.pha.pa.us) - 䏿çç»´æ¤äººåï¼Daojing.Zhouï¼doudou586@gmail.comï¼ - - æ¬ææ¡£çææ°çæ¬å¯ä»¥å¨ - http://www.postgresql.org/files/documentation/faqs/FAQ.htmlæ¥çã - - 䏿ä½ç³»ç»å¹³å°ç¸å³çé®é¢å¯å¨http://www.postgresql.org/docs/faq/éæ¾å°ç - æ¡ã - _________________________________________________________________ - -常è§é®é¢ - - 1.1)PostgreSQL æ¯ä»ä¹ï¼è¯¥æä¹åé³ï¼ - 1.2)è°æ§å¶å管çPostgreSQL ï¼ - 1.3)PostgreSQLççææ¯ä»ä¹ï¼ - 1.4)PostgreSQLå¯ä»¥è¿è¡å¨åªäºæä½ç³»ç»å¹³å°ä¸ï¼ - 1.5)æä»åªéè½å¾å°PostgreSQLï¼ - 1.6)ææ°ççPostgreSQL æ¯ä»ä¹ï¼ - 1.7)æä»åªéè½å¾å°å¯¹PostgreSQL çæ¯æï¼ - 1.8)æå¦ä½æäº¤ä¸ä¸ªBUGæ¥åï¼ - 1.9)æå¦ä½äºè§£å·²ç¥ç BUG ææç¼ºçåè½ï¼ - 1.10)è½å¤è·åçææ°ææ¡£æåªäºï¼ - 1.11)æåºè¯¥ææ ·å¦ä¹ SQL ï¼ - 1.12)å¦ä½æäº¤è¡¥ä¸ææ¯å å¥å¼åéä¼ï¼ - 1.13)PostgreSQL åå¶ä»æ°æ®åºç³»ç»æ¯èµ·æ¥å¦ä½ï¼ - -ç¨æ·å®¢æ·ç«¯é®é¢ - - 2.1)æä»¬å¯ä»¥ç¨ä»ä¹è¯è¨åPostgreSQL æäº¤éï¼ - 2.2)æä»ä¹å·¥å·å¯ä»¥æPostgreSQL ç¨äº Web 页é¢ï¼ - 2.3)PostgreSQL æ¥æå¾å½¢ç¨æ·çé¢åï¼ - -ç³»ç»ç®¡çé®é¢ - - 3.1)æææ ·æè½æPostgreSQL è£å¨ /usr/local/pgsql 以å¤çå°æ¹ï¼ - 3.2)æå¦ä½æ§å¶æ¥èªå¶ä»çµèçè¿æ¥ï¼ - 3.3)æææ ·è°æ´æ°æ®åºæå¡å¨ä»¥è·å¾æ´å¥½çæ§è½ï¼ - 3.4)PostgreSQL éå¯ä»¥è·å¾ä»ä¹æ ·çè°è¯ç¹æ§ï¼ - 3.5)为ä»ä¹å¨è¯å¾è¿æ¥ç»å½æ¶æ¶å°âSorry, too many clientsâ æ¶æ¯ï¼ - 3.6)PostgreSQLçå级è¿ç¨æåªäºåå®¹ï¼ - 3.7)(使ç¨PostgreSQL)æéè¦ä½¿ç¨ä»ä¹è®¡ç®æºç¡¬ä»¶ ï¼ - -æä½é®é¢ - - 4.1) å¦ä½åªéæ©ä¸ä¸ªæ¥è¯¢ç»æç头å è¡ï¼ææ¯éæºçä¸è¡ï¼ - 4.2) - å¦ä½æ¥ç表ãç´¢å¼ãæ°æ®åºä»¥åç¨æ·çå®ä¹ï¼å¦ä½æ¥çpsqléç¨å°çæ¥è¯¢æä»¤å¹¶æ¾ç - ¤ºå®ä»¬ï¼ - 4.3) å¦ä½æ´æ¹ä¸ä¸ªåæ®µçæ°æ®ç±»åï¼ - 4.4) åæ¡è®°å½ï¼å个表ï¼ä¸ä¸ªæ°æ®åºçæå¤§éå¶æ¯å¤å°ï¼ - 4.5) åå¨ä¸ä¸ªå¸åçææ¬æä»¶éçæ°æ®éè¦å¤å°ç£ç空é´ï¼ - 4.6) 为ä»ä¹æçæ¥è¯¢å¾æ¢ï¼ä¸ºä»ä¹è¿äºæ¥è¯¢æ²¡æå©ç¨ç´¢å¼ï¼ - 4.7) æå¦ä½æè½çå°æ¥è¯¢ä¼å卿¯ææ ·è¯ä¼°å¤çæçæ¥è¯¢çï¼ - 4.8) æææ ·åæ£åè¡¨è¾¾å¼æç´¢å大å°åæ å³çæ - £åè¡¨è¾¾å¼æ¥æ¾ï¼ææ ·å©ç¨ç´¢å¼è¿è¡å¤§å°åæ 峿¥æ¾ï¼ - 4.9) å¨ä¸ä¸ªæ¥è¯¢éï¼æææ ·æ£æµä¸ä¸ªå段æ¯å¦ä¸º - NULLï¼æå¦ä½æè½åç¡®æåºèä¸è®ºæå段æ¯å¦å«NULLå¼ï¼ - 4.10) åç§å符类åä¹é´æä»ä¹ä¸åï¼ - 4.11.1) æææ ·å建ä¸ä¸ªåºåå·åææ¯èªå¨éå¢çåæ®µï¼ - 4.11.2) æå¦ä½è·å¾ä¸ä¸ªæå¥çåºåå·çå¼ï¼ - 4.11.3) åæ¶ä½¿ç¨ currval() ä¼å¯¼è´åå¶ä»ç¨æ·çå²çªæåµåï¼ - 4.11.4) 为ä»ä¹ä¸å¨äºå¡å¼å¸¸ä¸æ¢åéç¨åºåå·å¢ï¼ä¸ºä»ä¹å¨åºåå·å段çåå¼ä¸ - åå¨é´æå¢ï¼ - 4.12) ä»ä¹æ¯ OIDï¼ä»ä¹æ¯ CTID ï¼ - 4.13) 为ä»ä¹ææ¶å°é误信æ¯âERROR: Memory exhausted in - AllocSetAlloc()âï¼ - 4.14) æå¦ä½æè½ç¥éæè¿è¡ç PostgreSQL ççæ¬ï¼ - 4.15) æå¦ä½å建ä¸ä¸ªç¼ºç弿¯å½åæ¶é´çåæ®µï¼ - 4.16) å¦ä½æ§è¡å¤è¿æ¥ï¼outer joinï¼æ¥è¯¢ï¼ - 4.17) å¦ä½æ§è¡æ¶åå¤ä¸ªæ°æ®åºçæ¥è¯¢ï¼ - 4.18) å¦ä½è®©å½æ°è¿åå¤è¡æå¤åæ°æ®ï¼ - 4.19) 为ä»ä¹æå¨ä½¿ç¨PL/PgSQL彿°åå临æ¶è¡¨æ¶ä¼æ¶å°é误信æ¯ârelation - with OID ##### does not existâï¼ - 4.20) ç®åæåªäºæ°æ®å¤å¶æ¹æ¡å¯ç¨ï¼ - 4.21) ä¸ºä½æ¥è¯¢ç»ææ¾ç¤ºç表åæååä¸æçæ¥è¯¢è¯å¥ä¸ - çä¸åï¼ä¸ºä½å¤§åç¶æä¸è½ä¿çï¼ - _________________________________________________________________ - -常è§é®é¢ - - 1.1)PostgreSQL æ¯ä»ä¹ï¼è¯¥æä¹åé³ï¼ - - PostgreSQL è¯»ä½ Post-Gres-Q-Lï¼ææ¶åä¹ç®ç§°ä¸ºPostgres - ãæ³å¬ä¸ä¸å¶åé³ç人åå¯ä»è¿éä¸è½½å£°é³æä»¶ï¼ MP3 æ ¼å¼ ã - - PostgreSQL - æ¯é¢åç®æ çå³ç³»æ°æ®åºç³»ç»ï¼å®å·æä¼ ç»å䏿°æ®åºç³»ç»çææåè½ï¼åæ¶å嫿å°å - ¨ä¸ä¸ä»£ DBMS ç³»ç»ç使ç¨çå¢å¼ºç¹æ§ãPostgreSQL - æ¯èªç±åè´¹çï¼å¹¶ä¸æææºä»£ç é½å¯ä»¥è·å¾ã - - PostgreSQL - çå¼åéä¼ä¸»è¦ä¸ºå¿æ¿èï¼ä»ä»¬éå¸ä¸çåå°å¹¶éè¿äºèç½è¿è¡èç³»ï¼è¿æ¯ä¸ä¸ªç¤¾å - ºå¼å项ç®ï¼å®ä¸è¢«ä»»ä½å¬å¸æ§å¶ã - 妿³å å¥å¼åéä¼ï¼è¯·åè§å¼å人å常è§é®é¢ï¼FAQï¼ - http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html - - 1.2) è°æ§å¶PostgreSQL ï¼ - - å¦æä½ å¨å¯»æ¾PostgreSQLçæé¨äººï¼ææ¯ä»ä¹ä¸ - 央å§åä¼ï¼ææ¯ä»ä¹æå±å¬å¸ï¼ä½ åªè½æ¾å¼äº---å 为ä¸ä¸ªä¹ä¸å - å¨ï¼ä½æä»¬çç¡®æä¸ä¸ª - æ ¸å¿å§åä¼åCVS管çç»ï¼ä½è¿äºå·¥ä½ç»ç设ç«ä¸»è¦æ¯ä¸ºäºè¿è¡ç®¡çå·¥ä½è䏿 - ¯å¯¹PostgreSQLè¿è¡ç¬å 弿§å¶ï¼PostgreSQLé¡¹ç®æ¯ç±ä»»ä½äººå - å¯åå çå¼å人å社åºåææç¨æ·æ§å¶çï¼ä½ æéè¦åçå°±æ¯è®¢éé®ä»¶å表ï¼åä¸è®¨è®º - å³å¯ï¼è¦åä¸PostgreSQLçå¼åè¯¦è§ å¼å人å常é®é¢ (Developer's FAQ) - è·åä¿¡æ¯ï¼ã - - 1.3)PostgreSQLççææ¯ä»ä¹? - - PostgreSQLçåå¸éµä»ç»å¸çBSDçæãå®åè®¸ç¨æ·ä¸éç®çå°ä½¿ç¨PostgreSQLï¼çè³ä½ - å¯ä»¥éå®PostgreSQLèä¸å«æºä»£ç ä¹å¯ä»¥ï¼å¯ä¸çéå¶å°±æ¯ä½ ä¸è½å 软件èªè - º«é®é¢èåæä»¬è¿½è¯æ³å¾è´£ä»»ï¼å¦å¤å°±æ¯è¦æ±ææç软件æ·è´ä¸ - 须忬以ä¸çæå£°æãä¸é¢å°±æ¯æä»¬æä½¿ç¨çBSDçæå£°æåå®¹ï¼ - - PostgreSQLæ°æ®åºç®¡çç³»ç» - - é¨åçæï¼cï¼1996-2005ï¼PostgreSQL å¨çå¼åå°ç»ï¼é¨åçæï¼cï¼1994-1996 - å å·å¤§å¦è£äº - - ï¼Portions copyright (c) 1996-2005,PostgreSQL Global Development Group - Portions Copyright (c) 1994-6 Regents of the University of - Californiaï¼ - - å许为任ä½ç®ç使ç¨ï¼æ·è´ï¼ä¿®æ¹åååè¿ä¸ªè½¯ä»¶åå®çææ¡£è䏿¶åä»»ä½è´¹ç - ¨ï¼ 并䏿 é¡»ç¾ç½²å æ - ¤è产ççè¯æï¼åææ¯ä¸é¢ççæå£°æåæ¬æ®µä»¥åä¸é¢ä¸¤æ®µæååºç°å¨æææ·è´ä¸ã - - ï¼Permission to use, copy, modify, and distribute this software and - its documentation for any purpose, without fee, and without a written - agreement is hereby granted, provided that the above copyright notice - and this paragraph and the following two paragraphs appear in all - copies.ï¼ - - å¨ä»»ä½æåµä¸ï¼å å·å¤§å¦é½ä¸æ¿æå ä½¿ç¨æ - ¤è½¯ä»¶åå¶ææ¡£è导è´ç对任ä½å½äºäººçç´æ¥çï¼ - é´æ¥çï¼ç¹æ®çï¼éå çæèç¸ä¼´èççæåï¼åæ¬å©çæå¤±ç责任ï¼å³ä½¿å å·å¤§å - ¦å·²ç»å»ºè®®äºè¿äºæå¤±çå¯è½æ§æ¶ä¹æ¯å¦æ¤ã - - ï¼IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY - PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL - DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS - SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA - HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.ï¼ - - å å·å¤§å¦æç¡®æ¾å¼ä»»ä½ä¿è¯ï¼åæ¬ä½ä¸å±éäºæä¸ç¹å®ç¨éçåä¸åå©ççéå«ä¿è¯ã - è¿éæä¾çè¿ä»½è½¯ä»¶æ¯åºäºâå½ä½æ¯âçåºç¡çï¼å èå å·å¤§å - ¦æ²¡æè´£ä»»æä¾ç»´æ¤ï¼æ¯æï¼æ´æ°ï¼å¢å¼ºæèä¿®æ¹çæå¡ã - - ï¼THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE - PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF - CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, - UPDATES, ENHANCEMENTS, OR MODIFICATIONS.ï¼ - - 1.4)PostgreSQL å¯ä»¥è¿è¡å¨åªäºæä½ç³»ç»å¹³å°ä¸ï¼ - - ä¸è¬è¯´æ¥ï¼ä»»ä½ç°å¨å¯¹ UNIX å¼å®¹çæä½ç³»ç»ä¹ä¸é½è½è¿è¡PostgreSQL - ãå¨å®è£æåéååºäºå叿¶ç»è¿æç¡®æµè¯çå¹³å°ã - - PostgreSQlä¹å¯ä»¥ç´æ¥è¿è¡å¨åºäºå¾®è½¯Windows-NTçæä½ç³»ç»ï¼å¦Win2000 - SP4ï¼WinXP å Win2003ï¼å·²å¶ä½å®æçå®è£åå¯ä» - http://pgfoundry.org/projects/pginstallerä¸è½½ï¼åºäºMSDOSçWindowsæä½ç³ - »ç» ï¼Win95ï¼Win98ï¼WinMeï¼éè¦éè¿Cygwin模æç¯å¢è¿è¡PostgreSQLã - - 忶乿ä¸ä¸ªä¸ºNovell Netware 6å¼åççæ¬å¯ä» - http://forge.novell.comè·åï¼ä¸ºOS/2(eComStation)å¼åççæ¬å¯ä» - http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgre - SQL&stype=all&sort=type&dir=%2F ä¸è½½ã - - 1.5) æä»åªéè½å¾å°PostgreSQLï¼ - - éè¿æµè§å¨å¯ä»http://www.postgresql.org/ftp/ä¸è½½ï¼ä¹å¯éè¿FTPï¼ä» - ftp://ftp.PostgreSQL.org/pub/ç«ç¹ä¸è½½ã - - 1.6) ææ°ççPostgreSQLæ¯ä»ä¹ï¼ - - PostgreSQL ææ°ççæ¬æ¯çæ¬ 8.2.1 ã - - æä»¬è®¡åæ¯å¹´åå¸ä¸ä¸ªä¸»è¦åçº§çæ¬ï¼æ¯å 个æåå¸ä¸ä¸ªå°çæ¬ã - - 1.7) æä»åªéè½å¾å°å¯¹PostgreSQLçæ¯æï¼ - - PostgreSQL社åºéè¿é®ä»¶å表为å¶å¤§å¤æ°ç¨æ·æä¾å¸®å©ï¼è®¢éé®ä»¶å表ç主 - ç«ç¹æ¯ - http://www.postgresql.org/community/lists/ï¼ä¸è¬æåµä¸ï¼åå å¥General æ - Bugé®ä»¶å表æ¯ä¸ä¸ªè¾å¥½çå¼å§ã - - 主è¦çIRCé¢éæ¯å¨FreeNode(irc.freenode.net)ç#postgresqlï¼ä¸ºäºè¿ä¸æ - ¤é¢éï¼å¯ä»¥ä½¿ç¨UNIXç¨åºircï¼å¶æä»¤æ ¼å¼ï¼ irc -c '#postgresql' - "$USER" irc.freenode.net ï¼æè使ç¨å¶ä»IRC客æ·ç«¯ç¨åºã卿¤ç½ç»ä¸è¿å - å¨ä¸ä¸ªPostgreSQLç西ççé¢é(#postgersql-es)åæ³è¯é¢é - (#postgresql-fr)ãåæ ·å°ï¼å¨EFNETä¸ä¹æä¸ä¸ªPostgreSQLç交æµé¢éã - - 坿ä¾å䏿¯æçå¬å¸å表å¯å¨http://techdocs.postgresql.org/companies.phpæµ - è§ã - - 1.8) æå¦ä½æäº¤ä¸ä¸ªBUGæ¥åï¼ - - å¯è®¿é® - http://www.postgresql.org/support/submitbugï¼å¡«åBug䏿¥è¡¨æ ¼å³å¯ï¼åæ - ·ä¹å¯è®¿é®ftpç«ç¹ftp://ftp.PostgreSQL.org/pub/ - æ£æ¥ææ æ´æ°çPostgreSQLçæ¬æè¡¥ä¸ã - - éè¿ä½¿ç¨Bugæäº¤è¡¨æ ¼ææ¯åå¾PostgreSQLé®ä»¶å表çBugé叏伿以ä¸ä¹ä¸åå¤ï - ¼ - * ææäº¤å容䏿¯ä¸ä¸ªBugåå¶ä¸æ¯Bugçåå ã - * ææäº¤å容æ¯ä¸ä¸ªå·²ç¥çBugå¹¶ä¸å·²ç»å å¥TODOå¾å¤çä»»å¡å表ã - * ææäº¤çBugå·²å¨å½åçæ¬ä¸è¢«ä¿®æ£ã - * ææäº¤çBug已修æ£ä½å°æªå°è¡¥ä¸å å¥ç°å¨çåå¸è½¯ä»¶åã - * è¯·æ±æäº¤èæä¾æ´è¯¦ç»çä¿¡æ¯ï¼ - + æä½ç³»ç» - + PostgreSQLçæ¬ - + å¯éç°Bugçæµè¯æ¡ä¾ - + è°è¯ä¿¡æ¯ - + è°è¯è·è¸ªè¾åº - * ææäº¤å容æ¯ä¸ä¸ªæ°Bugï¼å°æ§è¡ä»¥ä¸å·¥ä½ï¼ - + å建ä¸ä¸ªæ°è¡¥ä¸å¹¶å°å¶å å¥ä¸ä¸ä¸ªä¸»è¦çæ¬ææ¯å°çæ¹è¿çæ¬ä¸ã - + æ¤Bugææ¶ä¸è½ä¿®æ£ï¼å°è¢«å è³TODOå¾å¤çä»»å¡å表ã - - 1.9) æå¦ä½äºè§£å·²ç¥ç BUG ææç¼ºçåè½ï¼ - - PostgreSQL æ¯æä¸ä¸ªæ©å±ç SQL:2003 çåéãåéæä»¬çTODO - å表ï¼äºè§£å·²ç¥Bugå表ãæç¼ºçåè½åå°æ¥çå¼å计åã - - è¦æ±å¢å æ°åè½çç³è¯·é叏伿¶å°ä»¥ä¸ä¹ä¸çåå¤ï¼ - * 该åè½å·²å å¥TODOå¾å¤çä»»å¡å表ã - * 该åè½ä¸æ¯å¿é¡»çï¼å ä¸ºï¼ - + 宿¯ç°æçä¸ç¬¦åSQLæ åçæåè½çéå¤ã - + 该åè½æ§ä¼å¤§å¤§å¢å 代ç ç夿ç¨åºï¼è带æ¥ç好夿¯å¾®ä¸è¶³éçã - + 该åè½æ¯ä¸å®å¨ææ¯ä¸å¯é çã - * 该åè½å°è¢«å å¥TODOå¾å¤çä»»å¡å表ã - - PostgreSQLä¸ä½¿ç¨Bugè·è¸ªç³»ç»ï¼å 为æä»¬åç°å¨é®ä»¶åè¡¨ä¸ - ç´æ¥åå¤ä»¥åä¿è¯TODOä»»å¡åè¡¨æ»æ¯å¤äºææ°ç¶æçæ¹å¼å·¥ä½æç伿´é«ä¸äºãäºå®ä - ¸ï¼Bugä¸ä¼å¨æä»¬ç软件ä¸åå¨å¾é¿æ¶é´ï¼ - 对影åå¾å¤ç¨æ·çBug乿»æ¯å¾å¿«ä¼è¢«ä¿®æ£ãå¯ä¸è½æ¾å°æææ¹è¿ãæé«åä¿®æ - £çå°æ¹æ¯CVSçæ¥å¿ä¿¡æ¯ï¼å³ä½¿æ¯å¨è½¯ä»¶æ°çæ¬çåå¸ä¿¡æ¯ä¸ - ä¹ä¸ä¼ååºæ¯ä¸å¤çè½¯ä»¶æ´æ°ã - - 1.10) è½å¤è·åçææ°ææ¡£æåªäºï¼ - - PostgreSQLåå«å¤§éçææ¡£ï¼ä¸»è¦æè¯¦ç»çåèæåï¼æå页åä¸äºçæµè¯ä¾åãåè§ /doc - ç®å½ï¼è¯æ³¨ï¼åºä¸º $PGHOME/docï¼ã - ä½ è¿å¯ä»¥å¨çº¿æµè§PostgreSQLçæåï¼å¶ç½åæ¯ï¼http://www.PostgreSQL.org/d - ocsã - - æä¸¤æ¬å³äºPostgreSQLç书å¨çº¿æä¾ï¼å¨ - http://www.PostgreSQL.org/docs/awbook.html å - http://www.commandprompt.com/ppbook/ ã 乿大éçPostgreSQL书ç±å¯ä¾è´ - ä¹°ï¼å¶ä¸æä¸ºæµè¡ç䏿¬æ¯ç±Korry Douglasç¼åçãå¨ - http://techdocs.PostgreSQL.org/techdocs/bookreviews.phpä¸ - 䏿大éæå³PostgreSQL书ç±çç®ä»ã å¨ - http://techdocs.PostgreSQL.org/䏿¶éäºæå³PostgreSQLç大鿿¯æç« ã - - 客æ·ç«¯çå½ä»¤è¡ç¨åºpsqlæä¸äºä»¥ \d - å¼å¤´çå½ä»¤ï¼å¯æ¾ç¤ºå³äºç±»åï¼æä½ç¬¦ï¼å½æ°ï¼èåçä¿¡æ¯ï¼ä½¿ç¨ \? - å¯ä»¥æ¾ç¤ºææå¯ç¨çå½ä»¤ã - - æä»¬ç web ç«ç¹å嫿´å¤çææ¡£ã - - 1.11) æåºè¯¥ææ ·å¦ä¹ SQL ï¼ - - é¦åèèä¸è¿°æå°çä¸PostgreSQLç¸å³ç书ç±ï¼å¦å¤ä¸æ¬æ¯Teach Yourself SQL in - 21 Days, Second Editionï¼å¶è¯¦ç»ä»ç»çç½åæ¯ - http://members.tripod.com/er4ebus/sql/index.htmï¼ - æä»¬ç许å¤ç¨æ·å欢The Practical SQL Handbookï¼ Bowman, Judith S. - ç¼åï¼Addison-Wesleyå¬å¸åºçï¼å¶ä»çå忬¢ The Complete Reference SQL, - Groff ç¼åï¼McGraw-Hillå¬å¸åºçã - - å¨ä¸åç½åä¸ä¹æå¾å¥½çæç¨ï¼ä»ä»¬æ¯ - * http://www.intermedia.net/support/sql/sqltut.shtm - * http://sqlcourse.com. - * http://www.w3schools.com/sql/default.asp - * http://mysite.verizon.net/Graeme_Birchall/id1.html - - 1.12)å¦ä½æäº¤è¡¥ä¸ææ¯å å¥å¼åéä¼ï¼ - - è¯¦è§ å¼å人å常è§é®é¢ (Developer's FAQ) ã - - 1.13)PostgreSQLåå¶ä»æ°æ®åºç³»ç»æ¯èµ·æ¥å¦ä½ï¼ - - è¯ä»·è½¯ä»¶æå¥½å ç§æ¹æ³ï¼åè½ï¼æ§è½ï¼å¯é æ§ï¼æ¯æåä»·æ ¼ã - - åè½ - PostgreSQL æ¥æå¤§ååç¨æ°æ®åºæå¤çåè½ï¼ä¾å¦ï¼äºå¡ï¼å - æ¥è¯¢ï¼è§¦åå¨ï¼è§å¾ï¼å¤é®åè宿´æ§å夿çéå®çã - æä»¬è¿æä¸äºå®ä»¬æ²¡æçç¹æ§ï¼å¦ç¨æ·å®ä¹ç±»åï¼ç»§æ¿ï¼è§ååå¤çæ¬å¹¶è - ¡æ§å¶ä»¥åå°éçäºç¨çã - - æ§è½ - PostgreSQLåå¶ä»åç¨å弿ºçæ°æ®åºå·æç±»ä¼¼çæ§è½ã对æäºå¤ç宿¯è¾å¿« - ï¼å¯¹å¶ä»ä¸äºå¤ç宿¯è¾æ¢ã ä¸å¶ä»æ°æ®åºç¸æ¯ï¼æä»¬çæ§è½ä¼å£éå¸¸å¨ - +/- 10%ä¹é´ã - - å¯é æ§ - æä»¬é½ç¥éæ°æ®åºå¿é¡»æ¯å¯é çï¼å¦åå®å°±ä¸ç¹ç¨é½æ²¡æãæä»¬åªååå°åå¸ - ç»è¿è®¤çæµè¯çï¼ç¼ºé·æå°ç稳å®ä»£ç ãæ¯ä¸ªçæ¬è³å°æä¸ä¸ªæç beta - æµè¯æ¶é´ï¼å¹¶ä¸æä»¬çåå¸å岿¾ç¤ºæä»¬å¯ä»¥æä¾ç¨³å®çï¼ç¢åºçï¼å¯ç¨ä - ºç产使ç¨ççæ¬ãæä»¬ç¸ä¿¡å¨è¿æ¹é¢æä»¬ä¸å¶ä»çæ°æ®åºè½¯ä»¶æ¯ç¸å½çã - - æ¯æ - æä»¬çé®ä»¶å表æä¾ä¸ä¸ªé常大çå¼å人ååç¨æ·çç»ä»¥å¸®å©è§£å³æç¢°å - °çä»»ä½é®é¢ãæä»¬ä¸è½ä¿è¯æ»æ¯è½è§£å³é®é¢ï¼ç¸æ¯ä¹ä¸ï¼åç¨æ°æ®åºè½¯ - ä»¶ä¹å¹¶ä¸æ¯æ»è½å¤æä¾è§£å³æ¹æ³ã - ç´æ¥ä¸å¼å人åï¼ç¨æ·ç¾¤ï¼æååæºç¨åºæ¥è§¦ä½¿PostgreSQLçæ¯ææ¯å¶ä»æ° - æ®åºè¿è¦å¥½ãè¿æä¸äºå䏿§çå¨é¢ææ¯æ¯æï¼å¯ä»¥ç»æä¾ç»é£äºéè¦ç人ãï¼ - åé1.7 å°èï¼ - - ä»·æ ¼ - æä»¬å¯¹ä»»ä½ç¨éé½åè´¹ï¼åæ¬åç¨åéåç¨ç®çã - ä½ å¯ä»¥ä¸å éå¶å°åä½ ç产åéå 奿们ç代ç ï¼é¤äºé£äºæä»¬å¨ä¸é¢çç - æå£°æé声æç BSDçæä¹å¤çå容ã - _________________________________________________________________ - -ç¨æ·å®¢æ·ç«¯é®é¢ - - 2.1) æä»¬å¯ä»¥ç¨ä»ä¹è¯è¨åPostgreSQLæäº¤éï¼ - - PostgreSQL(缺çæåµ)åªå®è£æCåååµå¼Cçæ¥å£ï¼å¶ä»çæ¥å£é½æ¯ç¬ç«ç项ç®ï¼è½å¤ - åå«ä¸è½½ï¼è¿äºæ¥å£é¡¹ç®ç¬ç«çå¥½å¤ - æ¯ä»ä»¬å¯ä»¥æåèªçåå¸è®¡åååèªç¬ç«çå¼åç»ã - - ä¸äºç¼ç¨è¯ - è¨å¦PHPé½æè®¿é®PostgreSQLçæ¥å£ï¼PerlãTCLãPython以åå¾å¤å¶ä»è¯è¨çæ¥å£å¨ - http://gborg.postgresql.orgç½ç«ä¸çDrivers/Interfaceså°è坿¾å°ï¼ - å¹¶ä¸éè¿Internetå¾å®¹ææç´¢å°ã - - 2.2) æä»ä¹å·¥å·å¯ä»¥æPostgreSQLç¨äº Web 页é¢ï¼ - - ä¸ä¸ªä»ç»ä»¥æ°æ®åºä¸ºåå°çæºä¸éçç«ç¹æ¯ï¼http://www.webreview.comã - - å¯¹äº Web éæï¼PHP æ¯ä¸ä¸ªæå¥½çæ¥å£ãå®å¨http://www.php.net/ã - - 对äºå¤æçä»»å¡ï¼å¾å¤äººéç¨ Perl æ¥å£å 使ç¨CGI.pmçDBD::Pg æ mod_perl ã - - 2.3)PostgreSQLæ¥æå¾å½¢ç¨æ·çé¢åï¼ - - åä¸ç¨æ·ææ¯å¼æºå¼å人åè½æ¾å°å¾å¤çæå³PostgreSQLçGUIå¾å½¢å·¥å·è½¯ä»¶ï¼å¨ - PostgreSQLç¤¾åºææ¡£æä¸ä¸ªè¯¦ç»çå表ã - _________________________________________________________________ - -ç³»ç»ç®¡çé®é¢ - - 3.1)æææ ·è½æPostgreSQLè£å¨ /usr/local/pgsql 以å¤çå°æ¹ï¼ - - å¨è¿è¡ configure æ¶å ä¸ --prefix é项ã - - 3.2) æå¦ä½æ§å¶æ¥èªå¶ä»çµèçè¿æ¥ï¼ - - 缺çæåµä¸ï¼PostgreSQLåªå许æ¥èªæ¬æºä¸éè¿ unix å奿¥åæTCP/IPæ¹å¼çè¿æ¥ã - ä½ åªæå¨ä¿®æ¹äºéç½®æä»¶postgresql.confä¸ - çlisten_addressesï¼ä¸ä¹å¨éç½®æä»¶$PGDATA/pg_hba.conf䏿å¼äº - åºäºè¿ç¨çµèï¼ host-based - ï¼ç身份认è¯ï¼å¹¶éæ°å¯å¨PostgreSQLï¼å¦åå¶ä»çµèæ¯ä¸è½ä¸ä½ çPostgreSQL - æå¡å¨è¿è¡è¿æ¥çã - - 3.3) æææ ·è°æ´æ°æ®åºå¼æä»¥è·å¾æ´å¥½çæ§è½ï¼ - - æä¸ä¸ªä¸»è¦æ¹é¢å¯ä»¥æåPostgreSQLçæ½è½ã - - æ¥è¯¢æ¹å¼çåå - è¿ä¸»è¦æ¶åä¿®æ¹æ¥è¯¢æ¹å¼ä»¥è·åæ´å¥½çæ§è½: - - + å建索å¼ï¼åæ¬è¡¨è¾¾å¼åé¨åç´¢å¼ï¼ - + 使ç¨COPYè¯å¥ä»£æ¿å¤ä¸ªInsertè¯å¥ï¼ - + å°å¤ä¸ªSQLè¯å¥ç»æä¸ä¸ªäºå¡ä»¥åå°æäº¤äºå¡çå¼éï¼ - + ä»ä¸ä¸ªç´¢å¼ä¸æå夿¡è®°å½æ¶ä½¿ç¨CLUSTERï¼ - + ä»ä¸ä¸ªæ¥è¯¢ç»æä¸ååºé¨åè®°å½æ¶ä½¿ç¨LIMITï¼ - + 使ç¨é¢ç¼è¯å¼æ¥è¯¢ï¼Prepared Query)ï¼ - + 使ç¨ANALYZEä»¥ä¿æç²¾ç¡®çä¼åç»è®¡ï¼ - + å®æä½¿ç¨ VACUUM æ pg_autovacuum - + è¿è¡å¤§éæ°æ®æ´æ¹æ¶åå é¤ç´¢å¼ï¼ç¶åé建索å¼ï¼ - - æå¡å¨çéç½® - éç½®æä»¶postgres.confä¸ - çå¾å¤è®¾ç½®é½ä¼å½±åæ§è½ï¼ææåæ°çå表å¯è§ï¼ - 管çåæå/æ°æ®åºæå¡å¨è¿è¡ç¯å¢/æ°æ®åºæå¡å¨è¿è¡éç½®ï¼ - æå³åæ°çè§£éå¯è§ï¼http://www.varlena.com/varlena/GeneralBits/Tid - bits/annotated_conf_e.html å - http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.htmlã - - 硬件çéæ© - è®¡ç®æºç¡¬ä»¶å¯¹æ§è½çå½±å坿µè§ - http://candle.pha.pa.us/main/writings/pgsql/hw_performance/inde - x.html å http://www.powerpostgresql.com/PerfList/ã - - 3.4)PostgreSQLéå¯ä»¥è·å¾ä»ä¹æ ·çè°è¯ç¹æ§ï¼ - - PostgreSQL æå¾å¤ç±»ä¼¼ log_* - çæå¡å¨éç½®åéå¯ç¨äºæ¥è¯¢çæå°åè¿ç¨ç»è®¡ï¼èè¿äºå·¥ä½å¯¹è°è¯åæ§è½æµè¯å¾æå¸ - ®å©ã - - 3.5) 为ä»ä¹å¨è¯å¾è¿æ¥æ¶æ¶å°âSorry, too many - clientsï¼å·²æå¤ªå¤ç¨æ·è¿æ¥ï¼âæ¶æ¯ï¼ - - è¿è¡¨ç¤ºä½ 已达å°ç¼ºç100个并ååå°è¿ç¨æ°çéå¶ï¼ä½ éè¦éè¿ä¿®æ¹postgres - ql.confæä»¶ä¸çmax_connections弿¥ - å¢å postmasterçåå°å¹¶åå¤çæ°ï¼ä¿®æ¹åééæ°å¯å¨postmasterã - - 3.6)PostgreSQLçå级è¿ç¨æåªäºå容 ï¼ - - PostgreSQL å¼åç»å¯¹æ¯æ¬¡å°çæ¬çå级主è¦åªåäºä¸äºBugä¿®æ£å·¥ä½ï¼å æ¤ä» - 7.4.8 åçº§å° 7.4.9 ä¸éè¦ dump å restoreï¼ä»éè¦åæ - ¢æ°æ®åºæå¡å¨ï¼å®è£æ´æ°åç软件åï¼ç¶åé坿å¡å¨å³å¯ã - - ææPostgreSQLçç¨æ·åºè¯¥å¨ææ¥è¿ï¼ä½ æä½¿ç¨çä¸»çæ¬ï¼çå°æ¹è¿çæ¬åå¸å°½å¿«åç - º§ãå°½ç®¡æ¯æ¬¡å级å¯è½é½æä¸ç¹é£é©ï¼PostgreSQLçå°æ¹è¿çä»ä»æ¯è®¾è®¡ç¨æ¥ä - ¿®æ - £ä¸äºBugçï¼ä»£ç æ¹å¨è¾å°ï¼æä»¥é£é©è¿æ¯å¾å°çãPostgreSQL社åºè®¤ä¸ºä¸è¬æ - åµä¸ä¸å级çé£é©è¿æ¯å¤äºå级çã - - ä¸»çæ¬çå级ï¼ä¾å¦ä» 7.3 å° 7.4ï¼é常ä¼ä¿®æ¹ç³»ç»è¡¨åæ°æ®è¡¨çå鍿 ¼å¼ã - è¿äºæ¹åä¸è¬æ¯è¾å¤æï¼å æ¤æä»¬ä¸ç»´ææ°æ®æä»¶çååå¼å®¹æ§ãå æ¤ä»èçæ¬ä¸ - è¿è¡æ°æ®å¯¼åºï¼dumpï¼/ç¶å卿°çæ¬ä¸ - è¿è¡æ°æ®å¯¼å¥ï¼reloadï¼å¯¹ä¸»çæ¬çå级æ¯å¿é¡»çã - - 3.7)(使ç¨PostgreSQL)æéè¦ä½¿ç¨ä»ä¹è®¡ç®æºç¡¬ä»¶ ï¼ - - ç±äºè®¡ç®æºç¡¬ä»¶å¤§å¤æ°æ¯å¼å®¹çï¼äººä»¬æ»æ¯å¾åäºç¸ä¿¡ææè®¡ç®æºç¡¬ä»¶è - ´¨é乿¯ç¸åçãäºå®ä¸ä¸æ¯ï¼ ECC RAMï¼å¸¦å¥å¶æ ¡éªçååï¼ï¼SCSI - ï¼ç¡¬çï¼åä¼è´¨çä¸»æ¿æ¯ä¸äºä¾¿å®è´§è¦æ´å å¯é ä¸å·ææ´å¥½çæ§è½ãPostgreSQL - å ä¹å¯ä»¥è¿è¡å¨ä»»ä½ç¡¬ä»¶ä¸ï¼ - ä½å¦æå¯é æ§åæ§è½å¯¹ä½ çç³»ç»å¾éè¦ï¼ä½ å°±éè¦å¨é¢çç ç©¶ä¸ä¸ä½ ç硬件éç - ½®äºã卿们çé®ä»¶å表ä¸ä¹æå³äº 硬件éç½®åæ§ä»·æ¯ç讨论ã - _________________________________________________________________ - -æä½é®é¢ - - 4.1) å¦ä½åªéæ©ä¸ä¸ªæ¥è¯¢ç»æç头å è¡ï¼ææ¯éæºçä¸è¡ï¼ - - å¦æä½ åªæ¯è¦æåå è¡æ°æ®ï¼å¹¶ä¸ä½ 卿§è¡æ¥è¯¢ä¸ - ç¥éç¡®åçè¡æ°ï¼ä½ å¯ä»¥ä½¿ç¨LIMITåè½ã 妿æä¸ä¸ªç´¢å¼ä¸ ORDER BYä¸ - çæ¡ä»¶å¹éï¼PostgreSQL å¯è½å°±åªå¤çè¦æ±çå¤´å æ¡è®°å½ï¼ - ï¼å¦åå°å¯¹æ´ä¸ªæ¥è¯¢è¿è¡å¤çç´å°çæéè¦çè¡ï¼ã妿卿§è¡æ¥è¯¢åè½æ¶ä¸ç¥éç¡®å - çè®°å½æ°ï¼ å¯ä½¿ç¨æ¸¸æ (cursor)åFETCHåè½ã - - å¯ä½¿ç¨ä»¥ä¸æ¹æ³æåä¸è¡éæºè®°å½çï¼ - SELECT cols - FROM tab - ORDER BY random() - LIMIT 1 ; - - 4.2) - å¦ä½æ¥ç表ãç´¢å¼ãæ°æ®åºä»¥åç¨æ·çå®ä¹ï¼å¦ä½æ¥çpsqléç¨å°çæ¥è¯¢æä»¤å¹¶æ¾ç¤ºå®ä»¬ - ï¼ - - å¨psqlä¸ä½¿ç¨ \dt å½ä»¤æ¥æ¾ç¤ºæ°æ®è¡¨çå®ä¹ï¼è¦äºè§£psqlä¸ - ç宿´å½ä»¤å表å¯ä½¿ç¨\? ï¼å¦å¤ï¼ä½ ä¹å¯ä»¥é读 psql çæºä»£ç - æä»¶pgsql/src/bin/psql/describe.cï¼å®åæ¬ä¸ºçæpsqlåææ å½ä»¤çè¾åºçææ SQL - å½ä»¤ãä½ è¿å¯ä»¥å¸¦ -E é项å¯å¨ psqlï¼ è¿æ ·å®å°æå°åºä½ å¨psqlä¸ - æç»åºçå½ä»¤æ§è¡æ¶çåé¨å®é使ç¨çSQLæ¥è¯¢è¯ - å¥ãPostgreSQL乿ä¾äºä¸ä¸ªå¼å®¹SQLçINFORMATION SCHEMAæ¥å£ï¼ - ä½ å¯ä»¥ä»è¿éè·åå³äºæ°æ®åºçä¿¡æ¯ã - - å¨ç³»ç»ä¸ä¹æä¸äºä»¥pg_ æå¤´çç³»ç»è¡¨ä¹æè¿°äºè¡¨çå®ä¹ã - - ä½¿ç¨ psql -l æä»¤å¯ä»¥ååºææçæ°æ®åºã - - ä¹å¯ä»¥æµè§ä¸ä¸ - pgsql/src/tutorial/syscat.sourceæä»¶ï¼å®å举äºå¾å¤å¯ä»æ°æ®åºç³»ç»è¡¨ä¸ - è·åä¿¡æ¯çSELECTè¯æ³ã - - 4.3) å¦ä½æ´æ¹ä¸ä¸ªåæ®µçæ°æ®ç±»åï¼ - - å¨8.0çæ¬éæ´æ¹ä¸ä¸ªåæ®µçæ°æ®ç±»åå¾å®¹æï¼å¯ä½¿ç¨ ALTER TABLE ALTER - COLUMN TYPE ã - - å¨ä»¥åççæ¬ä¸ï¼å¯ä»¥è¿æ ·åï¼ - BEGIN; - ALTER TABLE tab ADD COLUMN new_col new_data_type; - UPDATE tab SET new_col = CAST(old_col AS new_data_type); - ALTER TABLE tab DROP COLUMN old_col; - COMMIT; - - ä½ ç¶åå¯ä»¥ä½¿ç¨VACUUM FULL tab æä»¤æ¥ä½¿ç³»ç»æ¶åæ ææ°æ®æå ç¨ç空é´ã - - 4.4) åæ¡è®°å½ï¼å个表ï¼åä¸ªæ°æ®åºçæå¤§éå¶æ¯å¤å°ï¼ - - ä¸é¢æ¯ä¸äºéå¶ï¼ - - åä¸ªæ°æ®åºæå¤§å°ºå¯¸ï¼ æ éå¶ï¼å·²å卿 32TB çæ°æ®åºï¼ - å个表çæå¤§å°ºå¯¸ï¼ 32 TB - ä¸è¡è®°å½çæå¤§å°ºå¯¸ï¼ 1.6 TB - ä¸ä¸ªå段çæå¤§å°ºå¯¸? 1 GB - ä¸ä¸ªè¡¨éæå¤§è¡æ°ï¼ æ éå¶ - ä¸ä¸ªè¡¨éæå¤§åæ°ï¼ 250-1600 ï¼ä¸åç±»åæå³ï¼ - ä¸ä¸ªè¡¨éçæå¤§ç´¢å¼æ°éï¼ æ éå¶ - - å½ç¶ï¼å®é䏿²¡æçæ£çæ éå¶ï¼è¿æ¯è¦åå¯ç¨ç£ç空é´ãå¯ç¨åå/交æ¢åºçå¶çº¦ã - äºå®ä¸ï¼å½ä¸è¿°è¿äºæ°å¼åå¾å¼å¸¸å°å¤§æ¶ï¼ç³»ç»æ§è½ä¹ä¼åå¾å¤§å½±åã - - å表çæå¤§å¤§å° 32 TB - ä¸éè¦æä½ç³»ç»å¯¹å个æä»¶ä¹éè¿ä¹å¤§çæ¯æã大表ç¨å¤ä¸ª 1 GB çæä»¶å - å¨ï¼å æ¤æä»¶ç³»ç»å¤§å°çéå¶æ¯ä¸éè¦çã - - å¦æç¼ºççå大å°å¢é¿å° 32K ï¼æå¤§çå表大å°åæå¤§åæ°è¿å¯ä»¥å¢å å°ååã - - æä¸ä¸ªéå¶å°±æ¯ä¸è½å¯¹å¤§å°å¤äº2000å - èçåå建索å¼ã幸è¿å°æ¯è¿æ ·çç´¢å¼å¾å°ç¨å°ãéè¿å¯¹å¤å - èåçå容è¿è¡MD5åç¨è¿ç®ç»æè¿è¡å½æ°ç´¢å¼å¯å¯¹åçå¯ä¸æ§å¾å°ä¿è¯ï¼ - å¹¶ä¸å¨ææ£ç´¢å许对åä¸çåè¯è¿è¡æç´¢ã - - 4.5) åå¨ä¸ä¸ªå¸åçææ¬æä»¶éçæ°æ®éè¦å¤å°ç£ç空é´ï¼ - - ä¸ä¸ª Postgres æ°æ®åºï¼å - å¨ä¸ä¸ªææ¬æä»¶ï¼æå ç¨çç©ºé´æå¤å¯è½éè¦ç¸å½äºè¿ä¸ªææ¬æä»¶èªèº«å¤§å°5åçç£ - ç空é´ã - - ä¾å¦ï¼å设æä¸ä¸ª 100,000 è¡çæä»¶ï¼æ¯è¡æä¸ä¸ªæ´æ°åä¸ä¸ªææ¬æè¿°ã - åè®¾ææ¬ä¸²çå¹³åé¿åº¦ä¸º20åèãææ¬æä»¶å ç¨ 2.8 MBãå - æ¾è¿äºæ°æ®çPostgreSQLæ°æ®åºæä»¶å¤§çº¦æ¯ 6.4 MB: - 28 åè: æ¯è¡ç头ï¼å¤§çº¦å¼ï¼ - 24 åè: ä¸ä¸ªæ´æ°ååæ®µåä¸ä¸ªææ¬ååæ®µ - + 4 åè: 页é¢åæååç»çæé - ---------------------------------------- - 56 åèæ¯è¡ - - PostgreSQL æ°æ®é¡µç大尿¯ 8192 åè (8 KB)ï¼åï¼ - - 8192 åèæ¯é¡µ - ------------------- = 146 è¡/æ°æ®é¡µï¼åä¸åæ´ï¼ - 56 åèæ¯è¡ - - 100000 æ°æ®è¡ - -------------------- = 685 æ°æ®é¡µï¼åä¸åæ´ï¼ - 146 è¡/æ°æ®é¡µ - - 685 æ°æ®é¡µ * 8192 åè/页 = 5,611,520 åèï¼5.6 MBï¼ - - ç´¢å¼ä¸éè¦è¿ä¹å¤çé¢å¤æ¶èï¼ä½ä¹ç¡®å®åæ¬è¢«ç´¢å¼çæ°æ®ï¼å æ - ¤å®ä»¬ä¹å¯è½å¾å¤§ã - - 空å¼NULLåæ¾å¨ä½å¾ä¸ï¼å æ¤å ç¨å¾å°ç空é´ã - - 4.6) 为ä»ä¹æçæ¥è¯¢å¾æ¢ï¼ä¸ºä»ä¹è¿äºæ¥è¯¢æ²¡æå©ç¨ç´¢å¼ï¼ - - å¹¶éæ¯ä¸ªæ¥è¯¢é½ä¼èªå¨ä½¿ç¨ç´¢å¼ãåªæå¨è¡¨ç大å°è¶è¿ä¸ä¸ªæå°å¼ï¼å¹¶ä¸æ¥ - 询åªä¼éä¸è¡¨ä¸è¾å°æ¯ä¾çè®°å½æ¶æä¼éç¨ç´¢å¼ã - è¿æ¯å ä¸ºç´¢å¼æ«æå¼èµ·çéå³ç£çååå¯è½æ¯ç´æ¥å°è¯»å表ï¼é¡ºåºæ«æï¼æ´æ¢ã - - 为äºå¤æ - æ¯å¦ä½¿ç¨ç´¢å¼ï¼PostgreSQLå¿é¡»è·å¾æå³è¡¨çç»è®¡å¼ãè¿äºç»è®¡å¼å¯ä»¥ä½¿ç - ¨ VACUUM ANALYZEï¼æ ANALYZE è·å¾ã 使ç¨ç»è®¡å¼ï¼ä¼åå¨ç¥éè¡¨ä¸ - æå¤å°è¡ï¼å°±è½å¤æ´å¥½å°å¤ææ¯å¦å©ç¨ç´¢å¼ã - ç»è®¡å¼å¯¹ç¡®å®ä¼åçè¿æ¥é¡ºåºåè¿æ¥æ¹æ³ä¹å¾æç¨ãå¨è¡¨çå容åçååæ¶ï¼åºå®æè¿ - è¡ç»è®¡å¼çæ´æ°æ¶éã - - ç´¢å¼é常ä¸ç¨äº ORDER BY - ææ§è¡è¿æ¥ã对ä¸ä¸ªå¤§è¡¨ç䏿¬¡é¡ºåºæ«æåå䏿¬¡æåºé常æ¯ç´¢å¼æ«æè¦å¿«ãç¶ - èï¼å¦æå° LIMIT å ORDER BY - ç»åå¨ä¸èµ·ä½¿ç¨çè¯ï¼é常å°ä¼ä½¿ç¨ç´¢å¼ï¼å ä¸ºè¿æ¶ä»è¿åè¡¨ä¸ - çä¸å°é¨åè®°å½ã - - å¦æä½ ç¡®ä¿¡PostgreSQLçä¼åå¨ä½¿ç¨é¡ºåºæ«ææ¯ä¸æ£ç¡®çï¼ä½ å¯ä»¥ä½¿ç¨SET - enable_seqscan TO 'off'æä»¤æ¥å³éé¡ºåºæ«æï¼ - ç¶å忬¡è¿è¡æ¥è¯¢ï¼ä½ å°±å¯ä»¥çåºä½¿ç¨ä¸ä¸ªç´¢å¼æ«ææ¯å¦ç¡®å®è¦å¿«ä¸äºã - - å½ä½¿ç¨éé符æä½ï¼ä¾å¦ LIKE æ ~ æ¶ï¼ç´¢å¼åªè½å¨ç¹å®çæåµä¸ä½¿ç¨ï¼ - * å符串çå¼å§é¨åå¿é¡»æ¯æ®éå符串ï¼ä¹å°±æ¯è¯´ï¼ - + LIKE 模å¼ä¸è½ä»¥ % æå¤´ã - + ~ ï¼æ£å表达å¼ï¼æ¨¡å¼å¿é¡»ä»¥ ^ æå¤´ã - * å符串ä¸è½ä»¥å¹éå¤ä¸ªåç¬¦çæ¨¡å¼ç±»æå¤´ï¼ä¾å¦ [a-e]ã - * 大å°åæ å³çæ¥æ¾ï¼å¦ ILIKE å ~* çä¸ä½¿ç¨ç´¢å¼ï¼ä½å¯ä»¥ç¨ 4.8 - èæè¿°ç表达å¼ç´¢å¼ã - * å¨å initdb æ¶å¿é¡»éç¨ç¼ºççæ¬å°è®¾ç½® C - localeï¼å 为系ç»ä¸å¯è½ç¥éå¨éC localeæåµæ¶ä¸ä¸ä¸ªæå¤§å符æ¯ä»ä¹ã - å¨è¿ç§æåµä¸ï¼ä½ å¯ä»¥å建ä¸ä¸ªç¹æ®çtext_pattern_opsç´¢å¼æ¥ç¨äºLIKE - çç´¢å¼ã - - å¨8.0ä¹åççæ¬ä¸ - ï¼é¤éè¦æ¥è¯¢çæ°æ®ç±»ååç´¢å¼çæ°æ®ç±»åç¸å¹éï¼å¦åç´¢å¼ç»å¸¸æ¯æªè¢«ç¨å°ï¼ç - ¹å«æ¯å¯¹int2,int8åæ°å¼åçç´¢å¼ã - - 4.7) æå¦ä½æè½çå°æ¥è¯¢ä¼å卿¯ææ ·è¯ä¼°å¤çæçæ¥è¯¢ï¼ - - åè EXPLAIN æå页ã - - 4.8) æææ ·åæ£åè¡¨è¾¾å¼æç´¢å大å°åæ å³çæ - £åè¡¨è¾¾å¼æ¥æ¾ï¼ææ ·å©ç¨ç´¢å¼è¿è¡å¤§å°åæ 峿¥æ¾ï¼ - - æä½ç¬¦ ~ å¤çæ£å表达å¼å¹éï¼è ~* å¤ç大å°åæ å³çæ - £å表达å¼å¹éã大å°åæ å³ç LIKE åç§æä¸º ILIKEã - - 大å°åæ å³çç弿¯è¾é常ååï¼ - SELECT * - FROM tab - WHERE lower(col) = 'abc'; - - è¿æ ·å°ä¸ä¼ä½¿ç¨æ åçç´¢å¼ã使¯å¯ä»¥å建ä¸ä¸ªå¨è¿ç§æåµä¸ä½¿ç¨ç表达å¼ç - ´¢å¼: - CREATE INDEX tabindex ON tab (lower(col)); - - 妿ä¸è¿°ç´¢å¼å¨å建æ¶å å¥UNIQUE约æï¼è½ç¶ç´¢å¼å段èªèº«å容å¯ä»¥å - å¨å¤§å°åä¸éçå容ï¼ä½å¦ææUNIQUE约æåï¼è¿äºå容ä¸è½ä»ä»æ¯å¤§å°åä¸åï¼å¦åä - ¼é æå²çªï¼ã为äºä¿è¯ä¸åçè¿ç§æåµï¼å¯ä»¥ä½¿ç¨CHECKçº¦ææ¡ä»¶ææ¯è§¦åå¨å¨å½ - 奿¶è¿è¡éå¶ã - - 4.9) å¨ä¸ä¸ªæ¥è¯¢éï¼æææ ·æ£æµä¸ä¸ªå段æ¯å¦ä¸º NULL ï¼æå¦ä½æè½åç¡®æåºèä¸è®ºæå - 段æ¯å¦å« NULL å¼ï¼ - - ç¨ IS NULL å IS NOT NULL æµè¯è¿ä¸ªå段ï¼å·ä½æ¹æ³å¦ä¸ï¼ - SELECT * - FROM tab - WHERE col IS NULL; - - 为äºè½å¯¹å« NULLåæ®µæåºï¼å¯å¨ ORDER BY æ¡ä»¶ä¸ä½¿ç¨ IS NULLå IS NOT - NULL ä¿®é¥°ç¬¦ï¼æ¡ä»¶ä¸ºç true å°æ¯æ¡ä»¶ä¸ºåfalse æå¨åé¢ï¼ä¸é¢çä¾å - å°±ä¼å°å« NULL çè®°å½æå¨ç»æçä¸é¢é¨åï¼ - SELECT * - FROM tab - ORDER BY (col IS NOT NULL) - - 4.10) åç§å符类åä¹é´æä»ä¹ä¸åï¼ - - ç±»å åé¨åç§° 说æ - VARCHAR(n) varchar æå®äºæå¤§é¿åº¦ï¼åé¿å - 符串ï¼ä¸è¶³å®ä¹é¿åº¦çé¨åä¸è¡¥é½ - CHAR(n) bpchar å®é¿å符串ï¼å®éæ°æ®ä¸è¶³å®ä¹é¿åº¦æ¶ï¼ä»¥ç©ºæ ¼è¡¥é½ - TEXT text 没æç¹å«çä¸ééå¶ï¼ä»åè¡çæå¤§é¿åº¦éå¶ï¼ - BYTEA bytea åé¿åèåºåï¼ä½¿ç¨NULLåç¬¦ä¹æ¯å许çï¼ - "char" char å个å符 - - å¨ç³»ç»è¡¨åå¨ä¸äºé误信æ¯éä½ å°çå°åé¨åç§°ã - - ä¸é¢æåçååç§ç±»åæ¯"varlena"ï¼åé¿ï¼ç±»åï¼ä¹å°±æ¯è¯´ï¼å¼å¤´çå个å - èæ¯é¿åº¦ï¼åé¢ææ¯æ°æ®ï¼ã äºæ¯å®éå ç¨çç©ºé´æ¯å£°æç大å°è¦å¤ä¸äºã - ç¶èè¿äºç±»åå¦å®ä¹å¾é¿æ¶é½å¯ä»¥è¢«å缩åå¨ï¼å æ - ¤ç£ç空é´ä¹å¯è½æ¯é¢æ³çè¦å°ã - - VARCHAR(n) å¨åå¨éå¶äºæå¤§é¿åº¦çåé¿åç¬¦ä¸²æ¯æå¥½çã TEXT éç¨äºå - 卿大å¯è¾¾ 1Gå·¦å³ä½æªå®ä¹éå¶é¿åº¦çå符串ã - - CHAR(n) æéåäºåå¨é¿åº¦ç¸åçå符串ã CHAR(n)伿 ¹æ®æç»å®çå - 段é¿åº¦ä»¥ç©ºæ ¼è¡¥è¶³ï¼ä¸è¶³çåæ®µå容ï¼ï¼ è VARCHAR(n) åªå - 卿ç»å®çæ°æ®å容ã BYTEA ç¨äºåå¨äºè¿å¶æ°æ®ï¼å°¤å¶æ¯åå« NULL å - èçå¼ãè¿äºç±»åå·æå·®ä¸å¤çæ§è½ã - - 4.11.1) æææ ·å建ä¸ä¸ªåºåå·ææ¯èªå¨éå¢çåæ®µï¼ - - PostgreSQL æ¯æ SERIAL æ°æ®ç±»åãï¼å - 段å®ä¹ä¸ºSERIALåï¼å°èªå¨å建ä¸ä¸ªåºåçæå¨ï¼ä¾å¦ï¼ - CREATE TABLE person ( - id SERIAL, - name TEXT - ); - - ä¼èªå¨è½¬æ¢ä¸ºä»¥ä¸SQLè¯å¥ï¼ - CREATE SEQUENCE person_id_seq; - CREATE TABLE person ( - id INT4 NOT NULL DEFAULT nextval('person_id_seq'), - name TEXT - ); - - åè create_sequence æå页è·åå³äºåºåçæå¨çæ´å¤ä¿¡æ¯ã - - 4.11.2) æå¦ä½è·å¾ä¸ä¸ªæå¥çåºåå·çå¼ï¼ - - ä¸ç§æ¹æ³æ¯å¨æå¥ä¹ååç¨å½æ° nextval() ä»åºåå¯¹è±¡éæ£ç´¢åºä¸ä¸ä¸ª SERIAL - å¼ï¼ç¶ååç¨æ¤å¼ç²¾ç¡®å°æå¥ãä½¿ç¨ 4.11.1 éçä¾è¡¨ï¼å¯ç¨ä¼ªç è¿æ ·æè¿°ï¼ - new_id = execute("SELECT nextval('person_id_seq')"); - execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')"); - - è¿æ ·è¿è½å¨å¶ä»æ¥è¯¢ä¸ä½¿ç¨åæ¾å¨ new_id éçæ°å¼ï¼ä¾å¦ï¼ä½ä¸ºåç§ person - 表çå¤é®ï¼ã 注æèªå¨å建ç SEQUENCE 对象çåç§°å°ä¼æ¯ -