Update Russian FAQ.

This commit is contained in:
Bruce Momjian 2002-10-11 17:45:40 +00:00
parent 1aa4a37f6a
commit e350d3d988
2 changed files with 49 additions and 21 deletions

View File

@ -1,7 +1,7 @@
Ответы на часто задаваемые вопросы по PostgreSQL Ответы на часто задаваемые вопросы по PostgreSQL
Дата последнего обновления: Среда 22 Августа 19:20:40 EDT 2002 Дата последнего обновления: Среда 9 Октября 23:14:53 EDT 2002
Английский вариант сопровождает: Брюс Момьян (Bruce Momjian) Английский вариант сопровождает: Брюс Момьян (Bruce Momjian)
(pgman@candle.pha.pa.us) (pgman@candle.pha.pa.us)
@ -109,6 +109,7 @@
4.25) Как мне вернуть из функции несколько записей? 4.25) Как мне вернуть из функции несколько записей?
4.26) Почему я не могу надежно создавать/удалять временные таблицы в 4.26) Почему я не могу надежно создавать/удалять временные таблицы в
функциях PL/PgSQL? функциях PL/PgSQL?
4.27) Какие опции репликации существуют?
Расширения PostgreSQL Расширения PostgreSQL
@ -269,7 +270,7 @@
1.7) Какая последняя версия? 1.7) Какая последняя версия?
Последний выпуск PostgreSQL - это версия 7.2.2. Последний выпуск PostgreSQL - это версия 7.2.3.
Мы планируем выпускать новые версии каждые четыре месяца. Мы планируем выпускать новые версии каждые четыре месяца.
@ -725,8 +726,8 @@
4.5) Каковы максимальные размеры для записей, таблиц и базы данных? 4.5) Каковы максимальные размеры для записей, таблиц и базы данных?
Существуют следующие ограничения: Существуют следующие ограничения:
Максимальный размер базы? неограничен (существуют базы на 60 G Максимальный размер базы? неограничен (существуют базы на 1 TB
B) )
Максимальный размер таблицы? 16 TB Максимальный размер таблицы? 16 TB
Максимальный размер записи? 1.6 TB Максимальный размер записи? 1.6 TB
Максимальный размер поля? 1 GB Максимальный размер поля? 1 GB
@ -1100,17 +1101,21 @@ CREATE TABLE test (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP );
В настоящий момент, мы связываем позапросы для внешних запросов через В настоящий момент, мы связываем позапросы для внешних запросов через
последовательный перебор результата подзапроса для каждой записи последовательный перебор результата подзапроса для каждой записи
внешнего запроса. Попробуйте заменить IN на EXISTS: внешнего запроса. Если подзапрос возвращает только несколько записей и
внешний запрос возвращает много записей, IN работает наиболее быстро.
Чтобы увеличить скорость в других запросах, замените IN на EXISTS:
SELECT * SELECT *
FROM tab FROM tab
WHERE col1 IN (SELECT col2 FROM TAB2) WHERE col IN (SELECT subcol FROM subtab)
на: на:
SELECT * SELECT *
FROM tab FROM tab
WHERE EXISTS (SELECT col2 FROM TAB2 WHERE col1 = col2) WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col)
Мы надеемся убрать это ограничение в будущем выпуске. Чтобы такая конструкция работала быстро, колонка subcol должна быть
проиндексирована. Мы надеемся убрать это ограничение в будущем
выпуске.
4.23) Как мне выполнить внешнее связывание? 4.23) Как мне выполнить внешнее связывание?
@ -1149,8 +1154,10 @@ SELECT *
для базы данных, непонятно даже, как должен себя вести такой для базы данных, непонятно даже, как должен себя вести такой
межбазовый запрос. межбазовый запрос.
Разумеется, клиент может одновременно устанавливать соедиенения с /contrib/dblink позволяет запросы между базами, используя вызовы
различными базами данных и таких образом объединять информацию из них. функций. Разумеется, клиент может одновременно устанавливать
соедиенения с различными базами данных и таких образом объединять
информацию из них.
4.25) Как мне вернуть из функции несколько записей? 4.25) Как мне вернуть из функции несколько записей?
@ -1170,6 +1177,12 @@ SELECT *
временную таблицу. Чтобы решить эту проблему, используйте EXECUTE для временную таблицу. Чтобы решить эту проблему, используйте EXECUTE для
доступа к временным таблицам в PL/PgSQL. Использование этого оператора доступа к временным таблицам в PL/PgSQL. Использование этого оператора
заставит запрос перегенерироваться каждый раз. заставит запрос перегенерироваться каждый раз.
4.27) Какие опции репликации существуют?
Есть несколько решений для репликации типа master/slave. Они допускают
использование только одного сервера для внесения изменений в базу
данных, а slave серверы просто позволяют читать данные из базы.
_________________________________________________________________ _________________________________________________________________
Расширения PostgreSQL Расширения PostgreSQL

