File contents
PostgreSQL(ݥȥ쥹塼)ˤĤƤ褯Ȥβ(FAQ)
ʸǽ: Last updated: Tue Apr 24 17:29:38 EDT 2007
ߤΰݻ: Bruce Momjian (bruce@momjian.us)
Maintainer of Japanese Translation: Jun Kuwamura (juk at PostgreSQL.jp)
ʸκǿǤ http://www.postgresql.org/docs/faqs.FAQ.html Ǹ뤳Ȥ
ޤ
ץåȥۡͭμˤĤƤ: http://www.postgresql.org/docs/faq/
˲ޤ
(ʲԤˤ [ ] ȤǰϤǵޤ)
[
ܸǤFAQϡ
http://www.postgresql.org/docs/faqs.FAQ_japanese.html
ˤޤ
ǿܸǤˤĤƤϡʸκǸˤܸǤˤĤơפ
]
Ūʼ
1.1) PostgreSQLȤϲǤθƤϡ
1.2) ï PostgreSQL ȥ뤷Ƥޤ
1.3) PostgreSQLϤɤʤäƤޤ
1.4) PostgreSQLݡȤץåȥۡϡ
1.5) PostgreSQLϤɤǤޤ
1.6) ǿΥϤɤǤ
1.7) ݡȤϤɤǼޤ
1.8) ХݡȤϤɤΤ褦ȯޤ
1.9) ΤΥХ̵̤ǽϤɤäƸĤޤ
1.10) ɤΤ褦ʸޤ
1.11) SQLϤɤгؤ٤ޤ
1.12) ѥåꡢȯäˤϤɤФ褤Ǥ
1.13) ¾DBMS٤PostgreSQLϤɤʤΤǤ
1.14) PostgreSQLϹκǿβƻ֤ѹޤ
桼饤Ȥμ
2.1) PostgreSQL ˤϤɤʥեȤޤ
2.2) PostgreSQL Web ڡϢȤˤϤɤʥġ뤬ޤ
2.3) PostgreSQL ˥ե롦桼եϤޤ
μ
3.1) ɤСPostgreSQL/usr/local/pgsql ʳξ˥ȡǤޤ
3.2) ¾ΥۥȤ³ϤɤΤ褦椷ޤ
3.3) ɤǽ뤿ˤϡǡ١ɤΤ褦Ĵޤ
3.4) ɤΤ褦ʥǥХǽȤޤ
3.5) ³褦ȤȤ 'Sorry, too many clients' ФΤϤʤǤ
3.6) PostgreSQLΥåץ졼ɤμϤɤʤޤ
3.7) ϡɥˤϤɤΤ褦ʥԥ塼ȤФ褤Ǥ
μ
4.1) ǽΤĤΥΤߤ select ˤϤɤޤʥ
4.2) 줿ơ֥롢ǥåǡ١ӡ桼ɤΤ褦
ƸĤФޤ
4.3) ΥǡפѹˤϤɤޤ
4.4) ơ֥롢ǡ١κ祵ϡ
4.5) ŪʥƥȥեΥǡ¸ˤϡǡ١Υǥ
ϤɤΤ餤ɬפǤ
4.6) ꤬٤ΤϤʤǤ礦ʤǥåȤʤΤǤ礦
4.7) ꥪץƥޥɤΤ褦˥ɾƤˤϤɤ
4.8) ɽǤθʸȾʸȤ̤ʤɽϤɤΤ褦˼¸
ޤʸȾʸȤ̤ʤΤΥǥåϤɤΤ褦˻Ȥ
ޤ
4.9) ǡեɤ NULL Ǥ뤳ȤФˤϤɤޤ
NULLβǽΤΤɤΤ褦ϢǤޤ? եɤNULLɤ
ǤɤΤ褦˥ȤǤޤ
4.10) ʸΤ줾ΰ㤤ϲǤ
4.11.1) (serial)ưʬեɤϤɤΤ褦ˤĤޤ
4.11.2) SERIALǡͤϡɤޤ
4.11.3) currval() ¾Υ桼Ȥζ֤˴٤뤳ȤϤʤǤ
4.11.4) ȥǤȤˤ⤦ɥֹ椬Ȥʤ
ϤʤǤSERIAL˶ΤϤʤǤ
4.12) OID ȤϲǤ TID ȤϲǤ
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) ơ֥ȥ̾ǧʤΤϤʤǤʤ
ʸ(ԥ饤)ϲ¸ʤΤǤ?
ܸ˴ؤ
5.1) ܸ줬ޤʤΤϤʤǤ
5.2) psql Windows饢Ȥˡܸ줬ʸΤǤ
Ūʼ
1.1) PostgreSQLȤϲǤθƤϡ
PostgreSQLPost-Gres-Q-L(ݥȡ쥹塼) ȯޤ
ޤȤˤäƤñ Postgres ȤƻȤޤȯʹͤ
ˡ MP3եޥåȤβե뤬ޤ
PostgreSQL ϥ֥-졼ʥǡ١ƥǡŪʾѥ
١ƥˡDBMSƥ˸褦ʲɤܤ줿ħͭ
ޤPostgreSQLϡ̵Ǵʥɤ뤳ȤǤޤ
PostgreSQL γȯϡۤȤɤˤҤäܥƥγȯԤˤä
ͥåȤ̤ߥ˥ˤäƹԤƤޤߥ˥ƥ
ˤץȤǤ뤿ᡢɤδȤ⤦ޤȯ˻ä
http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html ˤ볫ȯ
FAQƤ
1.2) ï PostgreSQL ȥ뤷Ƥޤ
PostgreSQL֡Ѱ뤤ϡȥҤõȤƤ
ᤶ ---- ¸ߤʤΤǤ桹ϡ濴Ȥʤ륳ߥåƥCVSߥ
ޤΥ롼פϥȥ뤹뤿Ȥ⡢Τ
ΤǤǤϡץȤϡǤ⻲äǤ볫ȯԤȥ桼Υߥ
ƥˤդޤɼԤʤФʤʤȤϡꥹ
֥饤֤ơ˻ä뤳ȤǤDeveloper's FAQˤϡPostgreSQL
ȯ˲äˤĤƤξޤ
1.3) PostgreSQL ϤɤʤäƤޤ
PostgreSQL ϲ˽ޤ
PostgreSQLϸŤBSD饤βۤƤޤϴŪˤϡ
ѼԤΥɤѤ뤳ȤƤޤ¤ȤС
ΥեȥȼʤˤƤˡŪǤ桹碌뤳Ȥ
ʤȤȤǤޤɽΥեȥΤ٤Ƥʣɽ
뤳ȤɬפǤʲˡ桹ºݤ˻ȤäƤBSDѵޤ
[
ʸϱѸǤͤȤơʸʻǺܤޤ
]
PostgreSQL Data Base Management System
Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group Portions
Copyright (c) 1994-1996 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.
POSTGRESQL ǡ١ƥ
ʬŪ (c) 1996-2007, PostgreSQLݳȯ
ʬŪ (c) 1994-1996 ե˥ܹ
ܥեȥӤʸ켰Ͼ嵭ɽȡʸ
Ӥ³ĤƤʣźդƤ¤ˤ
ơѡʣդεĤʤŪǤäƤ⡢
̵ǤƱս̵˹Ԥʤ뤳Ȥǧޤ
ե˥ؤϡʤԤˤƤ⡢פβ
ޤࡢľŪŪ̡뤤ɬŪˤ餺
»ˤĤơȤե˥ؤ»ˤĤ
ƤȤƤ⡢ڤǤ餤ޤ
ե˥ؤϡŪˤۤݾڤȡŪ
Ŭ˴ؤƤϤȤꡢ˸¤餺ʤݾڤ
뤳ȤޤʲѰդ줿եȥϡ֤Τޤޡפ
ܸȤե˥ؤϤݻٱ硢ɤ
뤤Ͻ̳餤ޤ
[
˴ؤʸϾ嵭αѸˤɽǤܸϤޤ
٤ȤƤ
]
1.4) PostgreSQLݡȤץåȥۡϡ
ŪˡǶUnixߴץåȥۡǤPostgreSQLƯϤ
λǼºݤ˥ƥȤԤʤäȤ𤬤ʤ줿ץåȥۡ
ĤƤϥȡƤޤ
PostgreSQL ϡWin2000 SP4, WinXP, ơWin2003 ʤ Microsoft Windows NT
Υڥ졼ƥƥǡͥƥ֤ޤ餫ѥå
줿ȡ餬 http://pgfoundry.org/projects/pginstaller ˤꡢѤǤ
ޤMSDOS١WindowsΥС(Win95, Win98, WinMe)ǤϡCygwinȤä
PostgreSQL 餻뤳ȤǤޤ
[
pgInstaller FTPߥ顼Ȥ win32 ǥ쥯ȥ꤫ǽǤ
http://www.postgresql.org/mirrors-ftp.html
ܤϡ WindowsǤ˴ؤFAQ
http://old.postgresql.jp/wg/jpugdoc/FAQ_windows.ja.html
]
ΥȤ Novell Netware 6 ؤΰܿǤ⤢ޤ http://forge.novell.com
OS/2 (eComStation) Сϡ http://hobbes.nmsu.edu/cgi-bin/h-search?
sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2Fˤޤ
1.5) PostgreSQL ϤɤǤޤ
Web֥饦ͳȡ http://www.postgresql.org/ftp/줫顢ftpͳȡ
ftp://ftp.PostgreSQL.org/pub/ Ȥޤ
1.6) ǿΥϤɤǤ
PostgreSQL κǿǤϥС 8.2.4 Ǥ
桹ϡ1ǯ˥㡼ȤΥޥʡԤʤȤ
褷Ƥޤ
[
Сֹ x.y.z κǽ x.y 㡼ֹ
Ǹ z ޥʡֹˤʤޤ㡼
ֹ椬ƱǤСǡ١饹˸ߴޤ
]
1.7) ݡȤϤɤǼޤ
PostgreSQL ߥ˥ƥ¿Υ桼ΤˡŻҥͳλٱƤ
ޤŻҥꥹȤ֥饤֤뤿ΥᥤȤʤ륦֥Ȥ
http://www.postgresql.org/community/lists/Ǥ줫顢ϤΤǤ
general ޤϡbugs ȤäꥹȤ褤Ǥ礦
㡼IRC ͥϡFreenode (irc.freenode.net) #postgresql Ȥ
ͥǤUNIX ޥɤǤϡ irc -c '#PostgreSQL' "$USER" irc.freenode.net
ȤäƻäǤޤƱͥåȥˡڥΥͥ (#
postgresql-es)եΥͥ (#postgresqlfr)֥饸ͥ (#
postgresql-br) ⤢ޤޤEFNetˤPostgreSQLͥ뤬ޤ
[:
1999ǯ723ܥݥȥ쥹桼άJPUGΩޤ
JPUG ȿǡPostgreSQLѤã߶ϤξȤʤäƤޤ
(2006ǯ ư(NPO)ˡPostgreSQL桼ˤʤޤ
Webβ̵ǤβȲι
ϱĤƤޤ)
ܤϡJPUG Web :
http://www.PostgreSQL.jp/
ܸIRCͥ '#PostgreSQL:*.jp' ¸ߤޤ
]
ѥݡȲҤΥꥹȤ http://www.postgresql.org/support/
professional_supportˤޤ
1.8) ХݡȤϤɤΤ褦ȯޤ
http://www.postgresql.org/support/submitbug PostgreSQL ХեˬƤ
ХݡȤФˤĤƤμȻؿˤޤ
Ʊ ftp ftp://ftp.PostgreSQL.org/pub/ ǡǿС
PostgreSQL õƤߤƤ
1.9) ΤΥХ̵̤ǽϤɤäƸĤޤ
PostgreSQLϳĥ줿SQL:2003Υ֥åȤݡȤޤ桹Υڡ TODO
ꥹȤˡΤΥХǽ侭ײˤĤƤεҤޤ
ħ̼Τ줫βˤޤ
ˤˤ뵡ǽϡ TODO ꥹȤǤ
Τ褦ʵǽޤƤޤϡ
SQLʤ˽ऺ¸εǽȽʣ
ɤʣФơΤʤǽ
Τʤǽ
ǽϡ TODO ΥꥹȤ˲äޤ
桹ϡPostgreSQL ˴ؤơŻҥľб TODO ꥹȤǿ˹
Ƥ椯ۤŪǤ뤳ȤΤäƤޤΤǡХץƥϻȤޤ
¤ˡΥեȥǥХϤۤĹϤ³ޤ¿Υ
˱ƶХޤ˽ޤPostgreSQLΥǡ٤Ƥѹ
ơΤꤿС CVS ΥåƤ
ΡȤˤΥեȥ˲ä줿٤Ƥѹ夵Ƥ
1.10) ɤΤ褦ʸޤ
դˡĤΥޥ˥奢ȥ饤ޥ˥奢(ޥ˥奢롦ڡ)
ӤĤξʥƥ꤬ޤޤޤ /docǥ쥯ȥ
ޤޥ˥奢ϡ http://www.PostgreSQL.org/docs/ǥ饤ǤǤ
[:
JPUG ʸҴϢʬʲ줿ޥ˥奢⤢ޤ
http://www.postgresql.jp/document/pg803doc/
ץ쥹顢
PostgreSQLեޥ˥奢ȤƽǤƤޤ
]
饤ǻȤǤ PostgreSQL ܤ2ޤ http://www.PostgreSQL.org
/docs/books/awbook.html
[:
ܤϡJPUGPostgreSQL Bookʬʲ
졢ԥ
֤ϤƤPostgreSQLפȤƽǤƤޤ
]
ӡ http://www.commandprompt.com/ppbook/Ǥ
[:
ˮϡּ PostgreSQL
饤ǤƤޤ
]
ǽʽҤϿϡhttp://techdocs.PostgreSQL.org/techdocs/bookreviews.php
ˤޤ PostgreSQL Ѿ⡢http://techdocs.PostgreSQL.org/ ˤ
ޤ
[:
ܸνˤĤƤϡPostgreSQL桼Ρhttp://www.postgresql.jp/PostgreSQL/references.html
⤴
]
ޥɥ饤Υ饤ȥץpsql ˤ⡢黻ҡؿ¾
ξĴ٤뤿ˡ餷 \d ޥɤĤޤ \? Ϥ
Ѳǽʥޥɤɽޤ
桹 Web Ȥˤϡʸޤ
1.11) SQL Ϥɤгؤ٤ޤ
ޤ嵭ǽҤ٤ PostgreSQL ˤĤƤܤɤळȤƤƤ⤦
ȤĤϡ "Teach Yourself SQL in 21 Days, Second Edition" at http://
members.tripod.com/er4ebus/sql/index.htmǤ
The Practical SQL Handbook, Bowman Judith S. et al., Addison-Wesley ¿Υ
˹ɾǤۤǤϡThe Complete Reference SQL, Groff et al., McGraw-Hill
ɾǤ
餷ϡ
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 ˤޤ
[:
PostgreSQL桼ܸλʸξҲڡ
http://www.postgresql.jp/PostgreSQL/references.html
ޤ
ƣľʸΡֽ鿴ԸΣģ߷硦ӣѣ绲ͽҲפΥʡ
http://www.shonan.ne.jp/~nkon/ipsql/books_SQL.html
ޤ(Ť2000ǯ)
ѱѻΡPostgreSQLܸޥ˥奢
http://www.net-newbie.com/
Ǥϥ饤ޥ˥奢θǤޤ
ݻUNIX ǡ١
http://www.wakhok.ac.jp/DB/DB.html
⥪饤ɤळȤǤޤ
Nikkei BP IT Pro ˤаã PostgreSQL å
ǤȤꤢƤޤ
]
1.12) ѥåꡢȯäˤϤɤФ褤Ǥ
ʳȯԸΡDeveloper's FAQ
1.13) ¾DBMSPostgreSQLϤɤʤΤǤ
եȥפˡˤϤĤޤǽǽȿȥݡȤȲ
Ǥ
ǽ(Features)
PostgreSQLϡȥ֥ꡢȥꥬӥ塼
ȡӡ줿åʤɡ絬Ͼ DBMSĵǽۤȤ
ɻäƤޤ PostgreSQLϡ桼Ѿ롼롢줫顢
å̾ޥСƱʤɡDBMS碌
褦ʵǽĤ碌Ƥޤ
ǽ(Performance)
PostgreSQL¾ξѤ뤤ϥץΥǡ١ȸ߳Ѥǽ
ޤ̤ǤϤᤫäꡢ̤ۤǤϤ٤äꤷޤ¾Υǡ
١٤ǽϡդĤ +/-10% 餤Ǥ礦
(Reliability)
桹ϡDBMSο⤯ʤƤϤβ̵ͤȤƤޤʬ
ȤơꤷɤХǾˤƤ褦ؤƤޤ
줾ΥϾʤȤ1 ʾΥ١ƥȤԤʤ
ǤΥǤȤưꤷǤʥǤ뤳Ȥʪ
ƤޤʬǤϡ¾Υǡ١٤Ƥ½ʤȤ˼
äƤޤ
ݡ(Support)
桹ΥꥹȤϡ뤤ʤˤĤƤؤμ
Ƥ롢ȯԤ桼礭ʽޤؤƤޤ桹
βݾڤ뤳ȤϤǤޤѥǡ١ǤäƤ˲褵
櫓ǤϤޤȯԤ䡢桼ߥ˥ƥޥ˥奢ࡢ
ɤʤɤľܥǤ뤳ȤˤäơPostgreSQLΥݡȤ
¾DBMS ݡȤͥ줿ΤȤʤäƤޤ˾ơ
ѥݡȤʤɤ⤢ޤFAQ1.7ˡ
(Price)
PostgreSQLѤϡѤǤѤǤ⡢٤̵Ǥ嵭˼ƤBSD
λѵ˳ʤ¤ꡢPostgreSQLΥɤ̵ǾʤȤ
ळȤǤޤ
1.14) PostgreSQLϹκǿβƻ֤ѹޤ
罣βƻ֤ѹϡPostgreSQLΥ8.0.4ʹ[4+]ȡθΥ㡼
Ȥ 8.1 ˤϴޤޤƤޤʥȥȥꥢѹϡ
8.0.[10+], 8.1.[6+] ӡθΥ㡼Τ٤Ƥ˴ޤޤޤ8.0
PosrgreSQLǤϥڥ졼ƥƥΥॾǡ١ƻ
Τ˻ȤäƤޤ
桼饤Ȥμ
2.1) PostgreSQL ˤϤɤʥեȤޤ
PostgreSQL Υȡ˴ޤޤʪCȹ CΥեǤ
¾ΥեΩץȤǡ̡˥ɤޤ
ʬ뤳Ȥǡ줾γȯबȼΥ塼ĤȤ
ޤ
PHP Τ褦ʤĤΥץߥϡ PostgreSQLΥեޤ
ǤޤPerl, TCL, Python, ơΤۤѲǽʸΥե
ϡ http://gborg.postgresql.org Drivers/Interfaces ȥͥå
θǤߤĤޤ
2.2) PostgreSQL Web ڡϢȤˤϤɤʥġ뤬ޤ
ǡ١˻ Web ڡˤĤƤ餷Ҳ𤬡
http://www.webreview.comˤޤ
Web ؤγĥΤˤϡPHP(http://www.php.net/) ۤեȤ
äƤޤ
[:
PHP˴ؤܸξϡ2000ǯ419ȯPHP桼Υ
http://www.php.gr.jp/
뤤ϡע वΥ
http://www.geocities.jp/rui_hirokawa/php/
ˤʤޤȤƤޤ
]
ʣʾ硢¿οͤ Perl ե CGI.pm mod_perl Ȥ
ޤ
2.3) PostgreSQL ˥ե롦桼եϤޤ
ѤȥץȯԤˤξǡPostgreSQLˤ¿GUIġ뤬
ǽǡܺ٤ʥꥹȤϡPostgreSQLߥ˥ƥʸǤ
μ
3.1) ɤΤ褦ˤ /usr/local/pgsql ʳξ˥ȡǤޤ
ñˡϡ configure 餻Ȥ --prefix ץꤹ뤳ȤǤ
3.2) ¾ΥۥȤ³ϤɤΤ褦椷ޤ
ͤǤϡPostgreSQL Unix ɥᥤåȡޤϡTCP/IP³Υ
³ޤpostgresql.conf listen_addresses
ġ$PGDATA/pg_hba.conf եŬڤľơۥȼƳǧڤͭˤ
ʤϡ¾Υޥ³ǤʤǤ礦
3.3) ɤǽ뤿ˤϡǡ١ɤΤ褦Ĵޤ
ǽβǽΤꤽʼΰ褬3Ĥޤ
ѹ
Ƥɤǽ뤳Ȥޤߤޤ
ʬǥåޤࡢǥå
ʣINSERTΤCOPY
ʣʸ롼ײ1ĤΥȥˤƥߥåȤΥХإ
ɤ︺
ǥå餫ΥФȤCLUSTER
νϤΥ֥åȤ֤LIMIT
Ƥ륯
ץƥޥΤפݻ뤿ANALYZE
VACUUM ޤ pg_autovacuum ξ
礭ʥǡѹΤȤϥǥå
й
postgresql.confΤĤǽ˱ƶޤܤϡ
Administration Guide/Server Run-time Environment/Run-time Configuration
ꥹȤ( JPUGȤܸ)ơȤơ
http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html
ӡ http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html
ϡɥ
ǽˤϡɥαƶ http://www.powerpostgresql.com/PerfList/
ȡ http://momjian.us/main/writings/pgsql/hw_performance/index.html (JPUG
Ȥܸ) ˽Ҥ٤Ƥޤ
[:
JPUGĹҲ͵ˤ롢ֺǤPostgreSQL塼˥
Ȥʡ ThinkIT ȤˤꡢºȤλͤˤʤޤ
http://www.thinkit.co.jp/free/tech/10/1/1.html
]
3.4) ɤΤ褦ʥǥХǽȤޤ
йѿˤ¿ log_* ꡢȥץפϤ뤳Ȥ
ǥХǽ¬ˤȤƤǤ
3.5) ³褦ȤȤ 'Sorry, too many clients' ФΤϤʤǤ
Ǥ¤Ǥ 100 Υǡ١åãƤޤäƤޤ
postmasterƱ³ǤХåɥץ¿䤹ɬפޤ
postgresql.conf max_connections ͤѹ postmasterƵư뤳
ȤDzǽˤʤޤ
3.6) PostgreSQLΥåץ졼ɤμϤɤʤޤ
СֹդˤˤĤơ̤ˤĤƤβ http://
www.postgresql.org/support/versioning ơܺ٤ˤĤƤ http://
www.postgresql.org/docs/current/static/install-upgrading.html
ǽPostgreSQLΥ㡼Ϥǯ1ٹԤʤޤ
㡼ϡȤС8.18.2ؤΤ褦ˡСֹ1ܤ2
ܤʬ䤷Ƥ椭ޤ
PostgreSQLΥ㡼̾ƥơ֥ȥǡեޥå
ѹޤѹϤƤʣʤΤǤǡǡեθߴ
ݻϤޤ㡼åץ졼ɤΤˤϡǡ١Υ/
ɤɬפˤʤޤ
ޥʡϡȤС8.1.5 8.1.6ؤΤ褦ˡСֹ3
ͤ䤷ޤPostgreSQLϡޥʡФƤϡХե
Ԥʤޤ٤ƤΥ桼ϡǤǿΥޥʡ˹
Ǥåץ졼ɤˤϡ˥ꥹĤΤǤ顢PostgreSQLΥޥʡ
Ǥϡˤȯꡢƥ˴طꡢǡĤ֤
Хåץ졼ɤΥꥹǾ¤ˤȤɤޤ桹Υߥ˥
Ǥϡåץ졼ɤꥹ⡢åץ졼ɤʤꥹΤۤ⤤
ȹͤƤޤ
ޥʡΥåץ졼ɤˤϥפȥꥹȥɬפϤʤǡ١
ФߤơåץǡȤ줿Хʥȡ뤷Фꥹ
Ȥޤ
3.7) ϡɥˤϤɤΤ褦ʥԥ塼ȤФ褤Ǥ
PCϡɥϤۤȤɸߴޤΤǡۤȤɤοͤϡ٤ƤPCϡ
ƱʼȻפޤϴְ㤤ǤECC RAM
SCSIӡʼޥܡɤϡ¤ϡɥ٤ȡ꿮
ǽɤΤǤ PostgreSQL ϤۤȤɤΥϡɥDzƯޤ
ǽפʾϡΥϡɥΥץˤĤĴ뤳
ȤǤ桹ΥꥹȾǤϡɥץΥȥ졼ɥ
ˤĤƵ뤳ȤǤޤ
μ
4.1) ǽοΤߤ SELECTˤϤɤޤʥ
äοԤΥФˡɬפ狼С SELECT ΤȤ
LIMIT Ȥޤ ORDER BY˥ǥåޥå硢ޤä꤬¹
ʤȤ⤢ޤSELECT ΤȤ˲ԤɬפΤʤС
FETCHޤ
SELECTˤϡʸȤޤ
SELECT col
FROM tab
ORDER BY random()
LIMIT 1;
4.2) 줿ơ֥롢ǥåǡ١ӡ桼ɤΤ褦
ƸĤФޤpsqlǻȤƤ륯ɽˤϤɤޤ
psql \dtޥɤȤäƥơ֥뤳ȤǤޤpsql \?
äơޥɤꥹȤĴ٤뤳ȤǤޤǡpsql Υɤǡ
Хåå女ޥɤϤ pgsql/src/bin/psql/describe.c եɤ
ȤǤޤˤϡ SQL ޥɤʬޤޤޤޤ -E
ץդ psql ϤȡϤ줿ޥɤ¹Ԥ뤿Υ
Ϥ褦ˤʤޤ 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) ơ֥롢ǡ١κ祵ϡ
¤ϰʲΤȤǤ:
ǡ١κ祵? ̵ (32 TB Υǡ١¸ߤ
)
ơ֥κ祵? 32 TB
κ祵? 400 GB
եɤκ祵? 1 GB
ơ֥Ǥκ? ̵
ơ֥Ǥκ祫? ηˤä 250-1600
ơ֥Ǥκ祤ǥå ̵
?
ϼºݤ̵¤ǤϤʤǥ̤ȥ䥹åץڡ
礭ˤ¤ޤǽϤͤȤΤۤ礭ʻ
ޤ
ơ֥륵32TBϥڥ졼ƥƥˤեΥݡ
ɬפȤޤʥơ֥ʣ1GBΥեʬ¸ޤΤǡ
ե륷ƥ¤ϽפǤϤޤ
ǥեȤΥ֥å32kä뤳Ȥǡơ֥륵ȹԥ
祫Ȥ4ܤˤ뤳ȤǤޤޤơ֥륵ϥơ֥ѡ
ƥȤä䤹ȤǤޤ
ҤȤĤ¤ϡ2,000ʸʾĹΥ˥ǥåդ뤳ȤǤ
ȤǤˤ⡢Τ褦ʥǥåϼºݤɬפޤĹ
MD5ϥåδؿǥåϰʤˤݸǡޤեƥȤ
ǥåǤϥñ뤳ȤǤޤ
4.5) ŪʥƥȥեΥǡ¸ˤϡǡ١Υǥ
ϤɤΤ餤ɬפǤ
̤Υƥȥե PostgreSQL Υǡ١¸ˤϡ5ܤ
ǥ̤ɬפȤޤ
ȤơƹԤȥƥȵҤ 100,000ԤΥեͤƤߤޤ
ƥȤʸʿĹ20ХȤȲꤹȡեåȥե礭
2.8MB ǤΥǡޤ PostgreSQL ǡ١ե礭ϼ
褦5.2MBȸѤ뤳ȤǤޤ
24 bytes: ƥΥإå()
24 bytes: (int)եɤȥƥ(text)ե
+ 4 bytes: ڡΥåץؤΥݥ
----------------------------------------
52 bytes per row
PostgreSQL Υǡڡ 8192Х(8KB)ʤΤ:
8192 bytes per page
------------------- = 146 rows per database page (ڤΤ)
52 bytes per row
100000 data rows
-------------------- = 633 database pages (ڤ夲)
158 rows per page
633 database pages * 8192 bytes per page = 5,185,536 bytes (5.2 MB)
ǥåϡۤɤΥХإåɤᤷޤǥåդ
ǡޤʾ塢ʤ礭ʤޤ
NULLϥӥåȥޥåפȤ¸Ƥơ餬鷺˥ڡȤޤ
4.6) ꤬٤ΤϤʤǤ礦ʤǥåȤʤΤǤ礦
ǥåϡ٤ƤΥǻȤ櫓ǤϤޤơ֥뤬Ǿ
礭ǤΤ鷺ʥѡơΥ
åϻȤޤϥǥåˤ굯ʥǥ
ϡơ֥ȥ졼Ȥɤ缡٤ʤ뤳Ȥ뤫
ǥåȤꤹ뤿ˡPostgreSQL ϥơ֥ˤĤƤ
ʤФʤޤϡ VACUUM ANALYZEޤϡñ ANALYZE
ȤäƼ뤳ȤǤޤȤäƥץƥޥϥơ֥ˤ
ΤꡢǥåȤ٤ηǤޤ
ŬʷˡǤŤʤΤ⤢ޤμϡ
֥ƤѤ˷֤ʤ٤Ǥ
ǥåϡ̾ ORDER BY ԤʤˤϻȤޤ缡
³ŪȤϡʥơ֥Υǥå̤Ϲ®Ǥ
ORDER BYȤ߹蘆줿LIMIT ϡơ֥ξʬ֤ˤ
ӥǥåȤǤ礦
⤷ץƥޥְäƥ륹Ȥ˵ʤ
СSET enable_seqscan TO 'off'ꤷơ⤦ټ¹Ԥǥå
ޤʤ®ʤäƤ뤫ɤߤƤ
LIKE 뤤 ~ Τ褦ʥ磻ɥɱ黻Ҥ̤ʴĶǤȤޤ
ʸʸκǽˤޤȤС
LIKE ѥ%ǻϤޤʤ
~ (ɽ) ѥ^ǻϤޤʤФʤʤ
ʸʸ饹Ϥ뤳ȤϤǤޤȤС[a-e]
ILIKE ~* Τ褦ʸȾʸ̤ʤϻȤޤΤ
FAQ4.8뼰ǥåȤޤ
initdb ˤƤϡǥեȤC뤬ȤʤƤϤʤޤ
ͳϡCʳǤϼ礭ʸΤ뤳ȤǤʤǤΤ褦
ʾ硢
LIKE
ǥˤƯ褦ʡ̤
text_pattern_ops
ǥå뤳ȤǤޤ
8.0ΥǤϡǥåϡǡ礦ɥǥåΥ
ηȰפʤСȤʤȤФФޤ餯int2, int8,
numeric ΥΥǥåǤ
4.7) 䤤碌ץƥޥɤΤ褦䤤碌ɾΤˤϤɤ
ޤ
饤ޥ˥奢 EXPLAIN Ƥ
4.8) ɽǤθʸȾʸȤ̤ʤɽϤɤΤ褦˼¸
ޤʸȾʸȤ̤ʤΤΥǥåϤɤΤ褦˻Ȥ
ޤ
~黻ҤɽȹԤʤ~* ʸȾʸ̤ʤ
(case-insensitive)ɽȹԤޤʸȾʸ̤ʤ LIKE 黻
Ҥ ILIKE Ȥޤ
ʸȾʸ̤ʤӤϼΤ褦ɽǤ롧
SELECT *
FROM tab
WHERE lower(col) = 'abc';
ɸ।ǥåǤϻȤ줺ʤ顢⤷ǥåäʤ餽
줬ȤǤ礦
CREATE INDEX tabindex ON tab (lower(col));
嵭ΥǥåUNIQUEǺ줿硢ʸȾʸǼǤ
ΰ㤤ʸǤäƤƱˤϤʤޤʸ
˳Ǽˤ CHECKȥꥬȤäƤ
4.9) ǡեɤNULL Ǥ뤳ȤФˤϤɤޤ NULL
Ǥ뤳ȤФˤϤɤޤեɤNULLɤǤɤΤ褦˥
ȤǤޤ
ʲΤ褦ˡIS NULL IS NOT NULLǡΥƥȤƤߤޤ
SELECT *
FROM tab
WHERE col IS NULL;
NULLβǽΤΤϢ뤹ˤϡCOALESCE()Τ褦˻Ȥޤ
SELECT COALESCE(col1, '') || COALESCE(col2, '')
FROM tab
NULL֤ǥȤˤϡIS NULL IS NOT NULL νҤ ORDER BY ǻ
äƤߤޤ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-byte safe)
"char" char 1ʸ
̾ˤܤˤΤϡƥࡦĴ٤Ȥ䡢顼å
ȤǤ
嵭ηΤǽΣĤη "varlena" Ǥ(ʤǥκǽΣ
ȤǡĹǡθ˼ºݤΥǡ³ޤ)Τ褦˼ºݤζ֤
줿礭⾯礭ʤޤĹͤϰ̤Τǡǥ
ζ֤ϻפä⾮ʤޤ
VARCHAR(n) ϲĹʸ¸Τ˺ŬǤ¸ǤʸĹ
¤ޤTEXT Ť̵ʸ¸ΤΤΤǡ 1
ȤǤ CHAR(n)ϡVARCHAR(n)Ϳ줿ʸ¸ΤФ֥
ͤǤĤƱĹʸ¸Τ˺ŬǤBYTEAϡʬŪ
NULL ΥХȤޤХʥǡ¸뤿ΤΤǤΥפƱ
餤ǽޤ
4.11.1) (serial)ưʬեɤϤɤΤ褦ˤĤޤ
PostgreSQL SERIAL ǡݡȤޤ˥ư
ޤȤС
CREATE TABLE person (
id SERIAL,
name TEXT
);
ϼưŪ˼Τ褦ޤ:
CREATE SEQUENCE person_id_seq;
CREATE TABLE person (
id INT4 NOT NULL DEFAULT nextval('person_id_seq'),
name TEXT
);
[
CREATE UNIQUE INDEX person_id_key ON person ( id );
ϡ 7.3 ʹߤϼưŪˤϹԤʤʤʤޤ
]
֤ˤĤƤΤäȾܤϡ饤ޥ˥奢 create_sequence
4.11.2) SERIALǡͤϡɤޤ
ҤȤĤˡϡnextval() ؿȤäƤͤ(before) SEQUENCE
֥Ȥ鼡 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 ơ֥
볰(foreign key)Τ褦)ȤȤ褤Ǥ礦ưŪ˺줿SEQUENCE
֥Ȥ̾ϡ<table>_<serialcolumn>_seq Τ褦ˤʤꡢΤtable
serialcolumn Ϥ줾ơ֥̾SERIAL̾Ǥ
뤤ϡͿ줿SERIALͤ줬ͤȤ줿(after)
currval() ؿȤäƼФȤǤޤȤС
execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");
new_id = execute("SELECT currval('person_id_seq')");
4.11.3) currval() ¾Υ桼Ȥζ֤˴٤뤳ȤϤʤǤ
Ϥޤcurrval() ϡ٤ƤΥ桼ǤϤޤɼԤΥå
Ϳ줿ߤ֤ͤޤ
4.11.4) ȥǤȤˤ⤦ɥֹ椬Ȥʤ
ϤʤǤSERIAL˶ΤϤʤǤ
Ʊ뤿ˡ¹Υȥˡɬפ˱ƥȥ
λޤǥåʤ褦ͤͿƤޤΤȥ
ǤֹƤ˥åפޤ
4.12) OID ȤϲǤ CTID ȤϲǤ
ơ֥뤬WITH OIDSǤĤ줿ϡ줾Υ˰դOIDޤ
OIDϼưŪ4ХȤͿ졢ϡȥ졼̤ư
ͤȤʤޤ40ǥСեơOIDϽʣϤ
PostgreSQLƥơ֥˥뤿OID Ȥޤ
桼Υơ֥Υ˰դֹդ뤿ˤϡ OID ǤϤʤ SERIAL
ΤǤ褤Ǥ礦SERIALϢ֤1ĤΥơ֥ǤΤ߰դˤʤ뤫ǡ
Сեˤȹͤޤ 8ХȤΥͤ¸뤿
ˡSERIAL8ޤ
CTID ϡʪ֥åȥեåȤͤǼ̤뤿˻Ȥޤ
CTIDϡ줿ɹߤ줿ȤѤޤޤʪ
˥ǥåεܤ˻Ȥޤ
4.13) 顼å "ERROR: Memory exhausted in AllocSetAlloc()"ФΤϤ
Ǥ
餯ƥβۥƻȤ̤ƤޤäƤǽ뤫
ͥ뤬ˤĤƤͤ㤹ǽޤpostmaster
ưˤƤߤƤ
ulimit -d 262144
limit datasize 256m
ˤäơɤ餫ҤȤĤǤ礦ϥץΥǡ
¤⤯ꤷ֤꤬뤹褦ˤʤǤ礦Υ
ɤϸԤΥץȡΥޥɤ餻˺ƤΥ֥ץ
ĤŬѤޤХåɤȤƤ¿Υǡ֤SQL 饤
Ȥ꤬³ƤΤǤС饤ȤϤˤƤߤƤ
4.14) ɤΥС PostgreSQL 餻Ƥ뤫Ĵ٤ˤϤɤޤ
psql SELECT version(); פޤ
4.15) ߤλ郎ǥեȤȤʤ褦ʥϤɤΤ褦ˤĤޤ
CURRENT_TIMESTAMPȤޤ:
CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
4.16) (outer join)ϤɤΤ褦˼¸ޤ?
PostgreSQL SQL ɸʸȤ(祤)ݡȤޤ
2Ĥ꤬ޤ
SELECT *
FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
뤤
SELECT *
FROM t1 LEFT OUTER JOIN t2 USING (col);
ξħŪʥǤ t1.col t2.col ȷ礷ơt1 η礵ʤä
(t2 Ȱפʤä)֤ƤޤRIGHT t2 η礵ʤä
äǤ礦FULL ϡפ t1 t2 Ϸ礵ʤä
֤Ǥ礦OUTER Ȥդϥץ LEFT, RIGHT, ޤ FULL
ɤηꤵƤޤ̾INNERȸƤФޤ
4.17) ʣΥǡ١Ȥ䤤碌ϤɤΤ褦ˤФǤޤ
ԤΥǡ١ʳؤ䤤碌ˡϤޤȤΤPostgreSQL
ǡ١ͤΥƥ५ɤ߹िǡˤϡȤΤդ
ˤǡ١ۤ䤤碌뤹٤ޤ
contrib/dblink ϥǡ١(cross-database)䤤碌ؿƽФˤ
ޤ饤ȤƱ³̤Υǡ١ؤĥʤƤϤ
餺̤饤¦ǥޡʤƤϤʤޤ
4.18) ؿʣΥޤϥ֤ˤϤɤޤ
֤ؿ(Set Returning Functions): http://www.postgresql.org/docs/
techdocs.17
ȤȴñǤ
4.19) PL/PgSQL δؿǰơ֥˥Ȥɤ "relation
with OID ##### does not exist" Ȥ顼ΤǤ礦
PL/PgSQL ϴؿץȤå夷Թˤ⤽Ѥǡ PL/PgSQLؿ
ơ֥˥硢ǤΥơ֥äƺʤ졢ؿ
ٸƤӽФȡδؿϥå夷ƤؿƤϤޤŤơ
֥ޤޤǤΡȤơPL/PgSQL EXECUTE
ơ֥ؤΥΤ˻Ȥޤȡѡľ
褦ˤʤޤ
4.20) ɤΤ褦ʥץꥱΥ塼ޤ
֥ץꥱפȰǤޤץꥱ뤿εѤϤ
Ĥꡢ줾졢ȷޤ
ޥ졼֤ΥץꥱϡɤߡΥ륷ޥ
ǽǡ졼֤ǤɤߡSELECT䤤碌դ뤳ȤǤޤ
Ǥ͵롢եѤǤ롢ޥݥ졼֤PostgreSQLץꥱ
塼ϡ Slony-I Ǥ
ޥݥޥΥץꥱϡɤߡΥȤꡢʣΥץ
Ȥ륳ԥ塼뤳ȤǤޤεǽϡд֤ѹƱ
ɬפʤᡢǽ˽ʾͿޤ PGCluster ϡΤ褦ʥ塼
ȤPostgreSQLΤ˥եѤǤΤȤơǤ͵ޤ
¾ˤ⡢Ѥϡɥݥ١Υץꥱ塼
ʥץꥱǥݡȤƤޤ
4.21)ơ֥ȥ̾ǧʤΤϤʤǤʤʸ
(ԥ饤)ϲ¸ʤΤǤ?
ǧ줿̾ΤäȤŪʸϡơ֥ݤˡơ֥䥫
ϤŰλѤǤŰȤȡơ֥ȥ̾ʼ
ҤȤޤˤʸȾʸζ̤ƳǼޤäơpgAdminΤ
˥ơ֥ΤȤ˼ưŪŰȤΤϥǤ̾
ȤȤŰդʤƤϤʤʤȤ̣ޤΤᡢ̻
ǧ뤿ˤϰʲΤ줫ޤ
ơ֥ȤŰǼ̻ҤϤȤ
̻ҤˤϾʸȤ
ǻȤȤŰǼ̻ҤϤ
ܸ˴ؤ
5.1)ܸ줬ޤʤΤϤʤǤ
createdb -Eޥɥץ UTF8 뤤 EUC_JP Υǥꤷ
ƥǡ١Τ褦˥ǥꤷƥǡ١
Ƥ
CREATE DATABASE dbname WITH ENCODING 'UTF8';
⤷ϡ
CREATE DATABASE dbname WITH ENCODING 'EUC_JP';
5.2) psql Windows饢Ȥˡܸ줬ʸΤǤ
psqlǥ饤ȤΥǥꤷƤ
SET client_encoding TO 'SJIS'
PostgreSQLǡ١Υǥ˻Ȥܸʸɤ EUC_JP
UTF-8(UNICODE) Ǥ뤿ᡢShift-JISɽΥޥɥץץȤϡ
client_encodingꤷƤʤȡܸɽݤʸޤ
ܸǤˤĤơ
[
ܸǤˤĤƤϰʲ̤Ǥ
ǽ: 2007ǯ0425
: ¼ (Jun Kuwamura <juk at PostgreSQL.jp>)
FAQκˤ궨ϤƤä(ɾΤάƤޤ):
̭(Minoru TANAKA <Tanaka.Minoru at keiken.co.jp>)
а ã(Tatsuo ISHII <ishii at sraoss.co.jp>)
ƣ ο(Tomohito SAITOH <tomos at elelab.nsc.co.jp>)
Ͼ ȥ(Hajime BABA <baba at kusastro.kyoto-u.ac.jp>)
칬(Kazuyuki OKAMOTO <kaz-okamoto at hitachi-system.co.jp>)
(Shoichi Kosuge <s-kosuge at str.hitachi.co.jp>)
Ƿ(Yoshiyuki YAMASHITA <dica at eurus.dti.ne.jp>)
Ϻ(Sintaro SAKAI <s_sakai at mxn.mesh.ne.jp>)
(Masami OGOSHI <ogochan at zetabits.com>)
ӹ(Toshiyuki ISHIKAWA <tosiyuki at gol.com>)
й(Shigehiro HONDA <fwif0083 at mb.infoweb.ne.jp>)
(Jun SESE <sesejun at linet.gr.jp>)
ë ѹ(Hidetaka KAMIYA <hkamiya at catvmics.ne.jp>)
(Atsushi SUGAWARA <asugawar at f3.dion.ne.jp>)
(Kaori Inaba <i-kaori at sra.co.jp>)
Ϥᡢݥȥ쥹˴ؤ˭٤ܸPostgreSQLꥹȡ
ΤääƤ줿ꡢĤåƤ
JF(Linux Japanese FAQ)ץȡFreeBSD ɥơץ
줫顢ľܤ뤤ϴŪˤäƤ뤹٤ƤΥץ
ߥ˥ƥΤߤʤޤ˴դޤ
ʸ ܲ "Frequently Asked Questions" Υڡ "Japanese FAQ"
ȤܤǤޤ
ޤǿǤϰʲΥȤˤޤ
http://www.PostgreSQL.jp/wg/jpugdoc/ JPUGʸҴϢʬʲ
http://www.linux.or.jp/JF/JFdocs/INDEX-database.html Linux JFץȡ
http://www.linet.gr.jp/~juk/pgsql/ PostgreSQL Notes for Japaneseסԥڡ
ʤ˴ؤ뤴ո(juk at PostgreSQL.jp)ޤǤ
ʢ 륢ɥ쥹 " at " ŬڤľƤȾѤ "@" Ǥ
]