Otvety na chasto zadavaemye voprosy po PostgreSQL
- Data poslednego obnovleniya: Voskresenie 11 aprelya 23:28:03 EDT 2004
+ Data poslednego obnovleniya: CHetverg 6 maya 23:28:03 EDT 2004
Anglijskij variant soprovozhdaet: Bryus Mom'yan (Bruce Momjian)
(pgman@candle.pha.pa.us)
1.1) CHto takoe PostgreSQL? Kak proiznositsya `eto nazvanie?
- PostgreSQL proiznositsya Post-Gres-Q-L (Post-Gres-K'yu-`El). Takzhe, v
- razgovorah ispol'zuetsya imya "Postgres".
+ PostgreSQL proiznositsya Post-Gres-Q-L (Post-Gres-K'yu-`El). Po adresu
+ http://www.postgresql.org/postgresql.mp3 dostupen zvukovoj fajl s
+ primerom kak `eto nuzhno proiznosit'.
- PostgreSQL - `eto rasshirenie SUBD POSTGRES, issledovatel'skij
- prototip novogo pokoleniya SUBD. PostgreSQL odnovremenno sohranyaet
- moschnuyu model' dannyh i obschirnoe kolichestvo tipov POSTGRES, i
- zameschaet yazyk zaprosov PostQuel na rasshirennoe podmnozhestvo SQL.
- PostgreSQL - `eto svobodnoe i polnost'yu otkrytoe programmnoe
- obespechenie.
+ PostgreSQL - `eto rasshirenie SUBD POSTGRES (i po`etomu inogda
+ govoryat prosto "Postgres"), issledovatel'skij prototip novogo
+ pokoleniya SUBD. PostgreSQL odnovremenno sohranyaet moschnuyu model'
+ dannyh i obschirnoe kolichestvo tipov POSTGRES, i zameschaet yazyk
+ zaprosov PostQuel na rasshirennoe podmnozhestvo SQL. PostgreSQL - `eto
+ svobodnoe i polnost'yu otkrytoe programmnoe obespechenie.
Razrabotku PostgreSQL vypolnyaet komanda razrabotchikov, vse
uchastniki kotoroj podpisany na spisok rassylki razrabotchikov. V
Sistema Upravleniya Bazami Dannyh PostgreSQL
- Portion copyright (c) 1996-2002, PostgreSQL Global Development Group
+ Portion copyright (c) 1996-2004, PostgreSQL Global Development Group
Portions Copyright (c) 1994-6 Regents of the University of California
Predostavlyayutsya prava na ispol'zovanie, kopirovanie, izmenenie i
`Eto PgAccess (http://www.pgaccess.org), PgAdmin III
(http://www.pgadmin.org), RHDB Admin (http://sources.redhat.com/rhdb/)
i Rekall ( http://www.thekompany.com/products/rekall/, kommercheskij).
- Takzhe est' PHPPgAdmin ( http://phppgadmin.sourceforge.net/) -
+ Takzhe est' PhpPgAdmin ( http://phppgadmin.sourceforge.net/) -
interfejs k PostgreSQL, osnovannyj na Web.
2.4) Kakie yazyki mogut vzaimodejstvovat' s PostgreSQL?
Po umolchaniyu, PostgreSQL razreshaet tol'ko soedineniya na lokal'noj
mashine cherez sokety domena Unix. Drugie mashiny ne smogut
- podklyuchit'sya k baze poka dlya postmaster ne budet zadan flag -i i
- poka ne budet razreshena host-avtorizaciya v fajle
+ podklyuchit'sya k baze poka ne budet vklyuchena opciya tcpip_sockets v
+ postgresql.conf i poka ne budet razreshena host-avtorizaciya v fajle
$PGDATA/pg_hba.conf. `Eti dejstviya delayut vozmozhnymi TCP/IP
soedineniya.
proizvoditel'nosti?
Nesomnenno, indeksy mogut uvelichit' skorost' vypolneniya zaprosov.
- Komanda EXPLAIN pozvolyaet vam posmotret' kak PostgreSQL
+ Komanda EXPLAIN ANALIZE pozvolyaet vam posmotret' kak PostgreSQL
interpretiruet vash zapros i kakie indeksy ispol'zuyutsya.
Esli vy vypolnyaete mnogo operatorov INSERT, rassmotrite vozmozhnost'
4.3) Kak poluchit' spisok tablic ili drugih komponentov v psql?
- Vy mozhete posmotret' ishodnyj kod psql v fajle
+ CHtoby prosmatrivat' tablicy v psql, ispol'zujte komandu \dt. Polnyj
+ spisok komand v psql vy mozhete poluchit', ispol'zuya \?. Krome togo,
+ vy mozhete posmotret' ishodnyj kod psql v fajle
pgsql/src/bin/psql/describe.c. On soderzhit komandy SQL kotorye
generiruyutsya pri vvode v psql komand, nachinayuschihsya s obratnoj
- kosoj cherty. Vy takzhe moezhete zapustit' psql s opciej -E tak,
- chtoby `eta programma vydavala zaprosy, kotorye ona ispol'zuet dlya
- vypolneniya zadannyh vami komand.
+ kosoj cherty. Vy takzhe mozhete zapustit' psql s opciej -E tak, chtoby
+ `eta programma vydavala zaprosy, kotorye ona ispol'zuet dlya
+ vypolneniya zadannyh vami komand. PostgreSQL takzhe predostavlyaet
+ SQLi sovmestimyj s INFORMATION SCHEMA interfejs, s pomosch'yu
+ kotorogo, vy mozhete sformirovat' zapros na poluchenie informacii o
+ baze dannyh.
4.4) Kak udalit' kolonku iz tablicy ili izmenit' eio tip dannyh?
<BODY bgcolor="#ffffff" text="#000000" link="#ff0000" vlink="#a00000" alink="#0000ff">
<H1>ïÔ×ÅÔÙ ÎÁ ÞÁÓÔÏ ÚÁÄÁ×ÁÅÍÙÅ ×ÏÐÒÏÓÙ ÐÏ PostgreSQL</H1>
- <P>äÁÔÁ ÐÏÓÌÅÄÎÅÇÏ ÏÂÎÏ×ÌÅÎÉÑ: ÷ÏÓËÒÅÓÅÎÉÅ 11 ÁÐÒÅÌÑ 23:28:03 EDT 2004</P>
+ <P>äÁÔÁ ÐÏÓÌÅÄÎÅÇÏ ÏÂÎÏ×ÌÅÎÉÑ: þÅÔ×ÅÒÇ 6 ÍÁÑ 23:28:03 EDT 2004</P>
<P>áÎÇÌÉÊÓËÉÊ ×ÁÒÉÁÎÔ ÓÏÐÒÏ×ÏÖÄÁÅÔ: âÒÀÓ íÏÍØÑÎ (Bruce Momjian) (<A href=
"mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR>
<H4><A name="1.1">1.1</A>) þÔÏ ÔÁËÏÅ PostgreSQL? ëÁË ÐÒÏÉÚÎÏÓÉÔÓÑ ÜÔÏ ÎÁÚ×ÁÎÉÅ?</H4>
<P>PostgreSQL ÐÒÏÉÚÎÏÓÉÔÓÑ <I>Post-Gres-Q-L (ðÏÓÔ-çÒÅÓ-ëØÀ-üÌ)</I>.
- ôÁËÖÅ, × ÒÁÚÇÏ×ÏÒÁÈ ÉÓÐÏÌØÚÕÅÔÓÑ ÉÍÑ "Postgres".</P>
+ ðÏ ÁÄÒÅÓÕ http://www.postgresql.org/postgresql.mp3 ÄÏÓÔÕÐÅÎ Ú×ÕËÏ×ÏÊ
+ ÆÁÊÌ Ó ÐÒÉÍÅÒÏÍ ËÁË ÜÔÏ ÎÕÖÎÏ ÐÒÏÉÚÎÏÓÉÔØ.</P>
- <P>PostgreSQL - ÜÔÏ ÒÁÓÛÉÒÅÎÉÅ óõâä POSTGRES, ÉÓÓÌÅÄÏ×ÁÔÅÌØÓËÉÊ
+ <P>PostgreSQL - ÜÔÏ ÒÁÓÛÉÒÅÎÉÅ óõâä POSTGRES (É ÐÏÜÔÏÍÕ ÉÎÏÇÄÁ
+ ÇÏ×ÏÒÑÔ ÐÒÏÓÔÏ "Postgres"), ÉÓÓÌÅÄÏ×ÁÔÅÌØÓËÉÊ
ÐÒÏÔÏÔÉÐ ÎÏ×ÏÇÏ ÐÏËÏÌÅÎÉÑ <SMALL>óõâä</SMALL>.
PostgreSQL ÏÄÎÏ×ÒÅÍÅÎÎÏ ÓÏÈÒÁÎÑÅÔ ÍÏÝÎÕÀ ÍÏÄÅÌØ ÄÁÎÎÙÈ É ÏÂÝÉÒÎÏÅ
ËÏÌÉÞÅÓÔ×Ï ÔÉÐÏ× POSTGRES, É ÚÁÍÅÝÁÅÔ ÑÚÙË ÚÁÐÒÏÓÏ× PostQuel ÎÁ
<P>óÉÓÔÅÍÁ õÐÒÁ×ÌÅÎÉÑ âÁÚÁÍÉ äÁÎÎÙÈ PostgreSQL</P>
- <P>Portion copyright (c) 1996-2002, PostgreSQL Global Development
+ <P>Portion copyright (c) 1996-2004, PostgreSQL Global Development
Group Portions Copyright (c) 1994-6 Regents of the University of
California</P>
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>, ËÏÍÍÅÒÞÅÓËÉÊ). ôÁËÖÅ ÅÓÔØ
- PHPPgAdmin (<A href="http://phppgadmin.sourceforge.net/">
+ PhpPgAdmin (<A href="http://phppgadmin.sourceforge.net/">
http://phppgadmin.sourceforge.net/</A>) - ÉÎÔÅÒÆÅÊÓ Ë PostgreSQL, ÏÓÎÏ×ÁÎÎÙÊ
ÎÁ Web.</P>
<P>ðÏ ÕÍÏÌÞÁÎÉÀ, PostgreSQL ÒÁÚÒÅÛÁÅÔ ÔÏÌØËÏ ÓÏÅÄÉÎÅÎÉÑ ÎÁ ÌÏËÁÌØÎÏÊ
ÍÁÛÉÎÅ ÞÅÒÅÚ ÓÏËÅÔÙ ÄÏÍÅÎÁ Unix. äÒÕÇÉÅ ÍÁÛÉÎÙ ÎÅ ÓÍÏÇÕÔ ÐÏÄËÌÀÞÉÔØÓÑ Ë
- ÂÁÚÅ ÐÏËÁ ÄÌÑ <I>postmaster</I> ÎÅ ÂÕÄÅÔ ÚÁÄÁÎ ÆÌÁÇ <I>-i</I>
+ ÂÁÚÅ ÐÏËÁ ÎÅ ÂÕÄÅÔ ×ËÌÀÞÅÎÁ ÏÐÃÉÑ tcpip_sockets × postgresql.conf
<B>É</B> ÐÏËÁ ÎÅ ÂÕÄÅÔ ÒÁÚÒÅÛÅÎÁ host-Á×ÔÏÒÉÚÁÃÉÑ × ÆÁÊÌÅ
<I>$PGDATA/pg_hba.conf</I>. üÔÉ ÄÅÊÓÔ×ÉÑ ÄÅÌÁÀÔ ×ÏÚÍÏÖÎÙÍÉ TCP/IP
ÓÏÅÄÉÎÅÎÉÑ.</P>
ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ?</H4>
<P>îÅÓÏÍÎÅÎÎÏ, ÉÎÄÅËÓÙ ÍÏÇÕÔ Õ×ÅÌÉÞÉÔØ ÓËÏÒÏÓÔØ ×ÙÐÏÌÎÅÎÉÑ ÚÁÐÒÏÓÏ×. ëÏÍÁÎÄÁ
- <SMALL>EXPLAIN</SMALL> ÐÏÚ×ÏÌÑÅÔ ×ÁÍ ÐÏÓÍÏÔÒÅÔØ ËÁË PostgreSQL
+ <SMALL>EXPLAIN ANALIZE</SMALL> ÐÏÚ×ÏÌÑÅÔ ×ÁÍ ÐÏÓÍÏÔÒÅÔØ ËÁË PostgreSQL
ÉÎÔÅÒÐÒÅÔÉÒÕÅÔ ×ÁÛ ÚÁÐÒÏÓ É ËÁËÉÅ ÉÎÄÅËÓÙ ÉÓÐÏÌØÚÕÀÔÓÑ.</P>
<P>åÓÌÉ ×Ù ×ÙÐÏÌÎÑÅÔÅ ÍÎÏÇÏ ÏÐÅÒÁÔÏÒÏ× <SMALL>INSERT</SMALL>,
<H4><A name="4.3">4.3</A>) ëÁË ÐÏÌÕÞÉÔØ ÓÐÉÓÏË ÔÁÂÌÉà ÉÌÉ ÄÒÕÇÉÈ
ËÏÍÐÏÎÅÎÔÏ× × <I>psql</I>?</H4>
- <P>÷Ù ÍÏÖÅÔÅ ÐÏÓÍÏÔÒÅÔØ ÉÓÈÏÄÎÙÊ ËÏÄ <I>psql</I> × ÆÁÊÌÅ
+ <P>þÔÏÂÙ ÐÒÏÓÍÁÔÒÉ×ÁÔØ ÔÁÂÌÉÃÙ × <I>psql</I>, ÉÓÐÏÌØÚÕÊÔÅ ËÏÍÁÎÄÕ \dt.
+ ðÏÌÎÙÊ ÓÐÉÓÏË ËÏÍÁÎÄ × <I>psql</I> ×Ù ÍÏÖÅÔÅ ÐÏÌÕÞÉÔØ, ÉÓÐÏÌØÚÕÑ \?.
+ ëÒÏÍÅ ÔÏÇÏ, ×Ù ÍÏÖÅÔÅ ÐÏÓÍÏÔÒÅÔØ ÉÓÈÏÄÎÙÊ ËÏÄ <I>psql</I> × ÆÁÊÌÅ
<I>pgsql/src/bin/psql/describe.c</I>. ïÎ ÓÏÄÅÒÖÉÔ ËÏÍÁÎÄÙ
- <SMALL>SQL</SMALL> ËÏÔÏÒÙÅ ÇÅÎÅÒÉÒÕÀÔÓÑ ÐÒÉ ××ÏÄÅ × psql ËÏÍÁÎÄ,
- ÎÁÞÉÎÁÀÝÉÈÓÑ Ó ÏÂÒÁÔÎÏÊ ËÏÓÏÊ ÞÅÒÔÙ. ÷Ù ÔÁËÖÅ ÍÏÅÖÅÔÅ ÚÁÐÕÓÔÉÔØ
+ <SMALL>SQL</SMALL> ËÏÔÏÒÙÅ ÇÅÎÅÒÉÒÕÀÔÓÑ ÐÒÉ ××ÏÄÅ × <I>psql</I> ËÏÍÁÎÄ,
+ ÎÁÞÉÎÁÀÝÉÈÓÑ Ó ÏÂÒÁÔÎÏÊ ËÏÓÏÊ ÞÅÒÔÙ. ÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÚÁÐÕÓÔÉÔØ
<I>psql</I> Ó ÏÐÃÉÅÊ <I>-E</I> ÔÁË, ÞÔÏÂÙ ÜÔÁ ÐÒÏÇÒÁÍÍÁ ×ÙÄÁ×ÁÌÁ
ÚÁÐÒÏÓÙ, ËÏÔÏÒÙÅ ÏÎÁ ÉÓÐÏÌØÚÕÅÔ ÄÌÑ ×ÙÐÏÌÎÅÎÉÑ ÚÁÄÁÎÎÙÈ ×ÁÍÉ
- ËÏÍÁÎÄ.</P>
+ ËÏÍÁÎÄ. PostgreSQL ÔÁËÖÅ ÐÒÅÄÏÓÔÁ×ÌÑÅÔ <SMALL>SQLi</SMALL>
+ ÓÏ×ÍÅÓÔÉÍÙÊ Ó INFORMATION SCHEMA ÉÎÔÅÒÆÅÊÓ, Ó ÐÏÍÏÝØÀ ËÏÔÏÒÏÇÏ, ×Ù
+ ÍÏÖÅÔÅ ÓÆÏÒÍÉÒÏ×ÁÔØ ÚÁÐÒÏÓ ÎÁ ÐÏÌÕÞÅÎÉÅ ÉÎÆÏÒÍÁÃÉÉ Ï ÂÁÚÅ ÄÁÎÎÙÈ.</P>
<H4><A name="4.4">4.4</A>) ëÁË ÕÄÁÌÉÔØ ËÏÌÏÎËÕ ÉÚ ÔÁÂÌÉÃÙ ÉÌÉ
ÉÚÍÅÎÉÔØ Å£ ÔÉÐ ÄÁÎÎÙÈ?</H4>