View File

@ -14,7 +14,7 @@
alink="#0000ff"> alink="#0000ff">
<H1>Ответы на часто задаваемые вопросы по PostgreSQL</H1> <H1>Ответы на часто задаваемые вопросы по PostgreSQL</H1>
<P>Дата последнего обновления: Среда 22 Августа 19:20:40 EDT 2002</P> <P>Дата последнего обновления: Среда 9 Октября 23:14:53 EDT 2002</P>
<P>Английский вариант сопровождает: Брюс Момьян (Bruce Momjian) (<A href= <P>Английский вариант сопровождает: Брюс Момьян (Bruce Momjian) (<A href=
"mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR> "mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR>
@ -142,6 +142,7 @@
<A href="#4.25">4.25</A>) Как мне вернуть из функции несколько записей?<BR> <A href="#4.25">4.25</A>) Как мне вернуть из функции несколько записей?<BR>
<A href="#4.26">4.26</A>) Почему я не могу надежно создавать/удалять <A href="#4.26">4.26</A>) Почему я не могу надежно создавать/удалять
временные таблицы в функциях PL/PgSQL?<BR> временные таблицы в функциях PL/PgSQL?<BR>
<A href="#4.27">4.27</A>) Какие опции репликации существуют?<BR>
<H2 align="center">Расширения PostgreSQL</H2> <H2 align="center">Расширения PostgreSQL</H2>
<A href="#5.1">5.1</A>) Я написал функцию определяемую пользователем. <A href="#5.1">5.1</A>) Я написал функцию определяемую пользователем.
@ -324,7 +325,7 @@
<H4><A name="1.7">1.7</A>) Какая последняя версия?</H4> <H4><A name="1.7">1.7</A>) Какая последняя версия?</H4>
<P>Последний выпуск PostgreSQL - это версия 7.2.2.</P> <P>Последний выпуск PostgreSQL - это версия 7.2.3.</P>
<P>Мы планируем выпускать новые версии каждые четыре месяца.</P> <P>Мы планируем выпускать новые версии каждые четыре месяца.</P>
@ -874,7 +875,7 @@
<P>Существуют следующие ограничения:</P> <P>Существуют следующие ограничения:</P>
<PRE> <PRE>
Максимальный размер базы? неограничен (существуют базы на 60 GB) Максимальный размер базы? неограничен (существуют базы на 1 TB)
Максимальный размер таблицы? 16 TB Максимальный размер таблицы? 16 TB
Максимальный размер записи? 1.6 TB Максимальный размер записи? 1.6 TB
Максимальный размер поля? 1 GB Максимальный размер поля? 1 GB
@ -1317,12 +1318,15 @@ BYTEA bytea
<P>В настоящий момент, мы связываем позапросы для внешних запросов <P>В настоящий момент, мы связываем позапросы для внешних запросов
через последовательный перебор результата подзапроса для каждой через последовательный перебор результата подзапроса для каждой
записи внешнего запроса. Попробуйте заменить <CODE>IN</CODE> на записи внешнего запроса. Если подзапрос возвращает только несколько
записей и внешний запрос возвращает много записей,
<CODE><SMALL>IN</SMALL></CODE> работает наиболее быстро. Чтобы
увеличить скорость в других запросах, замените <CODE>IN</CODE> на
<CODE>EXISTS</CODE>:</P> <CODE>EXISTS</CODE>:</P>
<PRE> <PRE>
<CODE>SELECT * <CODE>SELECT *
FROM tab FROM tab
WHERE col1 IN (SELECT col2 FROM TAB2) WHERE col IN (SELECT subcol FROM subtab)
</CODE> </CODE>
</PRE> </PRE>
@ -1330,10 +1334,12 @@ BYTEA bytea
<PRE> <PRE>
<CODE>SELECT * <CODE>SELECT *
FROM tab FROM tab
WHERE EXISTS (SELECT col2 FROM TAB2 WHERE col1 = col2) WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col)
</CODE> </CODE>
</PRE> </PRE>
Чтобы такая конструкция работала быстро, колонка <CODE>subcol</CODE>
должна быть проиндексирована.
Мы надеемся убрать это ограничение в будущем выпуске. Мы надеемся убрать это ограничение в будущем выпуске.
<H4><A name="4.23">4.23</A>) Как мне выполнить внешнее связывание?</H4> <H4><A name="4.23">4.23</A>) Как мне выполнить внешнее связывание?</H4>
@ -1384,8 +1390,10 @@ BYTEA bytea
Поскольку PostgreSQL загружает системные каталоги специфичные для базы Поскольку PostgreSQL загружает системные каталоги специфичные для базы
данных, непонятно даже, как должен себя вести такой межбазовый запрос.</P> данных, непонятно даже, как должен себя вести такой межбазовый запрос.</P>
<P>Разумеется, клиент может одновременно устанавливать соедиенения с <P><I>/contrib/dblink</I> позволяет запросы между базами, используя
различными базами данных и таких образом объединять информацию из них.</P> вызовы функций. Разумеется, клиент может одновременно устанавливать
соедиенения с различными базами данных и таких образом объединять
информацию из них.</P>
<H4><A name="4.25">4.25</A>) Как мне вернуть из функции несколько записей?</H4> <H4><A name="4.25">4.25</A>) Как мне вернуть из функции несколько записей?</H4>
@ -1397,14 +1405,21 @@ BYTEA bytea
<H4><A name="4.26">4.26</A>) Почему я не могу надежно создавать/удалять <H4><A name="4.26">4.26</A>) Почему я не могу надежно создавать/удалять
временные таблицы в функциях PL/PgSQL?</H4> временные таблицы в функциях PL/PgSQL?</H4>
PL/PgSQL кэширует содержимое функции и один из негативных эффектов этого <P>PL/PgSQL кэширует содержимое функции и один из негативных эффектов этого
состоит в том, что если функция PL/PgSQL обращается к временной таблице состоит в том, что если функция PL/PgSQL обращается к временной таблице
и эта таблица позднее удаляется и пересоздается, а функция затем вызывается и эта таблица позднее удаляется и пересоздается, а функция затем вызывается
снова, то ее вызов приведет к ошибке, потому что скэшированное содержимое снова, то ее вызов приведет к ошибке, потому что скэшированное содержимое
функции содержит указатель на старую временную таблицу. Чтобы решить эту функции содержит указатель на старую временную таблицу. Чтобы решить эту
проблему, используйте <SMALL>EXECUTE</SMALL> для доступа к временным проблему, используйте <SMALL>EXECUTE</SMALL> для доступа к временным
таблицам в PL/PgSQL. Использование этого оператора заставит запрос таблицам в PL/PgSQL. Использование этого оператора заставит запрос
перегенерироваться каждый раз. перегенерироваться каждый раз.</P>
<H4><A name="4.27">4.27</A>) Какие опции репликации существуют?</H4>
<P>Есть несколько решений для репликации типа master/slave. Они допускают
использование только одного сервера для внесения изменений в базу данных,
а slave серверы просто позволяют читать данные из базы.</P>
<HR> <HR>
<H2 align="center">Расширения PostgreSQL</H2> <H2 align="center">Расширения PostgreSQL</H2>