|
|
|
@ -12,7 +12,7 @@ |
|
|
|
|
<BODY bgcolor="#ffffff" text="#000000" link="#ff0000" vlink="#a00000" alink="#0000ff"> |
|
|
|
|
<H1>Ответы на часто задаваемые вопросы по PostgreSQL</H1> |
|
|
|
|
|
|
|
|
|
<P>Дата последнего обновления: Четверг 6 мая 23:28:03 EDT 2004</P> |
|
|
|
|
<P>Дата последнего обновления: Вторник 31 августа 23:28:03 EDT 2004</P> |
|
|
|
|
|
|
|
|
|
<P>Английский вариант сопровождает: Брюс Момьян (Bruce Momjian) (<A href= |
|
|
|
|
"mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR> |
|
|
|
@ -78,6 +78,8 @@ |
|
|
|
|
<A href="#3.9">3.9</A>) Что находится в каталоге <I>pgsql_tmp</I>?<BR> |
|
|
|
|
<A href="#3.10">3.10</A>) Почему необходимо делать dump и restore при |
|
|
|
|
обновлении выпусков PostgreSQL?<BR> |
|
|
|
|
<A href="#3.11">3.11</A>) Какое компьютерное "железо" я должен |
|
|
|
|
использовать?<BR> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<H2 align="center">Вопросы эксплуатации</H2> |
|
|
|
@ -239,32 +241,11 @@ |
|
|
|
|
<H4><A name="1.4">1.4</A>) Существуют ли версии перенесенные не на Unix |
|
|
|
|
системы?</H4> |
|
|
|
|
|
|
|
|
|
<P><STRONG>Клиент</STRONG></P> |
|
|
|
|
|
|
|
|
|
<P>Для запуска на платформах MS Windows возможна компиляция C |
|
|
|
|
библиотеки <I>libpq</I>, psql, других интерфесов и клиентских приложений. |
|
|
|
|
В этом случае, клиент запускается на MS Windows и связывается по |
|
|
|
|
TCP/IP с сервером, запущенным на одной из поддерживаемых Unix |
|
|
|
|
платформ. В дистрибутив включается файл <I>win32.mak</I> для того, |
|
|
|
|
чтобы можно было провести сборку библиотеки <I>libpq</I> и |
|
|
|
|
<I>psql</I> для Win32. PostgreSQL также работает через |
|
|
|
|
<SMALL>ODBC</SMALL>.</P> |
|
|
|
|
|
|
|
|
|
<P><STRONG>Сервер</STRONG></P> |
|
|
|
|
|
|
|
|
|
<P>Сервер БД может быть запущен на Windows NT и Win2k, используя |
|
|
|
|
библиотеку Cygwin, разработанную компанией Cygnus для переноса программного |
|
|
|
|
обеспечения Unix в NT. Смотрите <I>pgsql/doc/FAQ_MSWIN</I> в дистрибутиве |
|
|
|
|
или MS Windows FAQ на <A href="http://www.postgresql.org/docs/faqs/text/FAQ_MSWIN"> |
|
|
|
|
http://www.PostgreSQL.org/docs/faqs/text/FAQ_MSWIN</A>.</P> |
|
|
|
|
|
|
|
|
|
<P>PostgreSQL, спортированный специально для MS Win NT/2000/XP в |
|
|
|
|
настоящий момент начал работать. Подробности текущего состояния PostgreSQL |
|
|
|
|
для Windows смотрите на <a href="http://techdocs.postgresql.org/guides/Windows"> |
|
|
|
|
http://techdocs.postgresql.org/guides/Windows</a> и |
|
|
|
|
<a href="http://momjian.postgresql.org/main/writings/pgsql/win32.html"> |
|
|
|
|
http://momjian.postgresql.org/main/writings/pgsql/win32.html</a>. |
|
|
|
|
</P> |
|
|
|
|
<P>Начиная с версии 8.0, PostgreSQL без всяких ухищрений работает на |
|
|
|
|
операционных системах Microsoft Windows, основанных на NT, таких как |
|
|
|
|
Win2000, WinXP и Win2003. Пакет инсталлятора доступен по адресу |
|
|
|
|
<A href="http://pgfoundry.org/projects/pginstaller"> |
|
|
|
|
http://pgfoundry.org/projects/pginstaller</A>.</P> |
|
|
|
|
|
|
|
|
|
<P>Также существует версия спортированная под Novell Netware 6 на |
|
|
|
|
<a href="http://forge.novell.com/">http://forge.novell.com</a>.</P> |
|
|
|
@ -337,7 +318,7 @@ |
|
|
|
|
|
|
|
|
|
<H4><A name="1.7">1.7</A>) Какая последняя версия?</H4> |
|
|
|
|
|
|
|
|
|
<P>Последний выпуск PostgreSQL - это версия 7.4.2</P> |
|
|
|
|
<P>Последний выпуск PostgreSQL - это версия 7.4.5</P> |
|
|
|
|
|
|
|
|
|
<P>Мы планируем выпускать новые версии каждые 6-8 месяцев.</P> |
|
|
|
|
|
|
|
|
@ -660,11 +641,10 @@ |
|
|
|
|
компьютеров?</H4> |
|
|
|
|
|
|
|
|
|
<P>По умолчанию, PostgreSQL разрешает только соединения на локальной |
|
|
|
|
машине через сокеты домена Unix. Другие машины не смогут подключиться к |
|
|
|
|
базе пока не будет включена опция tcpip_sockets в postgresql.conf |
|
|
|
|
<B>и</B> пока не будет разрешена host-авторизация в файле |
|
|
|
|
<I>$PGDATA/pg_hba.conf</I>. Эти действия делают возможными TCP/IP |
|
|
|
|
соединения.</P> |
|
|
|
|
машине через сокеты домена Unix или TCP/IP соединения. Другие машины |
|
|
|
|
не смогут подключиться к базе пока вы не измените listen_addresses в |
|
|
|
|
postgresql.conf <B>и</B> пока не будет разрешена host-авторизация в файле |
|
|
|
|
<I>$PGDATA/pg_hba.conf</I>.</P> |
|
|
|
|
|
|
|
|
|
<H4><A name="3.6">3.6</A>) Какие настройки мне нужно сделать для улучшения |
|
|
|
|
производительности?</H4> |
|
|
|
@ -819,6 +799,18 @@ |
|
|
|
|
обновления может быть использован сценарий <i>pg_upgrade</i> без |
|
|
|
|
использования dump/restore. Комментарии к выпуску говорит когда можно |
|
|
|
|
использовать <i>pg_upgrade</i> для этого выпуска.</P> |
|
|
|
|
|
|
|
|
|
<H4><A name="3.11">3.11</A>) Какое компьютерное "железо" я должен |
|
|
|
|
использовать?</H4> |
|
|
|
|
<P>Поскольку "железо" персональных компьютеров является наиболее |
|
|
|
|
совместимым, люди склонны верить, что такое "железо" имеет одинаковое |
|
|
|
|
качество. Это не так. Память ECC, SCSI и качественные материнские платы |
|
|
|
|
являются более надёжными и имеют более лучшую производительность, чем |
|
|
|
|
менее дорогое "железо". PostgreSQL будет работать на любом "железе", |
|
|
|
|
но если для вас важны надёжность и производительность, то с вашей стороны |
|
|
|
|
будет мудро поставить соответствующее "железо". Обсудить разное "железо" |
|
|
|
|
можно в наших списках рассылки.</P> |
|
|
|
|
|
|
|
|
|
<HR> |
|
|
|
|
|
|
|
|
|
<H2 align="center">Вопросы эксплуатации</H2> |
|
|
|
@ -931,23 +923,23 @@ |
|
|
|
|
Размер базы PostgreSQL, содержащей эти же данные составит приблизительно |
|
|
|
|
6.4 MB из которых:</P> |
|
|
|
|
<PRE> |
|
|
|
|
36 байт: на каждый заголовок записи (приблизительно) |
|
|
|
|
32 байт: на каждый заголовок записи (приблизительно) |
|
|
|
|
+ 24 байта: одно поле с целочисленным типом и одно текстовое поле |
|
|
|
|
+ 4 байта: указатель на странице для всей записи |
|
|
|
|
---------------------------------------- |
|
|
|
|
64 байт на запись |
|
|
|
|
60 байт на запись |
|
|
|
|
|
|
|
|
|
Размер страницы данных в PostgreSQL составляет 8192 байт (8 KB), так что: |
|
|
|
|
|
|
|
|
|
8192 байт на страницу |
|
|
|
|
--------------------- = 128 записей на страницу БД (с округлением) |
|
|
|
|
64 байта на запись |
|
|
|
|
--------------------- = 136 записей на страницу БД (округлённо) |
|
|
|
|
60 байт на запись |
|
|
|
|
|
|
|
|
|
100000 строк данных |
|
|
|
|
----------------------- = 782 страницы в БД |
|
|
|
|
----------------------- = 735 страниц в БД (округлённо) |
|
|
|
|
128 записей на страницу |
|
|
|
|
|
|
|
|
|
782 страницы БД * 8192 байт на страницу = 6,406,144 байт (6.4 MB) |
|
|
|
|
735 страниц БД * 8192 байт на страницу = 6,021,120 байт (6 MB) |
|
|
|
|
</PRE> |
|
|
|
|
|
|
|
|
|
<P>Индексы не требуют так много, но поскольку они создаются для |
|
|
|
@ -1025,7 +1017,11 @@ |
|
|
|
|
<LI>Во время <i>initdb</i> должна использоваться локаль по умолчанию |
|
|
|
|
<i>C</i>. |
|
|
|
|
</UL> |
|
|
|
|
<p> |
|
|
|
|
</P> |
|
|
|
|
|
|
|
|
|
<P>В выпусках до версии 8.0, индексы часто нельзя было использовать, |
|
|
|
|
если типы данных точно не совпадали с индексными типами колонок. Это |
|
|
|
|
особенно касалось int2, int8 и numeric индексов колонок.</P> |
|
|
|
|
|
|
|
|
|
<H4><A name="4.9">4.9</A>) Как посмотреть на то, как оптимизатор выполняет |
|
|
|
|
мой запрос?</H4> |
|
|
|
@ -1239,16 +1235,12 @@ BYTEA bytea |
|
|
|
|
значение или если вы хотите создать копию таблицы с такимиже |
|
|
|
|
<SMALL>OID</SMALL>, то это можно сделать так:</P> |
|
|
|
|
<PRE> |
|
|
|
|
CREATE TABLE new_table(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_table(mycol int); |
|
|
|
|
SELECT oid AS old_oid, mycol INTO tmp_table FROM old_table; |
|
|
|
|
COPY tmp_table TO '/tmp/pgtable'; |
|
|
|
|
COPY new_table WITH OIDS FROM '/tmp/pgtable'; |
|
|
|
|
DROP TABLE tmp_table; |
|
|
|
|
</PRE> |
|
|
|
|
<!-- |
|
|
|
|
CREATE TABLE new_table (mycol int); |
|
|
|
|
INSERT INTO new_table (oid, mycol) SELECT oid, mycol FROM old_table; |
|
|
|
|
--> |
|
|
|
|
<P>O<SMALL>ID</SMALL> хранится как 4-х байтное целое и не может превышать |
|
|
|
|
значение в 4 миллиарда. Однако, еще никто не сообщил о том, что такое |
|
|
|
|
произошло, но мы планируем до того как это случиться избавится от |
|
|
|
|