<HEAD>
<META name="generator" content="HTML Tidy, see www.w3.org">
- <META http-equiv="Content-Type" content="text/html; charset=koi8-r">
+ <META http-equiv="Content-Type" content="text/html; charset=utf8">
<TITLE>PostgreSQL FAQ</TITLE>
</HEAD>
<BODY bgcolor="#ffffff" text="#000000" link="#ff0000" vlink="#a00000" alink="#0000ff">
- <H1>ïÔ×ÅÔÙ ÎÁ ÞÁÓÔÏ ÚÁÄÁ×ÁÅÍÙÅ ×ÏÐÒÏÓÙ ÐÏ PostgreSQL</H1>
+ <H1>Ответы на часто задаваемые вопросы по PostgreSQL</H1>
- <P>äÁÔÁ ÐÏÓÌÅÄÎÅÇÏ ÏÂÎÏ×ÌÅÎÉÑ: óÒÅÄÁ 25 ÉÀÎÑ 23:54:14 EDT 2008</P>
+ <P>Дата последнего обновления: Среда 25 июня 23:54:14 EDT 2008</P>
- <P>áÎÇÌÉÊÓËÉÊ ×ÁÒÉÁÎÔ ÓÏÐÒÏ×ÏÖÄÁÅÔ: âÒÀÓ íÏÍØÑÎ (Bruce Momjian) (<A href=
+ <P>Английский вариант сопровождает: Брюс Момьян (Bruce Momjian) (<A href=
"mailto:bruce@momjian.us">bruce@monjian.us</A>)
</P>
- <P>ðÅÒÅ×£Ì ÎÁ ÒÕÓÓËÉÊ: ÷ÉËÔÏÒ ÷ÉÓÌÏÂÏËÏ× (<A href=
+ <P>Перевёл на русский: Виктор Вислобоков (<A href=
"mailto:admin@postgresql.ru.net">admin@postgresql.ru.net</A>)<BR>
</P>
- <P>óÁÍÕÀ Ó×ÅÖÕÀ ÁÎÇÌÉÊÓËÕÀ ×ÅÒÓÉÀ ÄÏËÕÍÅÎÔÁ ÍÏÖÎÏ ÎÁÊÔÉ ÎÁ
+ <P>Самую свежую английскую версию документа можно найти на
<A href="http://www.postgresql.org/files/documentation/faqs/FAQ.html">http://www.postgresql.org/files/documentation/faqs/FAQ.html</A>.</P>
- <P>óÁÍÕÀ Ó×ÅÖÕÀ ÒÕÓÓËÕÀ ×ÅÒÓÉÀ ÄÏËÕÍÅÎÔÁ ÍÏÖÎÏ ÎÁÊÔÉ ÎÁ
+ <P>Самую свежую русскую версию документа можно найти на
<A href="http://postgresql.ru.net/docs/FAQ_russian.html">http://postgresql.ru.net/docs/FAQ_russian.html</A>.</P>
- <P>ïÔ×ÅÔÙ ÎÁ ×ÏÐÒÏÓÙ ÓÐÅÃÉÆÉÞÎÙÅ ÄÌÑ ËÏÎËÒÅÔÎÙÈ ÐÌÁÔÆÏÒÍ ÍÏÖÎÏ ÎÁÊÔÉ ÎÁ
+ <P>Ответы на вопросы специфичные для конкретных платформ можно найти на
<A href="http://www.postgresql.org/docs/faq/">http://www.postgresql.org/docs/faq/</A>.</P>
<HR>
- <H2 align="center">ïÂÝÉÅ ×ÏÐÒÏÓÙ</H2>
- <A href="#item1.1">1.1</A>) þÔÏ ÔÁËÏÅ PostgreSQL? ëÁË ÐÒÏÉÚÎÏÓÉÔÓÑ ÜÔÏ ÎÁÚ×ÁÎÉÅ? þÔÏ ÔÁËÏÅ Postgres?<BR>
- <A href="#item1.2">1.2</A>) ëÔÏ ÕÐÒÁ×ÌÑÅÔ PostgreSQL?<BR>
- <A href="#item1.3">1.3</A>) ëÁËÏ×Ù Á×ÔÏÒÓËÉÅ ÐÒÁ×Á ÎÁ PostgreSQL?<BR>
- <A href="#item1.4">1.4</A>) îÁ ËÁËÉÈ ÐÌÁÔÆÏÒÍÁÈ ÒÁÂÏÔÁÅÔ PostgreSQL?<BR>
- <A href="#item1.5">1.5</A>) çÄÅ ÍÏÖÎÏ ×ÚÑÔØ PostgreSQL?<BR>
- <A href="#item1.6">1.6</A>) ëÁËÁÑ ×ÅÒÓÉÑ ÎÁÉÂÏÌÅÅ Ó×ÅÖÁÑ?<BR>
- <A href="#item1.7">1.7</A>) çÄÅ ÐÏÌÕÞÉÔØ ÐÏÄÄÅÒÖËÕ?<BR>
- <A href="#item1.8">1.8</A>) ëÁË ÍÎÅ ÓÏÏÂÝÉÔØ Ï ÏÛÉÂËÅ?<BR>
- <A href="#item1.9">1.9</A>) ëÁË ÎÁÊÔÉ ÉÎÆÏÒÍÁÃÉÀ Ï ÉÚ×ÅÓÔÎÙÈ ÏÛÉÂËÁÈ ÉÌÉ ÏÔÓÕÔÓÔ×ÕÀÝÉÈ
- ×ÏÚÍÏÖÎÏÓÔÑÈ?<BR>
- <A href="#item1.10">1.10</A>) ëÁËÁÑ ÄÏËÕÍÅÎÔÁÃÉÑ ÉÍÅÅÔÓÑ × ÎÁÌÉÞÉÉ?<BR>
- <A href="#item1.11">1.11</A>) ëÁË ÎÁÕÞÉÔØÓÑ <SMALL>SQL</SMALL>?<BR>
- <A href="#item1.12">1.12</A>) ëÁË ÍÎÅ ÏÔÐÒÁ×ÉÔØ ÉÓÐÒÁ×ÌÅÎÉÅ ÉÌÉ ÐÒÉÓÏÅÄÉÎÉÔÓÑ Ë ËÏÍÁÎÄÅ ÒÁÚÒÁÂÏÔÞÉËÏ×?<BR>
- <A href="#item1.13">1.13</A>) ëÁË ÓÒÁ×ÎÉÔØ PostgreSQL Ó ÄÒÕÇÉÍÉ
- <SMALL>óõâä</SMALL>? íÏÖÅÔ ÌÉ PostgreSQL ÂÙÔØ ×ÓÔÒÏÅÎÎÏÊ?<BR>
- <A href="#item1.14">1.14</A>) âÕÄÅÔ ÌÉ PostgreSQL ÒÁÂÏÔÁÔØ Ó ÐÏÓÌÅÄÎÉÍÉ ÉÚÍÅÎÅÎÉÑÍÉ, × ÒÁÚÎÙÈ ÓÔÒÁÎÙÈ,
- ËÁÓÁÀÝÉÍÉÓÑ ÄÎÅ×ÎÏÇÏ ×ÒÅÍÅÎÉ?<BR>
- <A href="#item1.15">1.15</A>) ëÁË ÍÎÅ ÏÔÐÉÓÁÔØÓÑ ÏÔ ÓÐÉÓËÏ× ÒÁÓÓÙÌËÉ PostgreSQL?
- ëÁË ÉÚÂÅÖÁÔØ ÐÏÌÕÞÅÎÉÑ ÄÕÂÌÉÒÕÀÝÉÈÓÑ ÓÏÏÂÝÅÎÉÊ?<BR>
-
- <H2 align="center">÷ÏÐÒÏÓÙ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÐÏ ËÌÉÅÎÔÓËÏÊ ÞÁÓÔÉ</H2>
- <A href="#item2.1">2.1</A>) ëÁËÉÅ ÉÎÔÅÒÆÅÊÓÙ ÅÓÔØ ÄÌÑ PostgreSQL?<BR>
- <A href="#item2.2">2.2</A>) ëÁËÉÅ ÉÎÓÔÒÕÍÅÎÔÙ ÓÕÝÅÓÔ×ÕÀÔ ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ
- PostgreSQL ÞÅÒÅÚ Web?<BR>
- <A href="#item2.3">2.3</A>) åÓÔØ ÌÉ Õ PostgreSQL ÇÒÁÆÉÞÅÓËÉÊ ÉÎÔÅÒÆÅÊÓ
- ÐÏÌØÚÏ×ÁÔÅÌÑ?<BR>
+ <H2 align="center">Общие вопросы</H2>
+ <A href="#item1.1">1.1</A>) Что такое PostgreSQL? Как произносится это название? Что такое Postgres?<BR>
+ <A href="#item1.2">1.2</A>) Кто управляет PostgreSQL?<BR>
+ <A href="#item1.3">1.3</A>) Каковы авторские права на PostgreSQL?<BR>
+ <A href="#item1.4">1.4</A>) На каких платформах работает PostgreSQL?<BR>
+ <A href="#item1.5">1.5</A>) Где можно взять PostgreSQL?<BR>
+ <A href="#item1.6">1.6</A>) Какая версия наиболее свежая?<BR>
+ <A href="#item1.7">1.7</A>) Где получить поддержку?<BR>
+ <A href="#item1.8">1.8</A>) Как мне сообщить об ошибке?<BR>
+ <A href="#item1.9">1.9</A>) Как найти информацию об известных ошибках или отсутствующих
+ возможностях?<BR>
+ <A href="#item1.10">1.10</A>) Какая документация имеется в наличии?<BR>
+ <A href="#item1.11">1.11</A>) Как научиться <SMALL>SQL</SMALL>?<BR>
+ <A href="#item1.12">1.12</A>) Как мне отправить исправление или присоединится к команде разработчиков?<BR>
+ <A href="#item1.13">1.13</A>) Как сравнить PostgreSQL с другими
+ <SMALL>СУБД</SMALL>? Может ли PostgreSQL быть встроенной?<BR>
+ <A href="#item1.14">1.14</A>) Будет ли PostgreSQL работать с последними изменениями, в разных страных,
+ касающимися дневного времени?<BR>
+ <A href="#item1.15">1.15</A>) Как мне отписаться от списков рассылки PostgreSQL?
+ Как избежать получения дублирующихся сообщений?<BR>
+
+ <H2 align="center">Вопросы пользователей по клиентской части</H2>
+ <A href="#item2.1">2.1</A>) Какие интерфейсы есть для PostgreSQL?<BR>
+ <A href="#item2.2">2.2</A>) Какие инструменты существуют для использования
+ PostgreSQL через Web?<BR>
+ <A href="#item2.3">2.3</A>) Есть ли у PostgreSQL графический интерфейс
+ полÑ\8cзоваÑ\82елÑ\8f?<BR>
- <H2 align="center">÷ÏÐÒÏÓÙ ÁÄÍÉÎÉÓÔÒÉÒÏ×ÁÎÉÑ</H2>
- <A href="#item3.1">3.1</A>) ëÁË ÍÎÅ ÕÓÔÁÎÏ×ÉÔØ PostgreSQL × ÍÅÓÔÏ ÏÔÌÉÞÎÏÅ
- ÏÔ <I>/usr/local/pgsql</I>?<BR>
- <A href="#item3.2">3.2</A>) ëÁË ÍÎÅ ÕÐÒÁ×ÌÑÔØ ÓÏÅÄÉÎÅÎÉÑÍÉ ÏÔ ÄÒÕÇÉÈ
- ËÏÍÐØÀÔÅÒÏ×?<BR>
- <A href="#item3.3">3.3</A>) ëÁËÉÅ ÎÁÓÔÒÏÊËÉ ÍÎÅ ÎÕÖÎÏ ÓÄÅÌÁÔØ ÄÌÑ ÕÌÕÞÛÅÎÉÑ
- ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ?<BR>
- <A href="#item3.4">3.4</A>) ëÁËÉÅ ×ÏÚÍÏÖÎÏÓÔÉ ÄÌÑ ÏÔÌÁÄËÉ ÅÓÔØ × ÎÁÌÉÞÉÉ?<BR>
- <A href="#item3.5">3.5</A>) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÓÏÏÂÝÅÎÉÅ <I>"Sorry, too many
- clients"</I> ËÏÇÄÁ ÐÙÔÁÀÓØ ÐÏÄËÌÀÞÉÔØÓÑ Ë ÂÁÚÅ?<BR>
- <A href="#item3.6">3.6</A>) ëÁË ×ÙÐÏÌÎÉÔØ ÏÂÎÏ×ÌÅÎÉÅ PostgreSQL?<BR>
- <A href="#item3.7">3.7</A>) ëÁËÏÅ ËÏÍÐØÀÔÅÒÎÏÅ "ÖÅÌÅÚÏ" Ñ ÄÏÌÖÅÎ
- ÉÓÐÏÌØÚÏ×ÁÔØ?<BR>
+ <H2 align="center">Вопросы администрирования</H2>
+ <A href="#item3.1">3.1</A>) Как мне установить PostgreSQL в место отличное
+ от <I>/usr/local/pgsql</I>?<BR>
+ <A href="#item3.2">3.2</A>) Как мне управлять соединениями от других
+ компьютеров?<BR>
+ <A href="#item3.3">3.3</A>) Какие настройки мне нужно сделать для улучшения
+ пÑ\80оизводиÑ\82елÑ\8cноÑ\81Ñ\82и?<BR>
+ <A href="#item3.4">3.4</A>) Какие возможности для отладки есть в наличии?<BR>
+ <A href="#item3.5">3.5</A>) Почему я получаю сообщение <I>"Sorry, too many
+ clients"</I> когда пытаюсь подключиться к базе?<BR>
+ <A href="#item3.6">3.6</A>) Как выполнить обновление PostgreSQL?<BR>
+ <A href="#item3.7">3.7</A>) Какое компьютерное "железо" я должен
+ использовать?<BR>
- <H2 align="center">÷ÏÐÒÏÓÙ ÜËÓÐÌÕÁÔÁÃÉÉ</H2>
- <A href="#item4.1">4.1</A>) ëÁË ×ÙÐÏÌÎÉÔØ <SMALL>SELECT</SMALL> ÔÏÌØËÏ
- ÄÌÑ ÎÅÓËÏÌØËÉÈ ÐÅÒ×ÙÈ ÓÔÒÏÞÅË ÚÁÐÒÏÓÁ? äÌÑ ÐÒÏÉÚ×ÏÌØÎÏÊ ÓÔÒÏËÉ?<BR>
- <A href="#item4.2">4.2</A>) ëÁË ÍÎÅ ÎÁÊÔÉ ËÁËÉÅ ÔÁÂÌÉÃÙ, ÉÎÄÅËÓÙ,
- ÂÁÚÙ ÄÁÎÎÙÈ É ÐÏÌØÚÏ×ÁÔÅÌÉ ÓÕÝÅÓÔ×ÕÀÔ? ëÁË ÍÎÅ Õ×ÉÄÅÔØ ÚÁÐÒÏÓÙ,
- ËÏÔÏÒÙÅ ÉÓÐÏÌØÚÕÅÔ <I>psql</I> ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÜÔÏÊ ÉÎÆÏÒÍÁÃÉÉ?<BR>
- <A href="#item4.3">4.3</A>) ëÁË ÉÚÍÅÎÉÔØ ÔÉÐ ÄÁÎÎÙÈ ËÏÌÏÎËÉ?<BR>
- <A href="#item4.4">4.4</A>) ëÁËÏ×Ù ÍÁËÓÉÍÁÌØÎÙÅ ÒÁÚÍÅÒÙ ÄÌÑ ÓÔÒÏË × ÔÁÂÌÉÃÅ,
- ÔÁÂÌÉÃ É ÂÁÚÙ ÄÁÎÎÙÈ?<BR>
- <A href="#item4.5">4.5</A>) ëÁË ÍÎÏÇÏ ÄÉÓËÏ×ÏÇÏ ÐÒÏÓÔÒÁÎÓÔ×Á × ÂÁÚÅ ÄÁÎÎÙÈ
- ÎÕÖÎÏ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÄÁÎÎÙÈ ÉÚ ÏÂÙÞÎÏÇÏ ÔÅËÓÔÏ×ÏÇÏ ÆÁÊÌÁ?<BR>
- <A href="#item4.6">4.6</A>) ðÏÞÅÍÕ ÍÏÉ ÚÁÐÒÏÓÙ ÒÁÂÏÔÁÀÔ ÍÅÄÌÅÎÏ? ðÏÞÅÍÕ
- ÏÎÉ ÎÅ ÉÓÐÏÌØÚÕÀÔ ÍÏÉ ÉÎÄÅËÓÙ?<BR>
- <A href="#item4.7">4.7</A>) ëÁË ÐÏÓÍÏÔÒÅÔØ ÎÁ ÔÏ, ËÁË ÏÐÔÉÍÉÚÁÔÏÒ ×ÙÐÏÌÎÑÅÔ
- ÍÏÊ ÚÁÐÒÏÓ?<BR>
- <A href="#item4.8">4.8</A>) ëÁË ÍÎÅ ×ÙÐÏÌÎÉÔØ ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ
- É ÐÏÉÓË ÎÅÚÁ×ÉÓÉÍÙÊ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË× ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ?
- ëÁË ÍÎÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÉÎÄÅËÓ ÄÌÑ ÐÏÉÓËÁ ÎÅÚÁ×ÉÓÉÍÏÇÏ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË×?<BR>
- <A href="#item4.9">4.9</A>) ëÁË ÍÎÅ ÏÐÒÅÄÅÌÉÔØ, ÞÔÏ ÚÎÁÞÅÎÉÅ ÐÏÌÑ × ËÁËÏÍ-ÌÉÂÏ
- ÚÁÐÒÏÓÅ ÒÁ×ÎÏ <SMALL>NULL</SMALL>? ëÁË ÍÎÅ ÓÏÅÄÉÎÉÔØ ×ÏÚÍÏÖÎÙÅ
- <SMALL>NULL</SMALL>? íÏÇÕ Ñ ÓÏÒÔÉÒÏ×ÁÔØ ÐÏÌÑ <SMALL>NULL</SMALL> ÉÌÉ ÎÅÔ?<BR>
- <A href="#item4.10">4.10</A>) ëÁËÏ×Ù ÏÔÌÉÞÉÑ ÍÅÖÄÕ ÒÁÚÎÙÍÉ ÓÉÍ×ÏÌØÎÙÍÉ
- ÔÉÐÁÍÉ?<BR>
- <A href="#item4.11.1">4.11.1</A>) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ÐÏÌÅ serial/Ó-Á×ÔÏ-Õ×ÅÌÉÞÅÎÉÅÍ?<BR>
- <A href="#item4.11.2">4.11.2</A>) ëÁË ÍÎÅ ÐÏÌÕÞÉÔØ ÚÎÁÞÅÎÉÅ ÐÒÉ ×ÓÔÁ×ËÅ
+ <H2 align="center">Вопросы эксплуатации</H2>
+ <A href="#item4.1">4.1</A>) Как выполнить <SMALL>SELECT</SMALL> только
+ для нескольких первых строчек запроса? Для произвольной строки?<BR>
+ <A href="#item4.2">4.2</A>) Как мне найти какие таблицы, индексы,
+ базы данных и пользователи существуют? Как мне увидеть запросы,
+ которые использует <I>psql</I> для получения этой информации?<BR>
+ <A href="#item4.3">4.3</A>) Как изменить тип данных колонки?<BR>
+ <A href="#item4.4">4.4</A>) Каковы максимальные размеры для строк в таблице,
+ таблиц и базы данных?<BR>
+ <A href="#item4.5">4.5</A>) Как много дискового пространства в базе данных
+ нужно для сохранения данных из обычного текстового файла?<BR>
+ <A href="#item4.6">4.6</A>) Почему мои запросы работают медлено? Почему
+ они не используют мои индексы?<BR>
+ <A href="#item4.7">4.7</A>) Как посмотреть на то, как оптимизатор выполняет
+ мой запрос?<BR>
+ <A href="#item4.8">4.8</A>) Как мне выполнить поиск регулярного выражения
+ и поиск независимый от регистра букв поиск регулярного выражения?
+ Как мне использовать индекс для поиска независимого от регистра букв?<BR>
+ <A href="#item4.9">4.9</A>) Как мне определить, что значение поля в каком-либо
+ запросе равно <SMALL>NULL</SMALL>? Как мне соединить возможные
+ <SMALL>NULL</SMALL>? Могу я сортировать поля <SMALL>NULL</SMALL> или нет?<BR>
+ <A href="#item4.10">4.10</A>) Каковы отличия между разными символьными
+ типами?<BR>
+ <A href="#item4.11.1">4.11.1</A>) Как мне создать поле serial/с-авто-увеличением?<BR>
+ <A href="#item4.11.2">4.11.2</A>) Как мне получить значение при вставке
<SMALL>SERIAL</SMALL>?<BR>
- <A href="#item4.11.3">4.11.3</A>) îÅ ÍÏÖÅÔ ÌÉ ÐÏÌÕÞÉÔØÓÑ ÔÁË, ÞÔÏ
- ÉÓÐÏÌØÚÏ×ÁÎÉÅ <I>currval()</I> É <I>nextval()</I> ÐÒÉ×ÅÄÅÔ Ë
- ÚÁÃÉËÌÉÒÏ×ÁÎÉÀ Ó ÄÒÕÇÉÍÉ ÐÏÌØÚÏ×ÁÔÅÌÑÍÉ?<BR>
- <A href="#item4.11.4">4.11.4</A>) ðÏÞÅÍÕ ÞÉÓÌÁ ÉÚ ÍÏÅÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ
- ÎÅ ÉÓÐÏÌØÚÕÀÔÓÑ ÓÎÏ×Á ÐÒÉ ÏÔÍÅÎÅ ÔÒÁÎÚÁËÃÉÉ? ðÏÞÅÍÕ ÓÏÚÄÁÀÔÓÑ ÒÁÚÒÙ×Ù
- ÐÒÉ ÎÕÍÅÒÁÃÉÉ × ËÏÌÏÎËÅ, ÇÄÅ Ñ ÉÓÐÏÌØÚÕÀ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ/SERIAL?<BR>
- <A href="#item4.12">4.12</A>) þÔÏ ÔÁËÏÅ <SMALL>OID</SMALL>? þÔÏ ÔÁËÏÅ
+ <A href="#item4.11.3">4.11.3</A>) Не может ли получиться так, что
+ использование <I>currval()</I> и <I>nextval()</I> приведет к
+ зациклированию с другими пользователями?<BR>
+ <A href="#item4.11.4">4.11.4</A>) Почему числа из моей последовательности
+ не используются снова при отмене транзакции? Почему создаются разрывы
+ пÑ\80и нÑ\83меÑ\80аÑ\86ии в колонке, где Ñ\8f иÑ\81полÑ\8cзÑ\83Ñ\8e поÑ\81ледоваÑ\82елÑ\8cноÑ\81Ñ\82Ñ\8c/SERIAL?<BR>
+ <A href="#item4.12">4.12</A>) Что такое <SMALL>OID</SMALL>? Что такое
<SMALL>CTID</SMALL>?<BR>
- <A href="#item4.13">4.13</A>) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ <I>"ERROR: Memory
+ <A href="#item4.13">4.13</A>) Почему я получаю ошибку <I>"ERROR: Memory
exhausted in AllocSetAlloc()"</I>?<BR>
- <A href="#item4.14">4.14</A>) ëÁË ÍÎÅ ÕÚÎÁÔØ, ËÁËÁÑ ×ÅÒÓÉÑ PostgreSQL
- ÚÁÐÕÝÅÎÁ?<BR>
- <A href="#item4.15">4.15</A>) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ËÏÌÏÎËÕ ËÏÔÏÒÁÑ ÐÏ ÕÍÏÌÞÁÎÉÀ
- ÂÕÄÅÔ ÓÏÄÅÒÖÁÔØ ÔÅËÕÝÅÅ ×ÒÅÍÑ?<BR>
- <A href="#item4.16">4.16</A>) ëÁË ×ÙÐÏÌÎÉÔØ ×ÎÅÛÎÅÅ Ó×ÑÚÙ×ÁÎÉÅ?<BR>
- <A href="#item4.17">4.17</A>) ëÁË ×ÙÐÏÌÎÑÔØ ÚÁÐÒÏÓÙ, ÉÓÐÏÌØÚÕÀÝÉÅ ÎÅÓËÏÌØËÏ
- ÂÁÚ ÄÁÎÎÙÈ?<BR>
- <A href="#item4.18">4.18</A>) ëÁË ÍÎÅ ×ÅÒÎÕÔØ ÉÚ ÆÕÎËÃÉÉ ÎÅÓËÏÌØËÏ ÓÔÒÏË ÔÁÂÌÉÃÙ?<BR>
- <A href="#item4.19">4.19</A>) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ "relation with OID ####
- ÎÅ ÓÕÝÅÓÔ×ÕÅÔ", ËÏÇÄÁ ÏÂÒÁÝÁÀÔÓØ Ë ×ÒÅÍÅÎÎÙÍ ÔÁÂÌÉÃÁÍ × ÆÕÎËÃÉÑÈ PL/PgSQL?<BR>
- <A href="#item4.20">4.20</A>) ëÁËÉÅ ÅÓÔØ ÒÅÛÅÎÉÑ ÄÌÑ ÒÅÐÌÉËÁÃÉÉ?<BR>
- <A href="#item4.21">4.21</A>) ðÏÞÅÍÕ ÉÍÅÎÁ ÔÁÂÌÉÃÙ É ËÏÌÏÎÏË ÎÅ
- ÒÁÓÐÏÚÎÁÀÔÓÑ × × ÍÏ£Í ÚÁÐÒÏÓÅ? ðÏÞÅÍÕ ÎÅ ÓÏÈÒÁÎÑÀÔÓÑ ÚÁÇÌÁ×ÎÙÅ ÂÕË×Ù?<BR>
+ <A href="#item4.14">4.14</A>) Как мне узнать, какая версия PostgreSQL
+ запущена?<BR>
+ <A href="#item4.15">4.15</A>) Как мне создать колонку которая по умолчанию
+ будет содержать текущее время?<BR>
+ <A href="#item4.16">4.16</A>) Как выполнить внешнее связывание?<BR>
+ <A href="#item4.17">4.17</A>) Как выполнять запросы, использующие несколько
+ баз данных?<BR>
+ <A href="#item4.18">4.18</A>) Как мне вернуть из функции несколько строк таблицы?<BR>
+ <A href="#item4.19">4.19</A>) Почему я получаю ошибку "relation with OID ####
+ не существует", когда обращаютсь к временным таблицам в функциях PL/PgSQL?<BR>
+ <A href="#item4.20">4.20</A>) Какие есть решения для репликации?<BR>
+ <A href="#item4.21">4.21</A>) Почему имена таблицы и колонок не
+ распознаются в в моём запросе? Почему не сохраняются заглавные буквы?<BR>
<HR>
- <H2 align="center">ïÂÝÉÅ ×ÏÐÒÏÓÙ</H2>
+ <H2 align="center">Общие вопросы</H2>
- <H3><A name="item1.1">1.1</A>) þÔÏ ÔÁËÏÅ PostgreSQL? ëÁË ÐÒÏÉÚÎÏÓÉÔÓÑ ÜÔÏ ÎÁÚ×ÁÎÉÅ? þÔÏ ÔÁËÏÅ Postgres?</H3>
+ <H3><A name="item1.1">1.1</A>) Что такое PostgreSQL? Как произносится это название? Что такое Postgres?</H3>
- <P>PostgreSQL ÐÒÏÉÚÎÏÓÉÔÓÑ <I>Post-Gres-Q-L (ðÏÓÔ-çÒÅÓ-ëØÀ-üÌ)</I>.
- (äÌÑ ÏÓÏÂÏ ÌÀÂÏÐÙÔÓÔ×ÕÀÝÉÈ ËÁË ÐÒÏÉÚÎÏÓÉÔØ "PostgreSQL", ÓÕÝÅÓÔ×ÕÅÔ
- <A href="http://www.postgresql.org/files/postgresql.mp3">ÁÕÄÉÏ-ÆÁÊÌ</A>).
+ <P>PostgreSQL пÑ\80оизноÑ\81иÑ\82Ñ\81Ñ\8f <I>Post-Gres-Q-L (Ð\9fоÑ\81Ñ\82-Ð\93Ñ\80еÑ\81-Ð\9aÑ\8cÑ\8e-Ðл)</I>.
+ (Для особо любопытствующих как произносить "PostgreSQL", существует
+ <A href="http://www.postgresql.org/files/postgresql.mp3">аудио-файл</A>).
</P>
- <P>PostgreSQL - ÜÔÏ ÏÂßÅËÔÎÏ-ÒÅÌÑÃÉÏÎÎÁÑ ÓÉÓÔÅÍÁ ÕÐÒÁ×ÌÅÎÉÑ ÂÁÚÁÍÉ
- ÄÁÎÎÙÈ (óõâä), ËÏÔÏÒÁÑ ÉÍÅÅÔ ÔÒÁÄÉÃÉÏÎÎÙÅ ×ÏÚÍÏÖÎÏÓÔÉ ËÏÍÍÅÒÞÅÓËÉÈ
- <small>óõâä</small> Ó ÒÁÓÛÉÒÅÎÉÑÍÉ, ËÏÔÏÒÙÅ ÅÓÔØ × <small>óõâä</small>
- ÎÏ×ÏÇÏ ÐÏËÏÌÅÎÉÑ. PostgreSQL - ÜÔÏ Ó×ÏÂÏÄÎÏÅ É ÐÏÌÎÏÓÔØÀ ÏÔËÒÙÔÏÅ
- ÐÒÏÇÒÁÍÍÎÏÅ ÏÂÅÓÐÅÞÅÎÉÅ.</P>
+ <P>PostgreSQL - это объектно-реляционная система управления базами
+ данных (СУБД), которая имеет традиционные возможности коммерческих
+ <small>СУБД</small> с расширениями, которые есть в <small>СУБД</small>
+ нового поколения. PostgreSQL - это свободное и полностью открытое
+ пÑ\80огÑ\80аммное обеÑ\81пеÑ\87ение.</P>
- <P>òÁÚÒÁÂÏÔËÕ PostgreSQL ×ÙÐÏÌÎÑÅÔ ËÏÍÁÎÄÁ ÒÁÚÒÁÂÏÔÞÉËÏ×, ÒÁÚÂÒÏÓÁÎÎÁÑ
- ÐÏ ×ÓÅÍÕ ÍÉÒÕ É Ó×ÑÚÁÎÎÁÑ ÞÅÒÅÚ éÎÔÅÒÎÅÔ. òÁÚÒÁÂÏÔËÁ Ñ×ÌÑÅÔÓÑ
- ÏÂÝÅÓÔ×ÅÎÎÙÍ ÐÒÏÅËÔÏÍ É ÎÅ ÕÐÒÁ×ÌÑÅÔÓÑ ËÁËÏÊ-ÌÉÂÏ ËÏÍÐÁÎÉÅÊ.
- ðÏÄÒÏÂÎÏÓÔÉ ÓÍÏÔÒÉÔÅ × FAQ ÄÌÑ ÒÁÚÒÁÂÏÔÞÉËÏ×,
+ <P>Разработку PostgreSQL выполняет команда разработчиков, разбросанная
+ по вÑ\81емÑ\83 миÑ\80Ñ\83 и Ñ\81вÑ\8fзаннаÑ\8f Ñ\87еÑ\80ез Ð\98нÑ\82еÑ\80неÑ\82. РазÑ\80абоÑ\82ка Ñ\8fвлÑ\8fеÑ\82Ñ\81Ñ\8f
+ общественным проектом и не управляется какой-либо компанией.
+ Подробности смотрите в FAQ для разработчиков,
<A href="http://www.postgresql.org/docs/faqs.FAQ_DEV.html">
http://www.postgresql.org/docs/faqs.FAQ_DEV.html</A>
</P>
- <P>Postgres — ÜÔÏ ÛÉÒÏËÏ ÉÓÐÏÌØÚÕÅÍÏÅ ÓÏËÒÁÝÅÎÉÅ ÄÌÑ PostgreSQL.
- ðÅÒ×ÏÎÁÞÁÌØÎÙÍ ÉÍÅÎÅÍ ÐÒÏÅËÔÁ × âÅÒËÌÉ ÂÙÌÏ Postgres É ÜÔÏÔ ÎÉË ÔÅÐÅÒØ
- ÎÁÉÂÏÌÅÅ ÐÏÐÕÌÑÒÅÎ × ÒÁÚÇÏ×ÏÒÁÈ Ï PostgreSQL ÐÏ ÓÒÁ×ÎÅÎÉÀ Ó ÄÒÕÇÉÍÉ.
- åÓÌÉ ×ÁÍ ÔÒÕÄÎÏ ÐÏÌÎÏÓÔØÀ ÐÒÏÇÏ×ÁÒÉ×ÁÔØ 'PostgreSQL', ÍÏÖÎÏ ÐÒÏÓÔÏ
- ÇÏ×ÏÒÉÔØ 'Postgres'.</P>
+ <P>Postgres — это широко используемое сокращение для PostgreSQL.
+ Первоначальным именем проекта в Беркли было Postgres и этот ник теперь
+ наиболее популярен в разговорах о PostgreSQL по сравнению с другими.
+ Если вам трудно полностью проговаривать 'PostgreSQL', можно просто
+ говорить 'Postgres'.</P>
- <H3><A name="item1.2">1.2</A>) ëÔÏ ÕÐÒÁ×ÌÑÅÔ PostgreSQL?</H3>
+ <H3><A name="item1.2">1.2</A>) Кто управляет PostgreSQL?</H3>
- <P>åÓÌÉ ×Ù ÉÝÉÔÅ ËÁËÏÇÏ-ÔÏ ÏÓÏÂÅÎÎÏÇÏ ÞÅÌÏ×ÅËÁ, ÃÅÎÔÒÁÌØÎÙÊ
- ËÏÍÉÔÅÔ ÉÌÉ ÕÐÒÁ×ÌÑÀÝÕÀ ËÏÍÐÁÎÉÀ, ÔÏ ÎÁÐÒÁÓÎÏ --- ÉÈ ÎÅÔ.
- õ ÎÁÓ ÅÓÔØ ÑÄÒÏ ËÏÍÉÔÅÔÁ É ÒÁÚÒÁÂÏÔÞÉËÏ×, ÒÁÂÏÔÁÀÝÉÈ Ó CVS,
- ÎÏ ÜÔÉ ÇÒÕÐÐÙ ÓÌÕÖÁÔ ÂÏÌØÛÅ ÄÌÑ ÁÄÍÉÎÉÓÔÒÁÔÉ×ÎÙÈ ÃÅÌÅÊ, ÞÅÍ
- ÄÌÑ ÕÐÒÁ×ÌÅÎÉÑ. ðÒÏÅËÔ ÎÁÐÒÑÍÕÀ ÆÕÎËÃÉÏÎÉÒÕÅÔ Ó ÐÏÍÏÝØÀ
- ÓÏÏÂÝÅÓÔ×Á ÒÁÚÒÁÂÏÔÞÉËÏ× É ÐÏÌØÚÏ×ÁÔÅÌÅÊ, Ë ËÏÔÏÒÏÍÕ ÍÏÖÅÔ
- ÐÒÉÓÏÅÄÉÎÉÔÓÑ ËÁÖÄÙÊ. ÷Ó£ ÞÔÏ ÎÕÖÎÏ -- ÜÔÏ ÐÏÄÐÉÓÁÔØÓÑ ÎÁ
- ÓÐÉÓËÉ ÒÁÓÓÙÌËÉ É ÕÞÁÓÔ×Ï×ÁÔØ × ÄÉÓËÕÓÓÉÑÈ. (ðÏÄÒÏÂÎÏÓÔÉ Ï
- ÔÏÍ ËÁË ×ËÌÀÞÉÔØÓÑ × ÒÁÚÒÁÂÏÔËÕ PostgreSQL ÓÍÏÔÒÉÔÅ ×
+ <P>Если вы ищите какого-то особенного человека, центральный
+ комитет или управляющую компанию, то напрасно --- их нет.
+ У нас есть ядро комитета и разработчиков, работающих с CVS,
+ но эти группы служат больше для административных целей, чем
+ для управления. Проект напрямую функционирует с помощью
+ сообщества разработчиков и пользователей, к которому может
+ пÑ\80иÑ\81оединиÑ\82Ñ\81Ñ\8f каждÑ\8bй. Ð\92Ñ\81Ñ\91 Ñ\87Ñ\82о нÑ\83жно -- Ñ\8dÑ\82о подпиÑ\81аÑ\82Ñ\8cÑ\81Ñ\8f на
+ списки рассылки и участвовать в дискуссиях. (Подробности о
+ том как включиться в разработку PostgreSQL смотрите в
<a href="http://www.postgresql.org/docs/faqs.FAQ_DEV.html">
- FAQ ÄÌÑ ÒÁÚÒÁÂÏÔÞÉËÏ×</A>.)</P>
+ FAQ для разработчиков</A>.)</P>
- <H3><A name="item1.3">1.3</A>) ëÁËÏ×Ù Á×ÔÏÒÓËÉÅ ÐÒÁ×Á ÎÁ PostgreSQL?</H3>
+ <H3><A name="item1.3">1.3</A>) Каковы авторские права на PostgreSQL?</H3>
- <P>PostgreSQL ÒÁÓÐÒÏÓÔÒÁÎÑÅÔÓÑ ÐÏ ËÌÁÓÓÉÞÅÓËÏÊ ÌÉÃÅÎÚÉÉ BSD. üÔÁ
- ÌÉÃÅÎÚÉÑ ÎÅ ÓÏÄÅÒÖÉÔ ÏÇÒÁÎÉÞÅÎÉÊ ÎÁ ÔÏ, ËÁË ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ
- ÉÓÈÏÄÎÙÊ ËÏÄ. îÁÍ ÎÒÁ×ÉÔÓÑ ÜÔÁ ÌÉÃÅÎÚÉÑ É Õ ÎÁÓ ÎÅÔ ÎÁÍÅÒÅÎÉÊ Å£
- ÍÅÎÑÔØ. ÷ÏÔ ÜÔÁ ÌÉÃÅÎÚÉÑ BSD, ËÏÔÏÒÕÀ ÍÙ ÉÓÐÏÌØÚÕÅÍ:</P>
+ <P>PostgreSQL распространяется по классической лицензии BSD. Эта
+ лицензия не содержит ограничений на то, как будет использоваться
+ исходный код. Нам нравится эта лицензия и у нас нет намерений её
+ менять. Вот эта лицензия BSD, которую мы используем:</P>
- <P>óÉÓÔÅÍÁ õÐÒÁ×ÌÅÎÉÑ âÁÚÁÍÉ äÁÎÎÙÈ PostgreSQL</P>
+ <P>Система Управления Базами Данных PostgreSQL</P>
<P>Portions copyright (c) 1996-2008, PostgreSQL Global Development
Group Portions Copyright (c) 1994-1996 Regents of the University of
California</P>
- <P>ðÒÅÄÏÓÔÁ×ÌÑÀÔÓÑ ÐÒÁ×Á ÎÁ ÉÓÐÏÌØÚÏ×ÁÎÉÅ, ËÏÐÉÒÏ×ÁÎÉÅ, ÉÚÍÅÎÅÎÉÅ
- É ÒÁÓÐÒÏÓÔÒÁÎÅÎÉÅ ÄÁÎÎÏÇÏ ÐÒÏÇÒÁÍÍÎÏÇÏ ÏÂÅÓÐÅÞÅÎÉÑ É ÅÇÏ ÄÏËÕÍÅÎÔÁÃÉÉ
- ÄÌÑ ÌÀÂÙÈ ÃÅÌÅÊ, ÂÅÓÐÌÁÔÎÏ É ÂÅÚ ÐÏÄÐÉÓÁÎÉÑ ËÁËÏÇÏ-ÌÉÂÏ ÓÏÇÌÁÛÅÎÉÑ,
- ÐÒÉ ÕÓÌÏ×ÉÉ ÞÔÏ ÄÌÑ ËÁÖÄÏÊ ËÏÐÉÉ ÂÕÄÕÔ ÐÒÅÄÏÓÔÁ×ÌÅÎÙ ÄÁÎÎÏÅ ×ÙÛÅ
- ÚÁÍÅÞÁÎÉÅ Ï Á×ÔÏÒÓËÉÈ ÐÒÁ×ÁÈ, ÔÅËÕÝÉÊ ÐÁÒÁÇÒÁÆ É Ä×Á ÓÌÅÄÕÀÝÉÈ
- ÐÁÒÁÇÒÁÆÁ.</P>
-
- <P>ëáìéæïòîéêóëéê õîé÷åòóéôåô îå îåóåô îéëáëïê ïô÷åôóô÷åîîïóôé
- úá ìàâùå ðï÷òåöäåîéñ, ÷ëìàþáñ ðïôåòà äïèïäá, îáîåóåîîùå ðòñíùí
- éìé îåðòñíùí, óðåãéáìøîùí éìé óìõþáêîùí éóðïìøúï÷áîéåí äáîîïçï
- ðòïçòáííîïçï ïâåóðåþåîéñ éìé åçï äïëõíåîôáãéé, äáöå åóìé
- ëáìéæïòîéêóëéê õîé÷åòóéôåô âùì éú÷åýåî ï ÷ïúíïöîïóôé ôáëéè
- ðï÷òåöäåîéê.</P>
-
- <P>ëáìéæïòîéêóëéê õîé÷åòóéôåô óðåãéáìøîï ïôëáúù÷áúù÷áåôóñ ðòåäïóôá÷ìñôø
- ìàâùå çáòáîôéé, ÷ëìàþáñ, îï îå ïçòáîéþé÷áñóø ôïìøëï üôéíé çáòáîôéñíé:
- îåñ÷îùå çáòáîôéé ðòéçïäîïóôé ôï÷áòá éìé ðòéçïäîïóôé äìñ ïôäåìøîïê ãåìé.
- äáîîïå ðòïçòáííîïå ïâåóðåþåîéå ðòåäïóôá÷ìñåôóñ îá ïóîï÷å ðòéãéðá
- "ëáë åóôø" é ëáìéæïòîéêóëéê õîé÷åòóéôåô îå ïâñúáî ðòåäïóôá÷ìñôø
- óïðòï÷ïöäåîéå, ðïääåòöëõ, ïâîï÷ìåîéñ, òáóûéòåîéñ éìé éúíåîåîéñ.</P>
-
- <H3><A name="item1.4">1.4</A>) îÁ ËÁËÉÈ ÐÌÁÔÆÏÒÍÁÈ ÒÁÂÏÔÁÅÔ PostgreSQL?</H3>
-
- <P>ïÂÙÞÎÏ, PostgreSQL ÍÏÖÅÔ ÒÁÂÏÔÁÔØ ÎÁ ÌÀÂÏÊ ÓÏ×ÒÅÍÅÎÎÏÊ ÐÌÁÔÆÏÒÍÅ
- ÓÏ×ÍÅÓÔÉÍÏÊ Ó Unix. ÷ ÉÎÓÔÒÕËÃÉÉ ÐÏ ÕÓÔÁÎÏ×ËÅ, ×Ù ÎÁÊÄÅÔÅ ÓÐÉÓÏË
- ÔÅÈ ÐÌÁÔÆÏÒÍ, ÎÁ ËÏÔÏÒÙÈ ÂÙÌÉ ÐÒÏ×ÅÄÅÎÙ ÔÅÓÔÏ×ÙÅ ÚÁÐÕÓËÉ PostgreSQL
- Ë ÍÏÍÅÎÔÕ ×ÙÈÏÄÁ ÄÁÎÎÏÊ ×ÅÒÓÉÉ.</P>
-
- <P>PostgreSQL ÔÁËÖÅ ÒÁÂÏÔÁÅÔ ÎÁ ÏÐÅÒÁÃÉÏÎÎÙÈ ÓÉÓÔÅÍÁÈ Microsoft
- Windows, ÏÓÎÏ×ÁÎÎÙÈ ÎÁ NT, ÔÁËÉÈ ËÁË Win2000 SP4, WinXP É Win2003.
- ðÁËÅÔ ÉÎÓÔÁÌÌÑÔÏÒÁ ÄÏÓÔÕÐÅÎ ÐÏ ÁÄÒÅÓÕ
+ <P>Предоставляются права на использование, копирование, изменение
+ и распространение данного программного обеспечения и его документации
+ для любых целей, бесплатно и без подписания какого-либо соглашения,
+ пÑ\80и Ñ\83Ñ\81ловии Ñ\87Ñ\82о длÑ\8f каждой копии бÑ\83дÑ\83Ñ\82 пÑ\80едоÑ\81Ñ\82авленÑ\8b данное вÑ\8bÑ\88е
+ замечание об авторских правах, текущий параграф и два следующих
+ паÑ\80агÑ\80аÑ\84а.</P>
+
+ <P>КАЛИФОРНИЙСКИЙ УНИВЕРСИТЕТ НЕ НЕСЕТ НИКАКОЙ ОТВЕТСТВЕННОСТИ
+ ЗА ЛЮБЫЕ ПОВРЕЖДЕНИЯ, ВКЛЮЧАЯ ПОТЕРЮ ДОХОДА, НАНЕСЕННЫЕ ПРЯМЫМ
+ ИЛИ НЕПРЯМЫМ, СПЕЦИАЛЬНЫМ ИЛИ СЛУЧАЙНЫМ ИСПОЛЬЗОВАНИЕМ ДАННОГО
+ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ИЛИ ЕГО ДОКУМЕНТАЦИИ, ДАЖЕ ЕСЛИ
+ КАЛИФОРНИЙСКИЙ УНИВЕРСИТЕТ БЫЛ ИЗВЕЩЕН О ВОЗМОЖНОСТИ ТАКИХ
+ ПОВРЕЖДЕНИЙ.</P>
+
+ <P>КАЛИФОРНИЙСКИЙ УНИВЕРСИТЕТ СПЕЦИАЛЬНО ОТКАЗЫВАЗЫВАЕТСЯ ПРЕДОСТАВЛЯТЬ
+ ЛЮБЫЕ ГАРАНТИИ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ТОЛЬКО ЭТИМИ ГАРАНТИЯМИ:
+ НЕЯВНЫЕ ГАРАНТИИ ПРИГОДНОСТИ ТОВАРА ИЛИ ПРИГОДНОСТИ ДЛЯ ОТДЕЛЬНОЙ ЦЕЛИ.
+ ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ НА ОСНОВЕ ПРИЦИПА
+ "КАК ЕСТЬ" И КАЛИФОРНИЙСКИЙ УНИВЕРСИТЕТ НЕ ОБЯЗАН ПРЕДОСТАВЛЯТЬ
+ СОПРОВОЖДЕНИЕ, ПОДДЕРЖКУ, ОБНОВЛЕНИЯ, РАСШИРЕНИЯ ИЛИ ИЗМЕНЕНИЯ.</P>
+
+ <H3><A name="item1.4">1.4</A>) На каких платформах работает PostgreSQL?</H3>
+
+ <P>Обычно, PostgreSQL может работать на любой современной платформе
+ совместимой с Unix. В инструкции по установке, вы найдете список
+ тех платформ, на которых были проведены тестовые запуски PostgreSQL
+ к моменту выхода данной версии.</P>
+
+ <P>PostgreSQL также работает на операционных системах Microsoft
+ Windows, основанных на NT, таких как Win2000 SP4, WinXP и Win2003.
+ Пакет инсталлятора доступен по адресу
<A href="http://www.postgresql.org/download/windows">
- http://www.postgresql.org/download/windows</A>. ÷ÅÒÓÉÉ Windows,
- ÏÓÎÏ×ÁÎÎÙÅ ÎÁ MS-DOS (Win95, Win98, WinMe) ÍÏÇÕÔ ÚÁÐÕÓËÁÔØ
- PostgreSQL Ó ÐÏÍÏÝØÀ Cygwin.</P>
+ http://www.postgresql.org/download/windows</A>. Версии Windows,
+ основанные на MS-DOS (Win95, Win98, WinMe) могут запускать
+ PostgreSQL с помощью Cygwin.</P>
- <P>ôÁËÖÅ ÓÕÝÅÓÔ×ÕÅÔ ×ÅÒÓÉÑ ÓÐÏÒÔÉÒÏ×ÁÎÎÁÑ ÐÏÄ Novell Netware 6 ÎÁ
+ <P>Также существует версия спортированная под Novell Netware 6 на
<A href="http://developer.novell.com/wiki/index.php/Postgresql">http://developer.novell.com/wiki/index.php/Postgresql</A>,
- É ×ÅÒÓÉÑ ÄÌÑ OS/2 (eComStation) ÎÁ
+ и версия для OS/2 (eComStation) на
<A href="http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F">
http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F</A>.</P>
- <H3><A name="item1.5">1.5</A>) çÄÅ ÍÏÖÎÏ ×ÚÑÔØ PostgreSQL?</H3>
+ <H3><A name="item1.5">1.5</A>) Где можно взять PostgreSQL?</H3>
- <P>þÅÒÅÚ ÂÒÁÕÚÅÒ, ÉÓÐÏÌØÚÕÑ <a href="http://www.postgresql.org/ftp/">
- http://www.postgresql.org/ftp/</a> É ÞÅÒÅÚ ftp, ÉÓÐÏÌØÚÕÑ
+ <P>Через браузер, используя <a href="http://www.postgresql.org/ftp/">
+ http://www.postgresql.org/ftp/</a> и через ftp, используя
<A href="ftp://ftp.PostgreSQL.org/pub/">ftp://ftp.postgresql.org/pub/</A>.</P>
- <H3><A name="item1.6">1.6</A>) ëÁËÁÑ ×ÅÒÓÉÑ ÎÁÉÂÏÌÅÅ Ó×ÅÖÁÑ?</H3>
+ <H3><A name="item1.6">1.6</A>) Какая версия наиболее свежая?</H3>
- <P>ðÏÓÌÅÄÎÉÊ ×ÙÐÕÓË PostgreSQL - ÜÔÏ ×ÅÒÓÉÑ 8.3.3</P>
+ <P>Последний выпуск PostgreSQL - это версия 8.3.3</P>
- <P>íÙ ÐÌÁÎÉÒÕÅÍ ×ÙÐÕÓËÁÔØ ÎÏ×ÙÅ ÓÔÁÒÛÉÅ ×ÅÒÓÉÉ ËÁÖÄÙÊ ÇÏÄ,
- Á ÍÌÁÄÛÉÅ ×ÅÒÓÉÉ ËÁÖÄÙÅ ÎÅÓËÏÌØËÏ ÍÅÓÑÃÅ×.</P>
+ <P>Мы планируем выпускать новые старшие версии каждый год,
+ а младшие версии каждые несколько месяцев.</P>
- <H3><A name="item1.7">1.7</A>) çÄÅ ÐÏÌÕÞÉÔØ ÐÏÄÄÅÒÖËÕ?</H3>
+ <H3><A name="item1.7">1.7</A>) Где получить поддержку?</H3>
- <P>óÏÏÂÝÅÓÔ×Ï PostgreSQL ÐÒÅÄÏÓÔÁ×ÌÑÅÔ ÐÏÍÏÝØ ÍÎÏÖÅÓÔ×Õ ÐÏÌØÚÏ×ÁÔÅÌÅÊ
- ÞÅÒÅÚ E-mail. ïÓÎÏ×ÎÏÊ web-ÓÁÊÔ ÄÌÑ ÐÏÄÐÉÓËÉ ÎÁ ÓÐÉÓËÉ ÒÁÓÓÙÌËÉ ÐÏ
- E-mail ÜÔÏ: <A href="http://www.postgresql.org/community/lists/">
- http://www.postgresql.org/community/lists/</A>. èÏÒÏÛÉÍ ÍÅÓÔÏÍ ÄÌÑ
- ÔÏÇÏ, ÞÔÏÂÙ ÎÁÞÁÔØ ÚÁÄÁ×ÁÔØ ×ÏÐÒÏÓÙ Ñ×ÌÑÀÔÓÑ ÓÐÉÓËÉ <i>general</i>
- (ÏÂÝÉÅ ×ÏÐÒÏÓÙ) ÉÌÉ <i>bugs</i> (ÏÛÉÂËÉ).</P>
+ <P>Сообщество PostgreSQL предоставляет помощь множеству пользователей
+ через E-mail. Основной web-сайт для подписки на списки рассылки по
+ E-mail это: <A href="http://www.postgresql.org/community/lists/">
+ http://www.postgresql.org/community/lists/</A>. Хорошим местом для
+ того, чтобы начать задавать вопросы являются списки <i>general</i>
+ (общие вопросы) или <i>bugs</i> (ошибки).</P>
- <P>çÌÁ×ÎÙÍ IRC ËÁÎÁÌÏÍ Ñ×ÌÑÅÔÓÑ <I>#postgreql</I>,
- ÒÁÓÐÏÌÏÖÅÎÎÙÊ ÎÁ ÓÅÒ×ÅÒÅ Freenode (<I>irc.freenode.net</I>). þÔÏÂÙ
- ÐÏÄËÌÀÞÉÔØÓÑ, ×Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ × Unix ×ÙÚÏ× ÐÒÏÇÒÁÍÍÙ
- <code>irc -c '#postgresql' "$USER" irc.freenode.net</code> ÉÌÉ
- ÌÀÂÏÊ ÄÒÕÇÏÊ IRC ËÌÉÅÎÔ. îÁ ÜÔÏÍ ÖÅ ÓÅÒ×ÅÒÅ ÓÕÝÅÓÔ×ÕÀÔ ËÁÎÁÌÙ ÎÁ
- ÉÓÐÁÎÓËÏÍ (<I>#postgresql-es</I>), ÆÒÁÎÃÕÚÓËÏÍ (<I>#postgresqlfr</I>)
- É ÂÒÁÚÉÌØÓËÏÍ (<I>#postgresql-br</I>) ÑÚÙËÁÈ. ôÁËÖÅ ÓÕÝÅÓÔ×ÕÅÔ ËÁÎÁÌ
- ÐÏ PostgreSQL ÎÁ ÓÅÒ×ÅÒÅ EFNet.</P>
+ <P>Главным IRC каналом является <I>#postgreql</I>,
+ расположенный на сервере Freenode (<I>irc.freenode.net</I>). Чтобы
+ подклÑ\8eÑ\87иÑ\82Ñ\8cÑ\81Ñ\8f, вÑ\8b можеÑ\82е иÑ\81полÑ\8cзоваÑ\82Ñ\8c в Unix вÑ\8bзов пÑ\80огÑ\80аммÑ\8b
+ <code>irc -c '#postgresql' "$USER" irc.freenode.net</code> или
+ любой другой IRC клиент. На этом же сервере существуют каналы на
+ испанском (<I>#postgresql-es</I>), французском (<I>#postgresqlfr</I>)
+ и бразильском (<I>#postgresql-br</I>) языках. Также существует канал
+ по PostgreSQL на Ñ\81еÑ\80веÑ\80е EFNet.</P>
- <P>óÐÉÓÏË ËÏÍÍÅÒÞÅÓËÏÊ ÐÏÄÄÅÒÖËÉ ËÏÍÐÁÎÉÊ ÄÏÓÔÕÐÅÎ ÎÁ
+ <P>Список коммерческой поддержки компаний доступен на
<A href="http://www.postgresql.org/support/professional_support">
http://www.postgresql.org/support/professional_support</A>.</P>
- <H3><A name="item1.8">1.8</A>) ëÁË ÍÎÅ ÓÏÏÂÝÉÔØ Ï ÏÛÉÂËÅ?</H3>
+ <H3><A name="item1.8">1.8</A>) Как мне сообщить об ошибке?</H3>
- <P>ðÏÓÅÔÉÔÅ ÓÔÒÁÎÉÞËÕ ÓÏ ÓÐÅÃÉÁÌØÎÏÊ ÆÏÒÍÏÊ ÏÔÞ£ÔÁ Ï ÏÛÉÂËÅ ×
- PostgreSQL ÐÏ ÁÄÒÅÓÕ:
+ <P>Посетите страничку со специальной формой отчёта об ошибке в
+ PostgreSQL по адÑ\80еÑ\81Ñ\83:
<A HREF="http://www.postgresql.org/support/submitbug">
http://www.postgresql.org/support/submitbug</A>.
- ôÁËÖÅ ÐÒÏ×ÅÒØÔÅ ÎÁÌÉÞÉÅ ÂÏÌÅÅ Ó×ÅÖÅÊ ×ÅÒÓÉÉ PostgreSQL ÎÁ ÎÁÛÅÍ
- FTP ÓÁÊÔÅ <A href="ftp://ftp.postgresql.org/pub/">
+ Также проверьте наличие более свежей версии PostgreSQL на нашем
+ FTP сайте <A href="ftp://ftp.postgresql.org/pub/">
ftp://ftp.postgresql.org/pub/</A>.</P>
- <P>îÁ ÏÛÉÂËÉ, Õ×ÅÄÏÍÌÅÎÉÅ Ï ËÏÔÏÒÙÈ ÂÙÌÉ ÓÄÅÌÁÎÙ ÞÅÒÅÚ ÓÐÅÃÉÁÌØÎÕÀ
- ÆÏÒÍÕ ÉÌÉ ÏÔÐÒÁ×ÌÅÎÎÙÅ × ËÁËÏÊ-ÌÉÂÏ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ PostgreSQL,
- ÏÂÙÞÎÏ ÇÅÎÅÒÉÒÕÅÔÓÑ ÏÄÉÎ ÉÚ ÓÌÅÄÕÀÝÉÈ ÏÔ×ÅÔÏ×:</P>
+ <P>На ошибки, уведомление о которых были сделаны через специальную
+ форму или отправленные в какой-либо список рассылки PostgreSQL,
+ обычно генерируется один из следующих ответов:</P>
<UL>
- <LI>üÔÏ ÎÅ ÏÛÉÂËÁ É ÐÏÞÅÍÕ</LI>
- <LI>üÔÏ ÉÚ×ÅÓÔÎÁÑ ÏÛÉÂËÁ É ÏÎÁ ÕÖÅ ÅÓÔØ × ÓÐÉÓËÅ
+ <LI>Это не ошибка и почему</LI>
+ <LI>Это известная ошибка и она уже есть в списке
<A HREF="http://www.postgresql.org/docs/faqs.TODO.html">TODO</A></LI>
- <LI>äÁÎÎÁÑ ÏÛÉÂËÁ ÂÙÌÁ ÉÓÐÒÁ×ÌÅÎÁ × ÔÅËÕÝÅÍ ×ÙÐÕÓËÅ</LI>
- <LI>äÁÎÎÁÑ ÏÛÉÂËÁ ÂÙÌÁ ÉÓÐÒÁ×ÌÅÎÁ, ÎÏ ÉÓÐÒÁ×ÌÅÎÉÅ ÐÏËÁ ÎÅ ÐÏÐÁÌÏ ×
- ÏÆÉÃÉÁÌØÎÙÊ ×ÙÐÕÓË</LI>
- <LI>úÁÐÒÁÛÉ×ÁÅÔÓÑ ÂÏÌÅÅ ÄÅÔÁÌØÎÁÑ ÉÎÆÏÒÍÁÃÉÑ:
+ <LI>Данная ошибка была исправлена в текущем выпуске</LI>
+ <LI>Данная ошибка была исправлена, но исправление пока не попало в
+ официальный выпуск</LI>
+ <LI>Запрашивается более детальная информация:
<UL>
- <LI>ïÐÅÒÁÃÉÏÎÎÁÑ ÓÉÓÔÅÍÁ</LI>
- <LI>÷ÅÒÓÉÑ PostgreSQL</LI>
- <LI>ôÅÓÔ, ×ÏÓÐÒÏÉÚ×ÏÄÑÝÉÊ ÏÛÉÂËÕ</LI>
- <LI>ïÔÌÁÄÏÞÎÁÑ ÉÎÆÏÒÍÁÃÉÑ</LI>
- <LI>÷Ù×ÏÄ backtrace ÏÔÌÁÄÞÉËÁ</LI>
+ <LI>Операционная система</LI>
+ <LI>Версия PostgreSQL</LI>
+ <LI>Тест, воспроизводящий ошибку</LI>
+ <LI>Отладочная информация</LI>
+ <LI>Вывод backtrace отладчика</LI>
</UL>
</LI>
- <LI>üÔÏ ÎÏ×ÁÑ ÏÛÉÂËÁ. íÏÖÅÔ ÐÒÏÉÚÏÊÔÉ ÓÌÅÄÕÀÝÅÅ:
+ <LI>Это новая ошибка. Может произойти следующее:
<UL>
- <LI>âÕÄÅÔ ÓÏÚÄÁÎÏ ÉÓÐÒÁ×ÌÅÎÉÅ, ËÏÔÏÒÏÅ ÂÕÄÅÔ ×ËÌÀÞÅÎÏ × ÓÌÅÄÕÀÝÉÊ
- ×ÙÐÕÓË</LI>
- <LI>ïÛÉÂËÁ ÎÅ ÍÏÖÅÔ ÂÙÔØ ÉÓÐÒÁ×ÌÅÎÁ ÎÅÍÅÄÌÅÎÎÏ É ÂÕÄÅÔ ÄÏÂÁ×ÌÅÎÁ × ÓÐÉÓÏË
+ <LI>Будет создано исправление, которое будет включено в следующий
+ выпуск</LI>
+ <LI>Ошибка не может быть исправлена немедленно и будет добавлена в список
<A HREF="http://www.postgresql.org/docs/faqs.TODO.html">TODO</A></LI>
</UL>
</LI>
</UL>
- <H3><A name="1.9">1.9</A>) ëÁË ÎÁÊÔÉ ÉÎÆÏÒÍÁÃÉÀ Ï ÉÚ×ÅÓÔÎÙÈ ÏÛÉÂËÁÈ
- ÉÌÉ ÏÔÓÕÔÓÔ×ÕÀÝÉÈ ×ÏÚÍÏÖÎÏÓÔÑÈ?</H3>
+ <H3><A name="1.9">1.9</A>) Как найти информацию об известных ошибках
+ или отсутствующих возможностях?</H3>
- <P>PostgreSQL ÐÏÄÄÅÒÖÉ×ÁÅÔ ÒÁÓÛÉÒÅÎÎÙÊ ÐÏÄËÌÁÓÓ <SMALL>SQL:2003</SMALL>.
- óÍÏÔÒÉÔÅ ÎÁÛ ÓÐÉÓÏË <A href="http://www.postgresql.org/docs/faqs.TODO.html">TODO</A>
- ÎÁ ÐÒÅÄÍÅÔ ÉÚ×ÅÓÔÎÙÈ ÏÛÉÂÏË, ÏÔÓÕÔÓÔ×ÕÀÝÉÈ ×ÏÚÍÏÖÎÏÓÔÅÊ É ÂÕÄÕÝÉÈ
- ÐÌÁÎÏ×.</P>
+ <P>PostgreSQL поддеÑ\80живаеÑ\82 Ñ\80аÑ\81Ñ\88иÑ\80еннÑ\8bй подклаÑ\81Ñ\81 <SMALL>SQL:2003</SMALL>.
+ Смотрите наш список <A href="http://www.postgresql.org/docs/faqs.TODO.html">TODO</A>
+ на предмет известных ошибок, отсутствующих возможностей и будущих
+ планов.</P>
- <P>îÁ ÚÁÐÒÏÓ ËÁËÏÊ-ÌÉÂÏ ×ÏÚÍÏÖÎÏÓÔÉ ÏÂÙÞÎÏ ÐÒÉÈÏÄÑÔ ÓÌÅÄÕÀÝÉÅ ÏÔ×ÅÔÙ:</P>
+ <P>На запрос какой-либо возможности обычно приходят следующие ответы:</P>
<UL>
- <LI>äÁÎÎÁÑ ×ÏÚÍÏÖÎÏÓÔØ ÕÖÅ ÅÓÔØ × ÓÐÉÓËÅ
+ <LI>Данная возможность уже есть в списке
<A href="http://www.postgresql.org/docs/faqs.TODO.html">TODO</A></LI>
- <LI>äÁÎÎÁÑ ×ÏÚÍÏÖÎÏÓÔØ ÎÅÖÅÌÁÔÅÌØÎÁ ÐÏÔÏÍÕ ÞÔÏ:
+ <LI>Данная возможность нежелательна потому что:
<UL>
- <LI>ïÎÁ ÄÕÂÌÉÒÕÅÔ ÓÕÝÅÓÔ×ÕÀÝÕÀ ÆÕÎËÃÉÏÎÁÌØÎÏÓÔØ, ËÏÔÏÒÁÑ ÓÌÅÄÕÅÔ
- ÓÔÁÎÄÁÒÔÕ SQL</LI>
- <LI>äÁÎÎÁÑ ×ÏÚÍÏÖÎÏÓÔØ ÓÉÌØÎÏ ÕÓÌÏÖÎÉÌÁ ÂÙ ËÏÄ, ÎÏ ÄÁÌÁ ÂÙ ÍÁÌÅÎØËÕÀ
- ×ÙÇÏÄÕ</LI>
- <LI>äÁÎÎÁÑ ×ÏÚÍÏÖÎÏÓÔØ ÎÅÂÅÚÏÐÁÓÎÁ ÉÌÉ ÎÅÎÁÄ£ÖÎÁ</LI>
+ <LI>Она дублирует существующую функциональность, которая следует
+ стандарту SQL</LI>
+ <LI>Данная возможность сильно усложнила бы код, но дала бы маленькую
+ выгоду</LI>
+ <LI>Данная возможность небезопасна или ненадёжна</LI>
</UL>
</LI>
- <LI>äÁÎÎÁÑ ÎÏ×ÁÑ ×ÏÚÍÏÖÎÏÓÔØ ÄÏÂÁ×ÌÅÎÁ × ÓÐÉÓÏË
+ <LI>Данная новая возможность добавлена в список
<A href="http://www.postgresql.org/docs/faqs.TODO.html">TODO</A>
</LI>
</UL>
- <P>PostgreSQL ÎÅ ÉÓÐÏÌØÚÕÅÔ ËÁËÕÀ-ÌÉÂÏ ÓÉÓÔÅÍÕ ÏÔÓÌÅÖÉ×ÁÎÉÑ ÏÛÉÂÏË,
- ÐÏÔÏÍÕ ÞÔÏ ÍÙ ÏÂÎÁÒÕÖÉÌÉ, ÞÔÏ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÐÒÑÍÏÇÏ ÏÂÒÁÝÅÎÉÑ ÐÏ
- ÜÌÅËÔÒÏÎÎÏÊ ÐÏÞÔÅ É ÏÂÎÏ×ÌÑÅÍÏÇÏ ÓÐÉÓËÁ
+ <P>PostgreSQL не использует какую-либо систему отслеживания ошибок,
+ поÑ\82омÑ\83 Ñ\87Ñ\82о мÑ\8b обнаÑ\80Ñ\83жили, Ñ\87Ñ\82о иÑ\81полÑ\8cзование пÑ\80Ñ\8fмого обÑ\80аÑ\89ениÑ\8f по
+ электронной почте и обновляемого списка
<A href="http://www.postgresql.org/docs/faqs.TODO.html">TODO</A>
- Ñ×ÌÑÅÔÓÑ ÂÏÌÅÅ ÜÆÆÅËÔÉ×ÎÙÍ. îÁ ÐÒÁËÔÉËÅ, ÏÛÉÂËÉ × ÐÒÏÇÒÁÍÍÎÏÍ
- ÏÂÅÓÐÅÞÅÎÉÉ ÓÏÈÒÁÎÑÀÔÓÑ ÏÞÅÎØ ÎÅÄÏÌÇÏ, Á ÏÛÉÂËÉ, ËÏÔÏÒÙÅ ×ÁÖÎÙ
- ÂÏÌØÛÏÍÕ ËÏÌÉÞÅÓÔ×Õ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÉÓÐÒÁ×ÌÑÀÔÓÑ ÍÏÍÅÎÔÁÌØÎÏ. åÓÔØ
- ÔÏÌØËÏ ÏÄÎÏ ÍÅÓÔÏ, ÇÄÅ ÍÏÖÎÏ ÎÁÊÔÉ ×ÓÅ ÉÚÍÅÎÅÎÉÑ, ÕÌÕÞÛÅÎÉÑ É
- ÉÓÐÒÁ×ÌÅÎÉÑ, ÓÄÅÌÁÎÎÙÅ × ×ÙÐÕÓËÅ PostgreSQL - ÜÔÏ ÖÕÒÎÁÌÙ ÓÏÏÂÝÅÎÉÊ
- ÓÉÓÔÅÍÙ ËÏÎÔÒÏÌÑ ×ÅÒÓÉÊ
+ Ñ\8fвлÑ\8fеÑ\82Ñ\81Ñ\8f более Ñ\8dÑ\84Ñ\84екÑ\82ивнÑ\8bм. Ð\9dа пÑ\80акÑ\82ике, оÑ\88ибки в пÑ\80огÑ\80аммном
+ обеспечении сохраняются очень недолго, а ошибки, которые важны
+ большому количеству пользователей исправляются моментально. Есть
+ только одно место, где можно найти все изменения, улучшения и
+ исправления, сделанные в выпуске PostgreSQL - это журналы сообщений
+ системы контроля версий
<A HREF="http://www.postgresql.org/developer/sourcecode/">CVS</A>.
- äÁÖÅ ÚÁÍÅÞÁÎÉÑ Ë ×ÙÐÕÓËÁÍ ÎÅ ÓÏÄÅÒÖÁÔ ×ÓÅ ÉÚÍÅÎÅÎÉÑ, ÓÄÅÌÁÎÎÙÅ
- × ÐÒÏÇÒÁÍÍÎÏÍ ÏÂÅÓÐÅÞÅÎÉÉ.</P>
+ Даже замечания к выпускам не содержат все изменения, сделанные
+ в программном обеспечении.</P>
- <H3><A name="item1.10">1.10</A>) ëÁËÁÑ ÄÏËÕÍÅÎÔÁÃÉÑ ÉÍÅÅÔÓÑ × ÎÁÌÉÞÉÉ?</H3>
+ <H3><A name="item1.10">1.10</A>) Какая документация имеется в наличии?</H3>
- <P>PostgreSQL ÓÏÄÅÒÖÉÔ ÍÎÏÇÏ ÄÏËÕÍÅÎÔÁÃÉÉ, ×ËÌÀÞÁÑ ÂÏÌØÛÏÅ ÒÕËÏ×ÏÄÓÔ×Ï,
- ÓÔÒÁÎÉÃÙ ÜÌÅËÔÒÏÎÎÏÇÏ ÒÕËÏ×ÏÄÓÔ×Á man É ÎÅËÏÔÏÒÙÅ ÍÁÌÅÎØËÉÅ ÔÅÓÔÏ×ÙÅ
- ÐÒÉÍÅÒÙ. óÍÏÔÒÉÔÅ × ËÁÔÁÌÏÇ <I>/doc</I>. ÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÐÒÏÓÍÁÔÒÉ×ÁÔØ
- ÄÏËÕÍÅÎÔÁÃÉÀ × éÎÔÅÒÎÅÔ ÐÏ ÁÄÒÅÓÕ <A href="http://www.postgresql.org/docs">
+ <P>PostgreSQL содержит много документации, включая большое руководство,
+ страницы электронного руководства man и некоторые маленькие тестовые
+ пÑ\80имеÑ\80Ñ\8b. СмоÑ\82Ñ\80иÑ\82е в каÑ\82алог <I>/doc</I>. Ð\92Ñ\8b Ñ\82акже можеÑ\82е пÑ\80оÑ\81маÑ\82Ñ\80иваÑ\82Ñ\8c
+ документацию в Интернет по адресу <A href="http://www.postgresql.org/docs">
http://www.postgresql.org/docs</A>.</P>
- <P>óÕÝÅÓÔ×ÕÅÔ Ä×Å ËÎÉÇÉ ÐÏ PostgreSQL ÄÏÓÔÕÐÎÙÅ ÐÏ ÁÄÒÅÓÁÍ <A href=
+ <P>Существует две книги по PostgreSQL доступные по адресам <A href=
"http://www.PostgreSQL.org/docs/books/awbook.html">http://www.PostgreSQL.org/docs/books/awbook.html</A>
- É <a href="http://www.commandprompt.com/ppbook/">http://www.commandprompt.com/ppbook/</a>.
- åÓÔØ ÎÅÓËÏÌØËÏ ËÎÉÇ ÐÏ PostgreSQL, ËÏÔÏÒÙÅ ÍÏÖÎÏ ËÕÐÉÔØ.
- ïÄÎÕ ÉÚ ÎÁÉÂÏÌÅÅ ÐÏÐÕÌÑÒÎÙÈ ÎÁÐÉÓÁÌ ëÏÒÒÉ äÕÇÌÁÓ (Korry Douglas).
- óÐÉÓÏË ÏÂÚÏÒÏ× ÐÏ ÜÔÉÍ ËÎÉÇÁÍ ÄÏÓÔÕÐÅÎ ÐÏ ÁÄÒÅÓÕ
+ и <a href="http://www.commandprompt.com/ppbook/">http://www.commandprompt.com/ppbook/</a>.
+ Есть несколько книг по PostgreSQL, которые можно купить.
+ Одну из наиболее популярных написал Корри Дуглас (Korry Douglas).
+ Список обзоров по этим книгам доступен по адресу
<a href="http://www.postgresql.org/docs/books/">http://www.postgresql.org/docs/books/</a>.
- ëÒÏÍÅ ÔÏÇÏ, ÐÏ ÁÄÒÅÓÕ <a href="http://wiki.postgresql.org/wiki/Community_Generated_Articles%2C_Guides%2C_and_Documentation">http://wiki.postgresql.org/wiki/Community_Generated_Articles%2C_Guides%2C_and_Documentation</a>
- ×Ù ÍÏÖÅÔÅ ÎÁÊÔÉ ËÏÌÌÅËÃÉÀ ÔÅÈÎÉÞÅÓËÉÈ ÓÔÁÔÅÊ, ÐÏÓ×ÅÝÅÎÎÙÈ PostgreSQL.</P>
+ Кроме того, по адресу <a href="http://wiki.postgresql.org/wiki/Community_Generated_Articles%2C_Guides%2C_and_Documentation">http://wiki.postgresql.org/wiki/Community_Generated_Articles%2C_Guides%2C_and_Documentation</a>
+ вы можете найти коллекцию технических статей, посвещенных PostgreSQL.</P>
- <P>ëÌÉÅÎÔ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ <I>psql</I> ÉÍÅÅÔ ÎÅÓËÏÌØËÏ ËÏÍÁÎÄ \d ÄÌÑ
- ÏÔÏÂÒÁÖÅÎÉÑ ÉÎÆÏÒÍÁÃÉÉ ÐÏ ÔÉÐÁÍ, ÏÐÅÒÁÔÏÒÁÍ, ÆÕÎËÃÉÑÍ, ÁÇÒÅÇÁÔÁÍ É Ô.Ä. -
- ÉÓÐÏÌØÚÕÊÔÅ \? ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÓÐÉÓËÁ ÄÏÓÔÕÐÎÙÈ ËÏÍÁÎÄ.</P>
+ <P>Клиент командной строки <I>psql</I> имеет несколько команд \d для
+ отображения информации по типам, операторам, функциям, агрегатам и т.д. -
+ используйте \? для получения списка доступных команд.</P>
- <P>îÁÛ ÓÁÊÔ ÓÏÄÅÒÖÉÔ ÅÝÅ ÂÏÌØÛÅ ÉÎÆÏÒÍÁÃÉÉ.</P>
+ <P>Наш сайт содержит еще больше информации.</P>
- <H3><A name="item1.11">1.11</A>) ëÁË ÍÎÅ ÎÁÕÞÉÔØÓÑ <SMALL>SQL</SMALL>?</H3>
+ <H3><A name="item1.11">1.11</A>) Как мне научиться <SMALL>SQL</SMALL>?</H3>
- <P>÷Ï-ÐÅÒ×ÙÈ, ×ÏÚØÍÉÔÅ ÏÄÎÕ ÉÚ ËÎÉÇ ÐÏ PostgreSQL, Ï ËÏÔÏÒÙÈ ÇÏ×ÏÒÉÌÏÓØ
- ×ÙÛÅ. íÎÏÇÉÍ ÉÚ ÎÁÛÉÈ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÔÁËÖÅ ÎÒÁ×ÉÔÓÑ ËÎÉÇÁ
+ <P>Во-первых, возьмите одну из книг по PostgreSQL, о которых говорилось
+ выше. Многим из наших пользователей также нравится книга
<I>The Practical SQL Handbook</I>,
- Bowman, Judith S., et al., Addison-Wesley. äÒÕÇÉÍ ÎÒÁ×ÉÔÓÑ <I>The
+ Bowman, Judith S., et al., Addison-Wesley. Другим нравится <I>The
Complete Reference SQL</I>, Groff et al., McGraw-Hill.</P>
- <P>óÕÝÅÓÔ×ÕÅÔ ÔÁËÖÅ ÍÎÏÖÅÓÔ×Ï ÐÒÅËÒÁÓÎÙÈ ÕÞÅÂÎÉËÏ× ÄÏÓÔÕÐÎÙÈ × online:
+ <P>Существует также множество прекрасных учебников доступных в online:
<UL>
<LI><A href="http://www.intermedia.net/support/sql/sqltut.shtm">http://www.intermedia.net/support/sql/sqltut.shtm,</A>
</LI>
</UL>
</P>
- <H3><A name="item1.12">1.12</A>) ëÁË ÍÎÅ ÐÒÉÓÌÁÔØ ÉÓÐÒÁ×ÌÅÎÉÅ ÉÌÉ ÐÒÉÓÏÅÄÉÎÉÔÓÑ Ë ËÏÍÁÎÄÅ ÒÁÚÒÁÂÏÔÞÉËÏ×?</H3>
+ <H3><A name="item1.12">1.12</A>) Как мне прислать исправление или присоединится к команде разработчиков?</H3>
- <P>óÍÏÔÒÉÔÅ <a href="http://www.postgresql.org/docs/faqs.FAQ_DEV.html">
- FAQ ÄÌÑ ÒÁÚÒÁÂÏÔÞÉËÏ×</A>.</P>
+ <P>Смотрите <a href="http://www.postgresql.org/docs/faqs.FAQ_DEV.html">
+ FAQ для разработчиков</A>.</P>
- <H3><A name="item1.13">1.13</A>) ëÁË ÓÒÁ×ÎÉÔØ PostgreSQL Ó ÄÒÕÇÉÍÉ
- <SMALL>óõâä</SMALL>? íÏÖÅÔ ÌÉ PostgreSQL ÂÙÔØ ×ÓÔÒÏÅÎÎÙÍ?</H3>
+ <H3><A name="item1.13">1.13</A>) Как сравнить PostgreSQL с другими
+ <SMALL>СУБД</SMALL>? Может ли PostgreSQL быть встроенным?</H3>
<P>
- óÕÝÅÓÔ×ÕÅÔ ÎÅÓËÏÌØËÏ ÍÅÔÏÄÏ× ÓÒÁ×ÎÅÎÉÑ ÐÒÏÇÒÁÍÍÎÏÇÏ ÏÂÅÓÐÅÞÅÎÉÑ:
- ×ÏÚÍÏÖÎÏÓÔÉ, ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ, ÎÁÄÅÖÎÏÓÔØ, ÐÏÄÄÅÒÖËÁ É ÃÅÎÁ.</P>
+ Существует несколько методов сравнения программного обеспечения:
+ возможности, производительность, надежность, поддержка и цена.</P>
<DL>
- <DT><B>÷ÏÚÍÏÖÎÏÓÔÉ</B></DT>
-
- <DD>PostgreSQL ÉÍÅÅÔ ÂÏÌØÛÉÎÓÔ×Ï ×ÏÚÍÏÖÎÏÓÔÅÊ ÐÒÅÄÓÔÁ×ÌÅÎÎÙÈ
- × ÂÏÌØÛÉÈ ËÏÍÍÅÒÞÅÓËÉÈ <SMALL>óõâä</SMALL>, ÔÁËÉÅ ËÁË: ÔÒÁÎÚÁËÃÉÉ,
- ÐÏÄÚÁÐÒÏÓÙ, ÔÒÉÇÇÅÒÙ, ÐÒÅÄÓÔÁ×ÌÅÎÉÑ, ÓÓÙÌÏÞÎÏÊ
- ÃÅÌÏÓÔÎÏÓÔÉ ×ÔÏÒÉÞÎÏÇÏ ËÌÀÞÁ É ÒÁÚÎÙÅ ÂÌÏËÉÒÏ×ËÉ. õ ÎÁÓ ÅÓÔØ ÎÅËÏÔÏÒÙÅ ×ÏÚÍÏÖÎÏÓÔÉ,
- ËÏÔÏÒÙÈ ÎÅÔ Õ ÎÉÈ: ÔÉÐÙ, ÏÐÒÅÄÅÌÑÅÍÙÅ ÐÏÌØÚÏ×ÁÔÅÌÅÍ, ÍÅÈÁÎÉÚÍ
- ÎÁÓÌÅÄÏ×ÁÎÉÑ, ÐÒÁ×ÉÌÁ É ËÏÎËÕÒÅÔÎÏÅ ÍÎÏÇÏ×ÅÒÓÉÏÎÎÏÅ ÕÐÒÁ×ÌÅÎÉÅ
- ÄÌÑ ÒÁÂÏÔÙ Ó ÓÏÄÅÒÖÉÍÙÍ ÂÌÏËÉÒÏ×ÏË.<BR>
+ <DT><B>Возможности</B></DT>
+
+ <DD>PostgreSQL имеет большинство возможностей представленных
+ в больших коммерческих <SMALL>СУБД</SMALL>, такие как: транзакции,
+ подзапÑ\80оÑ\81Ñ\8b, Ñ\82Ñ\80иггеÑ\80Ñ\8b, пÑ\80едÑ\81Ñ\82авлениÑ\8f, Ñ\81Ñ\81Ñ\8bлоÑ\87ной
+ целостности вторичного ключа и разные блокировки. У нас есть некоторые возможности,
+ которых нет у них: типы, определяемые пользователем, механизм
+ наследования, правила и конкуретное многоверсионное управление
+ для работы с содержимым блокировок.<BR>
<BR>
</DD>
- <DT><B>ðÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ</B></DT>
+ <DT><B>Производительность</B></DT>
- <DD>ðÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ PostgreSQL ÓÈÏÄÎÁ Ó ÄÒÕÇÉÍÉ ËÏÍÍÅÒÞÅÓËÉÍÉ
- óõâä É Ó óõâä Ó ÏÔËÒÙÔÙÍ ÉÓÈÏÄÎÙÍ ËÏÄÏÍ. ÷ ËÁËÉÈ-ÔÏ ×ÅÝÁÈ ÍÙ ÂÙÓÔÒÅÅ,
- × ËÁËÉÈ-ÔÏ ÍÅÄÌÅÎÎÅÅ. îÁÛÁ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ ÏÂÙÞÎÏ +/-10% ÐÏ
- ÓÒÁ×ÎÅÎÉÀ Ó ÄÒÕÇÉÍÉ óõâä.
+ <DD>Производительность PostgreSQL сходна с другими коммерческими
+ СУБД и с СУБД с открытым исходным кодом. В каких-то вещах мы быстрее,
+ в каких-то медленнее. Наша производительности обычно +/-10% по
+ сравнению с другими СУБД.
<BR>
</DD>
- <DT><B>îÁÄÅÖÎÏÓÔØ</B></DT>
+ <DT><B>Надежность</B></DT>
- <DD>íÙ ÐÏÎÉÍÁÌÉ, ÞÔÏ ÎÁÛÁ <SMALL>óõâä</SMALL> ÄÏÌÖÎÁ ÂÙÔØ ÎÁÄÅÖÎÏÊ
- ÉÌÉ ÏÎÁ ÎÉÞÅÇÏ ÎÅ ÂÕÄÅÔ ÓÔÏÉÔØ. íÙ ÓÔÁÒÁÅÍÓÑ ×ÙÐÕÓËÁÔØ ÈÏÒÏÛÏ ÐÒÏ×ÅÒÅÎÎÙÊ,
- ÓÔÁÂÉÌØÎÙÊ ËÏÄ, ËÏÔÏÒÙÊ ÓÏÄÅÒÖÉÔ ÍÉÎÉÍÕÍ ÏÛÉÂÏË. ëÁÖÄÙÊ ×ÙÐÕÓË
- ÐÒÏÈÏÄÉÔ ÓÔÁÄÉÀ ÂÅÔÁ-ÔÅÓÔÉÒÏ×ÁÎÉÑ ÐÏ ËÒÁÊÎÅÊ ÍÅÒÅ × ÔÅÞÅÎÉÉ ÏÄÎÏÇÏ
- ÍÅÓÑÃÁ É ÎÁÛÁ ÉÓÔÏÒÉÑ ×ÙÐÕÓËÏ× ÐÏËÁÚÙ×ÁÅÔ ÞÔÏ ÍÙ ÍÏÖÅÍ ÐÒÅÄÏÓÔÁ×ÌÑÔØ
- ÓÔÁÂÉÌØÎÙÅ, ÍÏÎÏÌÉÔÎÙÅ ×ÙÐÕÓËÉ, ËÏÔÏÒÙÅ ÇÏÔÏ×Ù Ë ÐÒÏÄÕËÔÉ×ÎÏÍÕ
- ÉÓÐÏÌØÚÏ×ÁÎÉÀ. íÙ ×ÅÒÉÍ, ÞÔÏ ÍÙ ÐÒÏÉÚ×ÏÄÉÍ ÐÒÏ×ÅÒËÕ ÎÅ ÈÕÖÅ,
- ÞÅÍ Õ ÄÒÕÇÉÈ óõâä.<BR>
+ <DD>Мы понимали, что наша <SMALL>СУБД</SMALL> должна быть надежной
+ или она ничего не будет стоить. Мы стараемся выпускать хорошо проверенный,
+ стабильный код, который содержит минимум ошибок. Каждый выпуск
+ пÑ\80оÑ\85одиÑ\82 Ñ\81Ñ\82адиÑ\8e беÑ\82а-Ñ\82еÑ\81Ñ\82иÑ\80ованиÑ\8f по кÑ\80айней меÑ\80е в Ñ\82еÑ\87ении одного
+ месяца и наша история выпусков показывает что мы можем предоставлять
+ стабильные, монолитные выпуски, которые готовы к продуктивному
+ использованию. Мы верим, что мы производим проверку не хуже,
+ чем у других СУБД.<BR>
<BR>
</DD>
- <DT><B>ðÏÄÄÅÒÖËÁ</B></DT>
-
- <DD>îÁÛ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ ÐÒÅÄÏÓÔÁ×ÌÑÅÔ ×ÏÚÍÏÖÍÏÖÎÏÓÔØ ÏÂÝÅÎÉÑ Ó
- ÂÏÌØÛÏÊ ÇÒÕÐÐÏÊ ÒÁÚÒÁÂÏÔÞÉËÏ× É ÐÏÌØÚÏ×ÁÔÅÌÅÊ, ËÏÔÏÒÙÅ ÍÏÇÕÔ ÐÏÍÏÞØ ÒÅÛÉÔØ
- ÌÀÂÙÅ ×ÏÚÎÉËÛÉÅ ÐÒÏÂÌÅÍÙ. ÷ ÔÏ ÖÅ ×ÒÅÍÑ, ÍÙ ÎÅ ÇÁÒÁÎÔÉÒÕÅÍ ËÁËÉÅ-ÌÉÂÏ
- ÉÓÐÒÁ×ÌÅÎÉÑ, ÎÏ É ÒÁÚÒÁÂÏÔÞÉËÉ ËÏÍÍÅÒÞÅÓËÉÈ <SMALL>óõâä</SMALL> ÎÅ ×ÓÅÇÄÁ
- ÄÅÌÁÀÔ ÉÓÐÒÁ×ÌÅÎÉÑ. ðÒÑÍÏÊ ÄÏÓÔÕÐ Ë ÒÁÚÒÁÂÏÔÞÉËÁÍ, ÓÏÏÂÝÅÓÔ×Õ
- ÐÏÌØÚÏ×ÁÔÅÌÅÊ, ÒÕËÏ×ÏÄÓÔ×ÁÍ É ÉÓÈÏÄÎÙÍ ÔÅËÓÔÁÍ ÞÁÓÔÏ ÄÅÌÁÀÔ ÐÏÄÄÅÒÖËÕ
- PostgreSQL ÐÒÅ×ÏÓÈÏÄÑÝÅÊ ÄÒÕÇÉÅ <SMALL>óõâä</SMALL>. óÕÝÅÓÔ×ÕÅÔ
- ËÏÍÍÅÒÞÅÓËÁÑ ÐÏÄÄÅÒÖËÁ ÐÏ ÒÅÚÕÌØÔÁÍ ×ÏÚÎÉËÛÉÈ ÉÎÃÉÄÅÎÔÏ×, ËÏÔÏÒÁÑ
- ÄÏÓÔÕÐÎÁ ÄÌÑ ÔÅÈ ËÏÍÕ ÏÎÁ ÎÕÖÎÁ. (óÍÏÔÒÉÔÅ <A href="#item1.7">óÅËÃÉÀ 1.7</A>.)<BR>
+ <DT><B>Поддержка</B></DT>
+
+ <DD>Наш список рассылки предоставляет возможможность общения с
+ большой группой разработчиков и пользователей, которые могут помочь решить
+ любые возникшие проблемы. В то же время, мы не гарантируем какие-либо
+ исправления, но и разработчики коммерческих <SMALL>СУБД</SMALL> не всегда
+ делают исправления. Прямой доступ к разработчикам, сообществу
+ полÑ\8cзоваÑ\82елей, Ñ\80Ñ\83ководÑ\81Ñ\82вам и иÑ\81Ñ\85однÑ\8bм Ñ\82екÑ\81Ñ\82ам Ñ\87аÑ\81Ñ\82о делаÑ\8eÑ\82 поддеÑ\80жкÑ\83
+ PostgreSQL пÑ\80евоÑ\81Ñ\85одÑ\8fÑ\89ей дÑ\80Ñ\83гие <SMALL>СУÐ\91Ð\94</SMALL>. СÑ\83Ñ\89еÑ\81Ñ\82вÑ\83еÑ\82
+ коммерческая поддержка по результам возникших инцидентов, которая
+ доступна для тех кому она нужна. (Смотрите <A href="#item1.7">Секцию 1.7</A>.)<BR>
<BR>
</DD>
- <DT><B>ãÅÎÁ</B></DT>
+ <DT><B>Цена</B></DT>
- <DD>îÁÛ ÐÒÏÄÕËÔ ÂÅÓÐÌÁÔÅÎ ËÁË ÄÌÑ ËÏÍÍÅÒÞÅÓËÏÇÏ ÔÁË, É ÎÅ ÄÌÑ
- ËÏÍÍÅÒÞÅÓËÏÇÏ ÉÓÐÏÌØÚÏ×ÁÎÉÑ. ÷Ù ÍÏÖÅÔÅ ÄÏÂÁ×ÌÑÔØ Ó×ÏÊ ËÏÄ × ÎÁÛ
- ÐÒÏÄÕËÔ ÂÅÚ ÏÇÒÁÎÉÞÅÎÉÊ, ÚÁ ÉÓËÌÀÞÅÎÉÅÍ ÔÅÈ, ÞÔÏ ÏÐÉÓÙ×ÁÀÔÓÑ ×
- ÎÁÛÅÊ ÌÉÃÅÎÚÉÉ ÓÔÉÌÑ BSD, ËÏÔÏÒÁÑ ÐÒÉ×ÅÄÅÎÁ ×ÙÛÅ.<BR>
+ <DD>Наш продукт бесплатен как для коммерческого так, и не для
+ коммерческого использования. Вы можете добавлять свой код в наш
+ пÑ\80одÑ\83кÑ\82 без огÑ\80аниÑ\87ений, за иÑ\81клÑ\8eÑ\87ением Ñ\82еÑ\85, Ñ\87Ñ\82о опиÑ\81Ñ\8bваÑ\8eÑ\82Ñ\81Ñ\8f в
+ нашей лицензии стиля BSD, которая приведена выше.<BR>
<BR>
</DD>
</DL>
- <P>PostgreSQL ÒÁÚÒÁÂÁÔÙ×ÁÅÔÓÑ ÐÏ ÁÒÈÉÔÅËÔÕÒÅ ËÌÉÅÎÔ/ÓÅÒ×ÅÒ, ËÏÔÏÒÁÑ
- ÔÒÅÂÕÅÔ ÏÔÄÅÌØÎÙÈ ÐÒÏÃÅÓÓÏ× ÄÌÑ ËÁÖÄÏÇÏ ËÌÉÅÎÔÁ É ÓÅÒ×ÅÒÁ, Á ÔÁËÖÅ
- ÎÅÓËÏÌØËÏ ×ÓÐÏÍÏÇÁÔÅÌØÎÙÈ ÐÒÏÃÅÓÓÏ×. íÎÏÇÉÅ ×ÓÔÒÁÉ×ÁÅÍÙÅ ÁÒÈÉÔÅËÔÕÒÙ
- ÍÏÇÕÔ ÓÏÏÔ×ÅÔÓÔ×Ï×ÁÔØ ÔÁËÉÍ ÔÒÅÂÏ×ÁÎÉÑÍ. ïÄÎÁËÏ, ÅÓÌÉ ×ÁÛÁ ×ÓÔÒÁÉ×ÁÅÍÁÑ
- ÁÒÈÉÔÅËÔÕÒÁ ÔÒÅÂÕÅÔ ÓÅÒ×ÅÒ ÂÁÚ ÄÁÎÎÙÈ ÄÌÑ ÚÁÐÕÓËÁ ×ÎÕÔÒÉ ÐÒÉËÌÁÄÎÏÇÏ
- ÐÒÏÃÅÓÓÁ, ×Ù ÎÅ ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ Postgres É ×ÁÍ ÌÕÞÛÅ ÂÙ ×ÙÂÒÁÔØ
- ÄÌÑ ÂÁÚÙ ÄÁÎÎÙÈ ËÁËÏÅ-ÌÉÂÏ ÄÒÕÇÏÅ ÏÂÌÅÇÞÅÎÎÏÅ ÒÅÛÅÎÉÅ.</P>
-
- <H3><A name="item1.14">1.14</A>) âÕÄÅÔ ÌÉ PostgreSQL ÒÁÂÏÔÁÔØ Ó
- ÐÏÓÌÅÄÎÉÍÉ ÉÚÍÅÎÅÎÉÑÍÉ, × ÒÁÚÎÙÈ ÓÔÒÁÎÙÈ, ËÁÓÁÀÝÉÍÉÓÑ ÄÎÅ×ÎÏÇÏ ×ÒÅÍÅÎÉ?</H3>
-
- <P>éÚÍÅÎÅÎÉÑ × ÓÏÈÒÁÎÅÎÉÉ ÄÎÅ×ÎÏÇÏ ×ÒÅÍÅÎÉ × óûá ×ËÌÀÞÅÎÙ × PostgreSQL ×ÅÒÓÉÉ
- 8.0.[4+] É ×Ï ×ÓÅ ÓÌÅÄÕÀÝÉÅ ×ÙÐÕÓËÉ, ÎÁÐÒÉÍÅÒ × 8.1. éÚÍÅÎÅÎÉÑ ÐÏ ëÁÎÁÄÅ
- É úÁÐÁÄÎÏÊ á×ÓÔÒÁÌÉÉ ×ËÌÀÞÅÎÙ × 8.0.[10+], 8.1.[6+] É ×ÓÅ ÓÌÅÄÕÀÝÉÅ
- ×ÙÐÕÓËÉ. ÷ÙÐÕÓËÉ PostgreSQL ÄÏ 8.0 ÉÓÐÏÌØÚÕÀÔ ÉÎÆÏÒÍÁÃÉÀ Ï ÓÏÈÒÁÎÅÎÉÉ
- ÄÎÅ×ÎÏÇÏ ×ÒÅÍÅÎÉ ÉÚ ÂÁÚÙ ÄÁÎÎÙÈ ×ÒÅÍÅÎÎÙÈ ÚÏÎ × ÏÐÅÒÁÃÉÏÎÎÏÊ ÓÉÓÔÅÍÅ.</p>
+ <P>PostgreSQL разрабатывается по архитектуре клиент/сервер, которая
+ требует отдельных процессов для каждого клиента и сервера, а также
+ несколько вспомогательных процессов. Многие встраиваемые архитектуры
+ могут соответствовать таким требованиям. Однако, если ваша встраиваемая
+ архитектура требует сервер баз данных для запуска внутри прикладного
+ пÑ\80оÑ\86еÑ\81Ñ\81а, вÑ\8b не можеÑ\82е иÑ\81полÑ\8cзоваÑ\82Ñ\8c Postgres и вам лÑ\83Ñ\87Ñ\88е бÑ\8b вÑ\8bбÑ\80аÑ\82Ñ\8c
+ для базы данных какое-либо другое облегченное решение.</P>
+
+ <H3><A name="item1.14">1.14</A>) Будет ли PostgreSQL работать с
+ поÑ\81ледними изменениÑ\8fми, в Ñ\80азнÑ\8bÑ\85 Ñ\81Ñ\82Ñ\80анÑ\8bÑ\85, каÑ\81аÑ\8eÑ\89имиÑ\81Ñ\8f дневного вÑ\80емени?</H3>
+
+ <P>Изменения в сохранении дневного времени в США включены в PostgreSQL версии
+ 8.0.[4+] и во все следующие выпуски, например в 8.1. Изменения по Канаде
+ и Западной Австралии включены в 8.0.[10+], 8.1.[6+] и все следующие
+ выпуски. Выпуски PostgreSQL до 8.0 используют информацию о сохранении
+ дневного времени из базы данных временных зон в операционной системе.</p>
<HR>
- <H3 id="item1.15">1.15) ëÁË ÍÎÅ ÏÔÐÉÓÁÔØÓÑ ÏÔ ÓÐÉÓËÏ× ÒÁÓÓÙÌËÉ PostgreSQL?
- ëÁË ÉÚÂÅÖÁÔØ ÐÏÌÕÞÅÎÉÑ ÄÕÂÌÉÒÕÀÝÉÈ ÓÏÏÂÝÅÎÉÊ?</H3>
+ <H3 id="item1.15">1.15) Как мне отписаться от списков рассылки PostgreSQL?
+ Как избежать получения дублирующих сообщений?</H3>
- <P>óÔÒÁÎÉÃÁ <a
+ <P>Страница <a
href="http://mail.postgresql.org/mj/mj_wwwusr/domain=postgresql.org?user=&passw=&func=login">Majordomo</a>
- ÎÁ ÓÁÊÔÅ PostgreSQL ÐÏÚ×ÏÌÑÅÔ ÐÏÄÐÉÓÁÔØÓÑ ÉÌÉ ÏÔÐÉÓÁÔØÓÑ ÏÔ ÌÀÂÏÇÏ ÉÚ ÓÐÉÓËÏ×
- ÒÁÓÓÙÌËÉ PostgreSQL. (÷ÁÍ ÍÏÖÅÔ ÐÏÎÁÄÏÂÉÔÓÑ ×ÁÛ ÐÁÒÏÌØ ÄÌÑ Majordomo, ËÏÔÏÒÙÊ
- ÏÔÐÒÁ×ÌÑÅÔÓÑ ÎÁ ×ÁÛ E-mail, ÞÔÏÂÙ ×ÏÊÔÉ × ÕÐÒÁ×ÌÅÎÉÅ ×ÁÛÉÍÉ ÐÏÄÐÉÓËÁÍÉ.)</P>
+ на сайте PostgreSQL позволяет подписаться или отписаться от любого из списков
+ рассылки PostgreSQL. (Вам может понадобится ваш пароль для Majordomo, который
+ отправляется на ваш E-mail, чтобы войти в управление вашими подписками.)</P>
- <P>÷ÓÅ ÓÐÉÓËÉ ÒÁÓÓÙÌËÉ PostgreSQL ÎÁÓÔÁÒÉ×ÁÀÔÓÑ ÔÁË, ÞÔÏÂÙ ÇÒÕÐÐÏ×ÏÊ ÏÔ×ÅÔ ÕÈÏÄÉÌ
- ÎÁ ÁÄÒÅÓ ÓÐÉÓËÁ <I>É</I> ÎÁ ÁÄÒÅÓ Á×ÔÏÒÁ ÓÏÏÂÝÅÎÉÑ. ôÁË ÓÄÅÌÁÎÏ, ÞÔÏÂÙ ÐÏÌØÚÏ×ÁÔÅÌÉ
- ÐÏÌÕÞÁÌÉ ÏÔ×ÅÔÙ ÎÁ E-mail ËÁË ÍÏÖÎÏ ÂÙÓÔÒÅÅ. åÓÌÉ ×Ù ÎÅ ÈÏÔÉÔÅ ÐÏÌÕÞÁÔØ ÄÕÂÌÉÒÕÀÝÉÅ
- E-mail ÓÏÏÂÝÅÎÉÑ ÉÚ ÓÐÉÓËÁ, × ÓÌÕÞÁÑÈ ËÏÇÄÁ ×Ù ÕÖÅ ÐÏÌÕÞÉÌÉ ÜÔÉ ÓÏÏÂÝÅÎÉÑ ÎÁÐÒÑÍÕÀ,
- ÕÓÔÁÎÏ×ÉÔÅ ÆÌÁÖÏË <I>eliminatecc</I> ÎÁ ÓÔÒÁÎÉÃÅ <I>Change Settings</I> ×
- Majordomo. ÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÉÚÂÅÖÁÔØ ÐÏÌÕÞÅÎÉÑ ËÏÐÉÊ Ó×ÏÉÈ ÓÏÏÂÝÅÎÉÊ ÄÌÑ ÓÁÍÏÇÏ ÓÅÂÑ,
- ÅÓÌÉ ÓÎÉÍÉÔÅ ÆÌÁÖÏË <I>selfcopy</I>.</P>
+ <P>Все списки рассылки PostgreSQL настариваются так, чтобы групповой ответ уходил
+ на адрес списка <I>и</I> на адрес автора сообщения. Так сделано, чтобы пользователи
+ полÑ\83Ñ\87али оÑ\82веÑ\82Ñ\8b на E-mail как можно бÑ\8bÑ\81Ñ\82Ñ\80ее. Ð\95Ñ\81ли вÑ\8b не Ñ\85оÑ\82иÑ\82е полÑ\83Ñ\87аÑ\82Ñ\8c дÑ\83блиÑ\80Ñ\83Ñ\8eÑ\89ие
+ E-mail сообщения из списка, в случаях когда вы уже получили эти сообщения напрямую,
+ установите флажок <I>eliminatecc</I> на странице <I>Change Settings</I> в
+ Majordomo. Вы также можете избежать получения копий своих сообщений для самого себя,
+ если снимите флажок <I>selfcopy</I>.</P>
<HR>
- <H2 align="center">÷ÏÐÒÏÓÙ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÐÏ ËÌÉÅÎÔÓËÏÊ ÞÁÓÔÉ</H2>
+ <H2 align="center">Вопросы пользователей по клиентской части</H2>
- <H3><A name="item2.1">2.1</A>) ëÁËÉÅ ÉÎÔÅÒÆÅÊÓÙ ÅÓÔØ ÄÌÑ PostgreSQL?</H3>
+ <H3><A name="item2.1">2.1</A>) Какие интерфейсы есть для PostgreSQL?</H3>
- <P>õÓÔÁÎÏ×ËÁ PostgreSQL ×ËÌÀÞÁÅÔ ÔÏÌØËÏ <small>C</small> É ×ÓÔÒÏÅÎÎÙÊ
- (embedded) <small>C</small> ÉÎÔÅÒÆÅÊÓÙ. ÷ÓÅ ÄÒÕÇÉÅ ÉÎÔÅÒÆÅÊÓÙ
- Ñ×ÌÑÀÔÓÑ ÎÅÚÁ×ÉÓÉÍÙÍÉ ÐÒÏÅËÔÁÍÉ É ÚÁÇÒÕÖÁÀÔÓÑ ÏÔÄÅÌØÎÏ; ÓÁÍÏÓÔÏÑÔÅÌØÎÏÓÔØ
- ÐÒÏÅËÔÏ× ÐÏÚ×ÏÌÑÅÔ ÉÍ ÏÒÇÁÎÉÚÏ×ÁÔØ ÓÏÂÓÔ×ÅÎÎÏÅ ÒÁÓÐÉÓÁÎÉÅ ×ÙÐÕÓËÏ×
- ÎÏ×ÙÈ ×ÅÒÓÉÊ É ÉÍÅÔØ ÓÏÂÓÔ×ÅÎÎÕÀ ËÏÍÁÎÄÕ ÒÁÚÒÁÂÏÔÞÉËÏ×.</P>
+ <P>Установка PostgreSQL включает только <small>C</small> и встроенный
+ (embedded) <small>C</small> интерфейсы. Все другие интерфейсы
+ Ñ\8fвлÑ\8fÑ\8eÑ\82Ñ\81Ñ\8f незавиÑ\81имÑ\8bми пÑ\80оекÑ\82ами и загÑ\80Ñ\83жаÑ\8eÑ\82Ñ\81Ñ\8f оÑ\82делÑ\8cно; Ñ\81амоÑ\81Ñ\82оÑ\8fÑ\82елÑ\8cноÑ\81Ñ\82Ñ\8c
+ пÑ\80оекÑ\82ов позволÑ\8fеÑ\82 им оÑ\80ганизоваÑ\82Ñ\8c Ñ\81обÑ\81Ñ\82венное Ñ\80аÑ\81пиÑ\81ание вÑ\8bпÑ\83Ñ\81ков
+ новых версий и иметь собственную команду разработчиков.</P>
- <P>îÅËÏÔÏÒÙÅ ÑÚÙËÉ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ, ÔÁËÉÅ ËÁË <small>PHP</small>
- ×ËÌÀÞÁÀÔ × ÓÅÂÑ ÉÎÔÅÒÆÅÊÓ Ë PostgreSQL. éÎÔÅÒÆÅÊÓÙ ÄÌÑ ÔÁËÉÈ ÑÚÙËÏ×
- ËÁË Perl, <small>TCL</small>, Python É ÍÎÏÇÉÈ ÄÒÕÇÉÈ, ÄÏÓÔÕÐÎÙ ÎÁ
+ <P>Некоторые языки программирования, такие как <small>PHP</small>
+ включают в себя интерфейс к PostgreSQL. Интерфейсы для таких языков
+ как Perl, <small>TCL</small>, Python и многих других, доступны на
<a href="http://pgfoundry.org">http://pgfoundry.org</A>.</P>
- <H3><A name="item2.2">2.2</A>) ëÁËÉÅ ÉÎÓÔÒÕÍÅÎÔÙ ÓÕÝÅÓÔ×ÕÀÔ ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ
- PostgreSQL ÞÅÒÅÚ Web?</H3>
+ <H3><A name="item2.2">2.2</A>) Какие инструменты существуют для использования
+ PostgreSQL через Web?</H3>
- <P>ðÒÅËÒÁÓÎÏÅ ××ÅÄÅÎÉÅ ×Ï ×ÚÁÉÍÏÄÅÊÓÔ×ÉÅ ÂÁÚ ÄÁÎÎÙÈ É Web ÍÏÖÎÏ ÎÁÊÔÉ ÎÁ:
+ <P>Прекрасное введение во взаимодействие баз данных и Web можно найти на:
<A href="http://www.webreview.com">http://www.webreview.com</A></P>
- <P>äÌÑ ÉÎÔÅÇÒÁÃÉÉ Ó Web, PHP <A href="http://www.php.net">
- http://www.php.net</A> Ñ×ÌÑÅÔÓÑ ÎÅÐÌÏÈÉÍ ÉÎÔÅÒÆÅÊÓÏÍ.</P>
+ <P>Для интеграции с Web, PHP <A href="http://www.php.net">
+ http://www.php.net</A> Ñ\8fвлÑ\8fеÑ\82Ñ\81Ñ\8f неплоÑ\85им инÑ\82еÑ\80Ñ\84ейÑ\81ом.</P>
- <P>÷ ÓÌÏÖÎÙÈ ÓÌÕÞÁÑÈ, ÍÎÏÇÉÅ ÐÏÌØÚÕÀÔÓÑ Perl É DBD::Pg Ó CGI.pm
- ÉÌÉ mod_perl.</P>
+ <P>В сложных случаях, многие пользуются Perl и DBD::Pg с CGI.pm
+ или mod_perl.</P>
- <H3><A name="item2.3">2.3</A>) åÓÔØ ÌÉ Õ PostgreSQL ÇÒÁÆÉÞÅÓËÉÊ ÉÎÔÅÒÆÅÊÓ
- ÐÏÌØÚÏ×ÁÔÅÌÑ?</H3>
+ <H3><A name="item2.3">2.3</A>) Есть ли у PostgreSQL графический интерфейс
+ полÑ\8cзоваÑ\82елÑ\8f?</H3>
- <P>äÌÑ PostgreSQL ÓÕÝÅÓÔ×ÕÅÔ ÂÏÌØÛÏÅ ËÏÌÉÞÅÓÔ×Ï ÉÎÓÔÒÕÍÅÎÔÏ× Ó
- ÇÒÁÆÉÞÅÓËÉÍ ÉÎÔÅÒÆÅÊÓÏÍ ËÁË ËÏÍÍÅÒÞÅÓËÉÈ, ÔÁË É ÏÔËÒÙÔÙÈ. ðÏÄÒÏÂÎÏÓÔÉ
- ÍÏÖÎÏ ÎÁÊÔÉ × <A href="http://wiki.postgresql.org/wiki/Community_Guide_to_PostgreSQL_GUI_Tools">
- äÏËÕÍÅÎÔÁÃÉÉ ÓÏÏÂÝÅÓÔ×Á ÄÌÑ GUI ÉÓÔÒÕÍÅÎÔÏ× PostgreSQL</A></P>
+ <P>Для PostgreSQL существует большое количество инструментов с
+ графическим интерфейсом как коммерческих, так и открытых. Подробности
+ можно найти в <A href="http://wiki.postgresql.org/wiki/Community_Guide_to_PostgreSQL_GUI_Tools">
+ Документации сообщества для GUI иструментов PostgreSQL</A></P>
<HR>
- <H2 align="center">÷ÏÐÒÏÓÙ ÁÄÍÉÎÉÓÔÒÉÒÏ×ÁÎÉÑ</H2>
+ <H2 align="center">Вопросы администрирования</H2>
- <H3><A name="item3.1">3.1</A>) ëÁË ÍÎÅ ÕÓÔÁÎÏ×ÉÔØ PostgreSQL × ÍÅÓÔÏ ÏÔÌÉÞÎÏÅ
- ÏÔ <I>/usr/local/pgsql</I>?</H3>
+ <H3><A name="item3.1">3.1</A>) Как мне установить PostgreSQL в место отличное
+ от <I>/usr/local/pgsql</I>?</H3>
- <P>úÁÄÁÊÔÅ ÏÐÃÉÀ <I>--prefix</I> ËÏÇÄÁ ÚÁÐÕÓËÁÅÔÅ <I>configure</I>.</P>
+ <P>Задайте опцию <I>--prefix</I> когда запускаете <I>configure</I>.</P>
- <H3><A name="item3.2">3.2</A>) ëÁË ÍÎÅ ÕÐÒÁ×ÌÑÔØ ÓÏÅÄÉÎÅÎÉÑÍÉ ÏÔ ÄÒÕÇÉÈ
- ËÏÍÐØÀÔÅÒÏ×?</H3>
+ <H3><A name="item3.2">3.2</A>) Как мне управлять соединениями от других
+ компьютеров?</H3>
- <P>ðÏ ÕÍÏÌÞÁÎÉÀ, PostgreSQL ÒÁÚÒÅÛÁÅÔ ÔÏÌØËÏ ÓÏÅÄÉÎÅÎÉÑ ÎÁ ÌÏËÁÌØÎÏÊ
- ÍÁÛÉÎÅ ÞÅÒÅÚ ÓÏËÅÔÙ ÄÏÍÅÎÁ Unix ÉÌÉ TCP/IP ÓÏÅÄÉÎÅÎÉÑ. äÌÑ ÔÏÇÏ, ÞÔÏÂÙ
- ÄÒÕÇÉÅ ÍÁÛÉÎÙ ÓÍÏÇÌÉ ÐÏÄËÌÀÞÉÔØÓÑ Ë ÂÁÚÅ ×Ù ÄÏÌÖÎÙ ÉÚÍÅÎÉÔØ
- <I>listen_addresses</I> × <I>postgresql.conf</I>, ÒÁÚÒÅÛÉÔØ
- host-Á×ÔÏÒÉÚÁÃÉÑ × ÆÁÊÌÅ <I>$PGDATA/pg_hba.conf</I> É ÐÅÒÅÓÔÁÒÔÏ×ÁÔØ
- ÓÅÒ×ÅÒ óõâä.</P>
+ <P>По умолчанию, PostgreSQL разрешает только соединения на локальной
+ машине через сокеты домена Unix или TCP/IP соединения. Для того, чтобы
+ другие машины смогли подключиться к базе вы должны изменить
+ <I>listen_addresses</I> в <I>postgresql.conf</I>, разрешить
+ host-авторизация в файле <I>$PGDATA/pg_hba.conf</I> и перестартовать
+ сервер СУБД.</P>
- <H3><A name="item3.3">3.3</A>) ëÁËÉÅ ÎÁÓÔÒÏÊËÉ ÍÎÅ ÎÕÖÎÏ ÓÄÅÌÁÔØ ÄÌÑ ÕÌÕÞÛÅÎÉÑ
- ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ?</H3>
+ <H3><A name="item3.3">3.3</A>) Какие настройки мне нужно сделать для улучшения
+ пÑ\80оизводиÑ\82елÑ\8cноÑ\81Ñ\82и?</H3>
- <P>óÕÝÅÓÔ×ÕÅÔ ÔÒÉ ÇÌÁ×ÎÙÈ ÏÂÌÁÓÔÉ, ËÏÔÏÒÙÅ ÐÏÔÅÎÃÉÁÌØÎÏ ÍÏÇÕÔ
- Õ×ÅÌÉÞÉÔØ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ:</P>
+ <P>Существует три главных области, которые потенциально могут
+ увеличить производительность:</P>
<DL>
- <DT><B>éÚÍÅÎÅÎÉÅ ÚÁÐÒÏÓÁ</B></DT>
- <DD>üÔÏ ÏÚÎÁÞÁÅÔ ÍÏÄÉÆÉËÁÃÉÀ ÚÁÐÒÏÓÏ× ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÌÕÞÛÅÊ
- ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ:
+ <DT><B>Изменение запроса</B></DT>
+ <DD>Это означает модификацию запросов для получения лучшей
+ пÑ\80оизводиÑ\82елÑ\8cноÑ\81Ñ\82и:
<UL>
- <LI>óÏÚÄÁÎÉÅ ÉÎÄÅËÓÏ×, ×ËÌÀÞÁÑ ÉÎÄÅËÓÙ ×ÙÒÁÖÅÎÉÊ É ÞÁÓÔÉÞÎÙÅ ÉÎÄÅËÓÙ</LI>
- <LI>éÓÐÏÌØÚÏ×ÁÎÉÅ COPY ×ÍÅÓÔÏ ÍÎÏÖÅÓÔ×Á <small>INSERT</small></LI>
- <LI>çÒÕÐÐÉÒÏ×ËÁ ÎÅÓËÏÌØËÉÈ ÏÐÅÒÁÔÏÒÏ× × ÅÄÉÎÕÀ ÔÒÁÎÚÁËÃÉÀ ÄÌÑ
- ÕÍÅÎØÛÅÎÉÑ ÎÁÇÒÕÚËÉ ÐÒÉ ×ÙÐÏÌÎÅÎÉÉ ÚÁ×ÅÒÛÅÎÉÑ ÔÒÁÎÚÁËÃÉÉ</LI>
- <LI>éÓÐÏÌØÚÏ×ÁÎÉÅ <small>CLUSTER</small>, ËÏÇÄÁ ÉÚ ÉÎÄÅËÓÁ ÂÅÒ£ÔÓÑ
- ÍÎÏÖÅÓÔ×Ï ÓÔÒÏË</LI>
- <LI>éÓÐÏÌØÚÏ×ÁÎÉÅ <small>LIMIT</small> ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ×ÏÚ×ÒÁÝÁÌÁÓØ
- ÔÏÌØËÏ ÞÁÓÔØ ×Ù×ÏÄÁ ÏÔ ÚÁÐÒÏÓÁ</LI>
- <LI>éÓÐÏÌØÚÏ×ÁÎÉÅ ðÏÄÇÏÔÏ×ÌÅÎÎÙÈ (Prepared) ÚÁÐÒÏÓÏ×</LI>
- <LI>éÓÐÏÌØÚÏ×ÁÎÉÅ <small>ANALYZE</small> ÄÌÑ ÏÂÓÌÕÖÉ×ÁÎÉÑ ÓÔÁÔÉÓÔÉËÉ
- ÏÐÔÉÍÉÚÁÔÏÒÁ</LI>
- <LI>òÅÇÕÌÑÒÎÏÅ ÉÓÐÏÌØÚÏ×ÁÎÉÅ <small>VACUUM</small> ÉÌÉ <I>pg_autovacuum</I></LI>
- <LI>õÄÁÌÅÎÉÅ ÉÎÄÅËÓÏ× ×Ï ×ÒÅÍÑ ÂÏÌØÛÉÈ ÉÚÍÅÎÅÎÉÊ ÄÁÎÎÙÈ</LI>
+ <LI>Создание индексов, включая индексы выражений и частичные индексы</LI>
+ <LI>Использование COPY вместо множества <small>INSERT</small></LI>
+ <LI>Группировка нескольких операторов в единую транзакцию для
+ уменьшения нагрузки при выполнении завершения транзакции</LI>
+ <LI>Использование <small>CLUSTER</small>, когда из индекса берётся
+ множество строк</LI>
+ <LI>Использование <small>LIMIT</small> для того, чтобы возвращалась
+ только часть вывода от запроса</LI>
+ <LI>Использование Подготовленных (Prepared) запросов</LI>
+ <LI>Использование <small>ANALYZE</small> для обслуживания статистики
+ оптимизатора</LI>
+ <LI>Регулярное использование <small>VACUUM</small> или <I>pg_autovacuum</I></LI>
+ <LI>Удаление индексов во время больших изменений данных</LI>
</UL>
<BR><BR>
</DD>
- <DT><B>îÁÓÔÒÏÊËÁ ÓÅÒ×ÅÒÁ</B></DT>
+ <DT><B>Настройка сервера</B></DT>
- <DD>îÅËÏÔÏÒÙÅ ÕÓÔÁÎÏ×ËÉ × <I>postgresql.conf</I> ×ÌÉÑÀÔ ÎÁ
- ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ. ðÏÄÒÏÂÎÙÊ ÐÏÌÎÙÊ ÓÐÉÓÏË ÕÓÔÁÎÏ×ÏË ÓÍ. ×
+ <DD>Некоторые установки в <I>postgresql.conf</I> влияют на
+ пÑ\80оизводиÑ\82елÑ\8cноÑ\81Ñ\82Ñ\8c. Ð\9fодÑ\80обнÑ\8bй полнÑ\8bй Ñ\81пиÑ\81ок Ñ\83Ñ\81Ñ\82ановок Ñ\81м. в
<A href="http://www.postgresql.org/docs/current/static/runtime-config.html">
Administration Guide/Server Run-time Environment/Run-time Configuration</A>,
- Á ËÏÍÍÅÎÔÁÒÉÉ ÓÍ. × <A href="http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html">
+ а комментарии см. в <A href="http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html">
http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html</A>
- É <A href="http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html">
+ и <A href="http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html">
http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html</A>.
<BR><BR>
</DD>
- <DT><B>÷ÙÂÏÒ "ÖÅÌÅÚÁ" - ÁÐÐÁÒÁÔÎÏÇÏ ÏÂÅÓÐÅÞÅÎÉÑ</B></DT>
+ <DT><B>Выбор "железа" - аппаратного обеспечения</B></DT>
- <DD>÷ÌÉÑÎÉÅ "ÖÅÌÅÚÁ" ÎÁ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ ÐÏÄÒÏÂÎÏ ÏÐÉÓÁÎÏ ×
+ <DD>Влияние "железа" на производительность подробно описано в
<A href="http://www.powerpostgresql.com/PerfList/">
- http://www.powerpostgresql.com/PerfList/</A> É
+ http://www.powerpostgresql.com/PerfList/</A> и
<A href="http://momjian.us/main/writings/pgsql/hw_performance/index.html">
http://momjian.us/main/writings/pgsql/hw_performance/index.html</A>.
<BR>
</DD>
</DL>
- <H3><A name="item3.4">3.4</A>) ëÁËÉÅ ×ÏÚÍÏÖÎÏÓÔÉ ÄÌÑ ÏÔÌÁÄËÉ ÅÓÔØ ×
- ÎÁÌÉÞÉÉ?</H3>
+ <H3><A name="item3.4">3.4</A>) Какие возможности для отладки есть в
+ наличии?</H3>
- <P>åÓÔØ ÍÎÏÖÅÓÔ×Ï ÕÓÔÁÎÏ×ÏË × ÎÁÓÔÒÏÊËÁÈ ÓÅÒ×ÅÒÁ, ÎÁÞÉÎÁÀÝÉÈÓÑ
- ÎÁ <code>log_*</code> ÎÁ <a
+ <P>Есть множество установок в настройках сервера, начинающихся
+ на <code>log_*</code> на <a
href="http://www.postgresql.org/docs/current/interactive/runtime-config-logging.html">http://www.postgresql.org/docs/current/interactive/runtime-config-logging.html</a>,
- ÐÏÚ×ÏÌÑÀÝÉÈ ÐÒÏÔÏËÏÌÉÒÏ×ÁÔØ ÚÁÐÒÏÓÙ É ÓÔÁÔÉÓÔÉËÕ ÒÁÂÏÔÙ ÐÒÏÃÅÓÓÁ,
- ËÏÔÏÒÁÑ ÏÞÅÎØ ÐÏÌÅÚÎÁ ÄÌÑ ÏÔÌÁÄËÉ É ÉÚÍÅÒÅÎÉÑ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ.</P>
+ позволÑ\8fÑ\8eÑ\89иÑ\85 пÑ\80оÑ\82околиÑ\80оваÑ\82Ñ\8c запÑ\80оÑ\81Ñ\8b и Ñ\81Ñ\82аÑ\82иÑ\81Ñ\82икÑ\83 Ñ\80абоÑ\82Ñ\8b пÑ\80оÑ\86еÑ\81Ñ\81а,
+ которая очень полезна для отладки и измерения производительности.</P>
- <H3><A name="item3.5">3.5</A>) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÓÏÏÂÝÅÎÉÅ <I>"Sorry, too
- many clients"</I> ËÏÇÄÁ ÐÙÔÁÀÓØ ÐÏÄËÌÀÞÉÔØÓÑ Ë ÂÁÚÅ?</H3>
+ <H3><A name="item3.5">3.5</A>) Почему я получаю сообщение <I>"Sorry, too
+ many clients"</I> когда пытаюсь подключиться к базе?</H3>
- <P>÷Ù ÄÏÓÔÉÇÌÉ ÕÓÔÁÎÏ×ÌÅÎÎÏÇÏ ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÇÒÁÎÉÞÅÎÉÑ × 100 ÓÅÓÓÉÊ
- ÐÏÄËÌÀÞÅÎÉÑ Ë ÂÁÚÅ ÄÁÎÎÙÈ. ÷ÁÍ ÎÅÏÂÈÏÄÉÍÏ Õ×ÅÌÉÞÉÔØ ÌÉÍÉÔ ÎÁ ËÏÌÉÞÅÓÔ×Ï
- ËÏÎËÕÒÅÎÔÎÙÈ backend ÐÒÏÃÅÓÓÏ× ÄÌÑ ×ÁÛÅÇÏ ÓÅÒ×ÅÒÁ âä,
- ÉÚÍÅÎÉ× ÚÎÁÞÅÎÉÅ <I>max_connections</I> × ÆÁÊÌÅ <I>postgresql.conf</I>
- É ÐÅÒÅÓÔÁÒÔÏ×ÁÔØ ÓÅÒ×ÅÒ âä.</P>
+ <P>Вы достигли установленного по умолчанию ограничения в 100 сессий
+ подклÑ\8eÑ\87ениÑ\8f к базе даннÑ\8bÑ\85. Ð\92ам необÑ\85одимо Ñ\83велиÑ\87иÑ\82Ñ\8c лимиÑ\82 на колиÑ\87еÑ\81Ñ\82во
+ конкурентных backend процессов для вашего сервера БД,
+ изменив значение <I>max_connections</I> в файле <I>postgresql.conf</I>
+ и перестартовать сервер БД.</P>
- <H3><A name="item3.6">3.6</A>) ëÁË ×ÙÐÏÌÎÉÔØ ÏÂÎÏ×ÌÅÎÉÅ PostgreSQL?</H3>
+ <H3><A name="item3.6">3.6</A>) Как выполнить обновление PostgreSQL?</H3>
- <P>óÍ. ÉÎÆÏÒÍÁÃÉÀ Ï ÏÂÎÏ×ÌÅÎÉÉ × <a
+ <P>См. информацию об обновлении в <a
href="http://www.postgresql.org/support/versioning">http://www.postgresql.org/support/versioning</a>
- É ÓÐÅÃÉÁÌØÎÙÅ ÉÎÓÔÒÕËÃÉÉ × <a href="http://www.postgresql.org/docs/current/static/install-upgrading.html">
+ и специальные инструкции в <a href="http://www.postgresql.org/docs/current/static/install-upgrading.html">
http://www.postgresql.org/docs/current/static/install-upgrading.html</a>.</P>
- <H3><A name="item3.7">3.7</A>) ëÁËÏÅ ËÏÍÐØÀÔÅÒÎÏÅ "ÖÅÌÅÚÏ" Ñ ÄÏÌÖÅÎ
- ÉÓÐÏÌØÚÏ×ÁÔØ?</H3>
+ <H3><A name="item3.7">3.7</A>) Какое компьютерное "железо" я должен
+ использовать?</H3>
- <P>ðÏÓËÏÌØËÕ "ÖÅÌÅÚÏ" ÐÅÒÓÏÎÁÌØÎÙÈ ËÏÍÐØÀÔÅÒÏ× Ñ×ÌÑÅÔÓÑ ÎÁÉÂÏÌÅÅ
- ÓÏ×ÍÅÓÔÉÍÙÍ, ÌÀÄÉ ÓËÌÏÎÎÙ ×ÅÒÉÔØ, ÞÔÏ ÔÁËÏÅ "ÖÅÌÅÚÏ" ÉÍÅÅÔ ÏÄÉÎÁËÏ×ÏÅ
- ËÁÞÅÓÔ×Ï. üÔÏ ÎÅ ÔÁË. ðÁÍÑÔØ ECC, SCSI É ËÁÞÅÓÔ×ÅÎÎÙÅ ÍÁÔÅÒÉÎÓËÉÅ ÐÌÁÔÙ
- Ñ×ÌÑÀÔÓÑ ÂÏÌÅÅ ÎÁÄ£ÖÎÙÍÉ É ÉÍÅÀÔ ÂÏÌÅÅ ÌÕÞÛÕÀ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ, ÞÅÍ
- ÍÅÎÅÅ ÄÏÒÏÇÏÅ "ÖÅÌÅÚÏ". PostgreSQL ÂÕÄÅÔ ÒÁÂÏÔÁÔØ ÎÁ ÌÀÂÏÍ "ÖÅÌÅÚÅ",
- ÎÏ ÅÓÌÉ ÄÌÑ ×ÁÓ ×ÁÖÎÙ ÎÁÄ£ÖÎÏÓÔØ É ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ, ÔÏ Ó ×ÁÛÅÊ ÓÔÏÒÏÎÙ
- ÂÕÄÅÔ ÍÕÄÒÏ ÐÏÓÔÁ×ÉÔØ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÅ "ÖÅÌÅÚÏ". ïÂÓÕÄÉÔØ ÒÁÚÎÏÅ "ÖÅÌÅÚÏ"
- ÍÏÖÎÏ × ÎÁÛÉÈ ÓÐÉÓËÁÈ ÒÁÓÓÙÌËÉ.</P>
+ <P>Поскольку "железо" персональных компьютеров является наиболее
+ совместимым, люди склонны верить, что такое "железо" имеет одинаковое
+ качество. Это не так. Память ECC, SCSI и качественные материнские платы
+ Ñ\8fвлÑ\8fÑ\8eÑ\82Ñ\81Ñ\8f более надÑ\91жнÑ\8bми и имеÑ\8eÑ\82 более лÑ\83Ñ\87Ñ\88Ñ\83Ñ\8e пÑ\80оизводиÑ\82елÑ\8cноÑ\81Ñ\82Ñ\8c, Ñ\87ем
+ менее дорогое "железо". PostgreSQL будет работать на любом "железе",
+ но если для вас важны надёжность и производительность, то с вашей стороны
+ будет мудро поставить соответствующее "железо". Обсудить разное "железо"
+ можно в наших списках рассылки.</P>
<HR>
- <H2 align="center">÷ÏÐÒÏÓÙ ÜËÓÐÌÕÁÔÁÃÉÉ</H2>
+ <H2 align="center">Вопросы эксплуатации</H2>
- <H3><A name="item4.1">4.1</A>) ëÁË ×ÙÐÏÌÎÉÔØ <SMALL>SELECT</SMALL> ÔÏÌØËÏ
- ÄÌÑ ÎÅÓËÏÌØËÉÈ ÐÅÒ×ÙÈ ÓÔÒÏÞÅË ÚÁÐÒÏÓÁ? ðÒÏÉÚ×ÏÌØÎÏÊ ÓÔÒÏËÉ?</H3>
+ <H3><A name="item4.1">4.1</A>) Как выполнить <SMALL>SELECT</SMALL> только
+ для нескольких первых строчек запроса? Произвольной строки?</H3>
- <P>äÌÑ ÐÏÌÕÞÅÎÉÑ ÔÏÌØËÏ ÎÅÓËÏÌØËÉÈ ÓÔÒÏË, ÅÓÌÉ ×Ù ÚÎÁÅÔÅ ÉÈ ËÏÌÉÞÅÓÔ×Ï
- ÎÁ ÍÏÍÅÎÔ ×ÙÐÏÌÎÅÎÉÑ <SMALL>SELECT</SMALL> ÉÓÐÏÌØÚÕÊÔÅ <SMALL>LIMIT</SMALL>.</P>
- åÓÌÉ ÅÓÔØ ËÁËÏÊ-ÌÉÂÏ ÉÎÄÅËÓ, ËÏÔÏÒÙÊ ÓÏ×ÐÁÄÁÅÔ Ó <SMALL>ORDER BY</SMALL>,
- ÔÏ ×ÏÚÍÏÖÎÏ, ÞÔÏ ×ÅÓØ ÚÁÐÒÏÓ ×ÙÐÏÌÎÅÎ É ÎÅ ÂÕÄÅÔ. åÓÌÉ ×Ù ÎÅ ÚÎÁÅÔÅ
- ËÏÌÉÞÅÓÔ×Á ÎÅÏÂÈÏÄÉÍÙÈ ÓÔÒÏË ÎÁ ÍÏÍÅÎÔ ×ÙÐÏÌÎÅÎÉÑ <SMALL>SELECT</SMALL>,
- ÉÓÐÏÌØÚÕÊÔÅ ËÕÒÓÏÒ É <SMALL>FETCH</SMALL>.</P>
+ <P>Для получения только нескольких строк, если вы знаете их количество
+ на момент выполнения <SMALL>SELECT</SMALL> используйте <SMALL>LIMIT</SMALL>.</P>
+ Если есть какой-либо индекс, который совпадает с <SMALL>ORDER BY</SMALL>,
+ то возможно, что весь запрос выполнен и не будет. Если вы не знаете
+ количества необходимых строк на момент выполнения <SMALL>SELECT</SMALL>,
+ используйте курсор и <SMALL>FETCH</SMALL>.</P>
<P>To <small>SELECT</small> a random row, use:</P>
<PRE> SELECT col
</PRE>
- <H3><A name="item4.2">4.2</A>) ëÁË ÍÎÅ ÎÁÊÔÉ ËÁËÉÅ ÔÁÂÌÉÃÙ, ÉÎÄÅËÓÙ,
- ÂÁÚÙ ÄÁÎÎÙÈ É ÐÏÌØÚÏ×ÁÔÅÌÉ ÓÕÝÅÓÔ×ÕÀÔ? ëÁË ÍÎÅ Õ×ÉÄÅÔØ ÚÁÐÒÏÓÙ,
- ËÏÔÏÒÙÅ ÉÓÐÏÌØÚÕÅÔ <I>psql</I> ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÜÔÏÊ ÉÎÆÏÒÍÁÃÉÉ?</H3>
-
- <P>þÔÏÂÙ ÐÒÏÓÍÁÔÒÉ×ÁÔØ ÔÁÂÌÉÃÙ × <I>psql</I>, ÉÓÐÏÌØÚÕÊÔÅ ËÏÍÁÎÄÕ \dt.
- ðÏÌÎÙÊ ÓÐÉÓÏË ËÏÍÁÎÄ × <I>psql</I> ×Ù ÍÏÖÅÔÅ ÐÏÌÕÞÉÔØ, ÉÓÐÏÌØÚÕÑ \?.
- ëÒÏÍÅ ÔÏÇÏ, ×Ù ÍÏÖÅÔÅ ÐÏÓÍÏÔÒÅÔØ ÉÓÈÏÄÎÙÊ ËÏÄ <I>psql</I> × ÆÁÊÌÅ
- <I>pgsql/src/bin/psql/describe.c</I>. ïÎ ÓÏÄÅÒÖÉÔ ËÏÍÁÎÄÙ
- <SMALL>SQL</SMALL> ËÏÔÏÒÙÅ ÇÅÎÅÒÉÒÕÀÔÓÑ ÐÒÉ ××ÏÄÅ × <I>psql</I> ËÏÍÁÎÄ,
- ÎÁÞÉÎÁÀÝÉÈÓÑ Ó ÏÂÒÁÔÎÏÊ ËÏÓÏÊ ÞÅÒÔÙ. ÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÚÁÐÕÓÔÉÔØ
- <I>psql</I> Ó ÏÐÃÉÅÊ <I>-E</I> ÔÁË, ÞÔÏÂÙ ÜÔÁ ÐÒÏÇÒÁÍÍÁ ×ÙÄÁ×ÁÌÁ
- ÚÁÐÒÏÓÙ, ËÏÔÏÒÙÅ ÏÎÁ ÉÓÐÏÌØÚÕÅÔ ÄÌÑ ×ÙÐÏÌÎÅÎÉÑ ÚÁÄÁÎÎÙÈ ×ÁÍÉ
- ËÏÍÁÎÄ. PostgreSQL ÔÁËÖÅ ÐÒÅÄÏÓÔÁ×ÌÑÅÔ <SMALL>SQL</SMALL>
- ÓÏ×ÍÅÓÔÉÍÙÊ Ó INFORMATION SCHEMA ÉÎÔÅÒÆÅÊÓ, Ó ÐÏÍÏÝØÀ ËÏÔÏÒÏÇÏ, ×Ù
- ÍÏÖÅÔÅ ÓÆÏÒÍÉÒÏ×ÁÔØ ÚÁÐÒÏÓ ÎÁ ÐÏÌÕÞÅÎÉÅ ÉÎÆÏÒÍÁÃÉÉ Ï ÂÁÚÅ ÄÁÎÎÙÈ.</P>
+ <H3><A name="item4.2">4.2</A>) Как мне найти какие таблицы, индексы,
+ базы данных и пользователи существуют? Как мне увидеть запросы,
+ которые использует <I>psql</I> для получения этой информации?</H3>
+
+ <P>Чтобы просматривать таблицы в <I>psql</I>, используйте команду \dt.
+ Полный список команд в <I>psql</I> вы можете получить, используя \?.
+ Кроме того, вы можете посмотреть исходный код <I>psql</I> в файле
+ <I>pgsql/src/bin/psql/describe.c</I>. Он содержит команды
+ <SMALL>SQL</SMALL> которые генерируются при вводе в <I>psql</I> команд,
+ начинающихся с обратной косой черты. Вы также можете запустить
+ <I>psql</I> с опцией <I>-E</I> так, чтобы эта программа выдавала
+ запросы, которые она использует для выполнения заданных вами
+ команд. PostgreSQL также предоставляет <SMALL>SQL</SMALL>
+ совместимый с INFORMATION SCHEMA интерфейс, с помощью которого, вы
+ можете сформировать запрос на получение информации о базе данных.</P>
- <P>ôÁËÖÅ ÓÕÝÅÓÔ×ÕÀÔ ÓÉÓÔÅÍÎÙÅ ÔÁÂÌÉÃÙ, ÎÁÞÉÎÁÀÝÉÅÓÑ Ó <I>pg_</I>.</P>
+ <P>Также существуют системные таблицы, начинающиеся с <I>pg_</I>.</P>
- <P>éÓÐÏÌØÚÕÊÔÅ <I>psql -l</I> ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÓÐÉÓËÁ ×ÓÅÈ ÂÁÚ ÄÁÎÎÙÈ.</P>
+ <P>Используйте <I>psql -l</I> для получения списка всех баз данных.</P>
- <P>ôÁËÖÅ ÐÏÓÍÏÔÒÉÔÅ ÆÁÊÌ <I>pgsql/src/tutorial/syscat.source</I>.
- ïÎ ÐÏËÁÚÙ×ÁÅÔ ÍÎÏÇÉÅ ÉÚ ÏÐÅÒÁÔÏÒÏ× <SMALL>SELECT</SMALL> ÎÅÏÂÈÏÄÉÍÙÈ
- ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÉÎÆÏÒÍÁÃÉÉ ÉÚ ÓÉÓÔÅÍÎÙÈ ÔÁÂÌÉÃ ÂÁÚÙ ÄÁÎÎÙÈ.</P>
+ <P>Также посмотрите файл <I>pgsql/src/tutorial/syscat.source</I>.
+ Он показывает многие из операторов <SMALL>SELECT</SMALL> необходимых
+ для получения информации из системных таблиц базы данных.</P>
- <H3><A name="item4.3">4.3</A>) ëÁË ÉÚÍÅÎÉÔØ ÔÉÐ ÄÁÎÎÙÈ ËÏÌÏÎËÉ?</H3>
+ <H3><A name="item4.3">4.3</A>) Как изменить тип данных колонки?</H3>
- <P>÷ 8.0 É ÂÏÌÅÅ ÐÏÚÄÎÉÈ ×ÅÒÓÉÑÈ, ÉÚÍÅÎÅÎÉÅ ÔÉÐÁ ËÏÌÏÎËÉ ×ÙÐÏÌÎÑÅÔÓÑ
- ÏÞÅÎØ ÌÅÇËÏ ÞÅÒÅÚ <SMALL>ALTER TABLE ALTER COLUMN TYPE</SMALL>.</P>
+ <P>В 8.0 и более поздних версиях, изменение типа колонки выполняется
+ очень легко через <SMALL>ALTER TABLE ALTER COLUMN TYPE</SMALL>.</P>
- <P>÷ ÂÏÌÅÅ ÒÁÎÎÉÈ ×ÅÒÓÉÑÈ ÓÄÅÌÁÊÔÅ ÔÁË:</P>
+ <P>В более ранних версиях сделайте так:</P>
<PRE>
BEGIN;
ALTER TABLE tab ADD COLUMN new_col <i>new_data_type</i>;
COMMIT;
</PRE>
- <H3><A name="item4.4">4.4</A>) ëÁËÏ×Ù ÍÁËÓÉÍÁÌØÎÙÅ ÒÁÚÍÅÒÙ ÄÌÑ ÓÔÒÏË × ÔÁÂÌÉÃÅ,
- ÔÁÂÌÉÃ É ÂÁÚÙ ÄÁÎÎÙÈ?</H3>
+ <H3><A name="item4.4">4.4</A>) Каковы максимальные размеры для строк в таблице,
+ таблиц и базы данных?</H3>
- <P>óÕÝÅÓÔ×ÕÀÔ ÓÌÅÄÕÀÝÉÅ ÏÇÒÁÎÉÞÅÎÉÑ:</P>
+ <P>Существуют следующие ограничения:</P>
<BLOCKQUOTE>
<TABLE>
<TR>
- <TD>íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÂÁÚÙ?</TD>
- <TD>ÎÅÏÇÒÁÎÉÞÅÎ (ÓÕÝÅÓÔ×ÕÀÔ ÂÁÚÙ ÎÁ 32 TB)</TD>
+ <TD>Максимальный размер базы?</TD>
+ <TD>неограничен (существуют базы на 32 TB)</TD>
</TR>
<TR>
- <TD>íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÔÁÂÌÉÃÙ?</TD>
+ <TD>Максимальный размер таблицы?</TD>
<TD>32 TB</TD>
</TR>
<TR>
- <TD>íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÓÔÒÏËÉ?</TD>
+ <TD>Максимальный размер строки?</TD>
<TD>400 Gb</TD>
</TR>
<TR>
- <TD>íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÐÏÌÑ?</TD>
+ <TD>Максимальный размер поля?</TD>
<TD>1 GB</TD>
</TR>
<TR>
- <TD>íÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÓÔÒÏË × ÔÁÂÌÉÃÅ?</TD>
- <TD>ÎÅÏÇÒÁÎÉÞÅÎÏ</TD>
+ <TD>Максимальное количество строк в таблице?</TD>
+ <TD>неограничено</TD>
</TR>
<TR>
- <TD>íÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ËÏÌÏÎÏË × ÔÁÂÌÉÃÅ?</TD>
- <TD>250-1600 × ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÔÉÐÁ</TD>
+ <TD>Максимальное количество колонок в таблице?</TD>
+ <TD>250-1600 в зависимости от типа</TD>
</TR>
<TR>
- <TD>íÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÉÎÄÅËÓÏ× × ÔÁÂÌÉÃÅ?</TD>
- <TD>ÎÅÏÇÒÁÎÉÞÅÎÏ</TD>
+ <TD>Максимальное количество индексов в таблице?</TD>
+ <TD>неограничено</TD>
</TR>
</TABLE>
</BLOCKQUOTE>
<BR>
- <P>òÁÚÕÍÅÅÔÓÑ, ÐÏÎÑÔÉÅ "ÎÅÏÇÒÁÎÉÞÅÎÏ" ÎÁ ÓÁÍÏÍ ÄÅÌÅ ÏÇÒÁÎÉÞÉ×ÁÅÔÓÑ
- ÄÏÓÔÕÐÎÙÍ ÄÉÓËÏ×ÙÍ ÐÒÏÓÔÒÁÎÉÓÔ×ÏÍ É ÒÁÚÍÅÒÁÍÉ ÐÁÍÑÔÉ/Ó×ÏÐÐÉÎÇÁ.
- ëÏÇÄÁ ÚÎÁÞÅÎÉÑ ÐÅÒÅÞÉÓÌÅÎÎÙÅ ×ÙÛÅ ÎÅÏÐÒÁ×ÄÁÎÏ ÂÏÌØÛÉÅ, ÍÏÖÅÔ
- ÐÏÓÔÒÁÄÁÔØ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ.</P>
-
- <P>íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÔÁÂÌÉÃÙ × 32 TB ÎÅ ÔÒÅÂÕÅÔ ÞÔÏÂÙ ÏÐÅÒÁÃÉÏÎÎÁÑ
- ÓÉÓÔÅÍÁ ÐÏÄÄÅÒÖÉ×ÁÌÁ ÆÁÊÌÙ ÂÏÌØÛÉÈ ÒÁÚÍÅÒÏ×. âÏÌØÛÉÅ ÔÁÂÌÉÃÙ ÈÒÁÎÑÔÓÑ
- ËÁË ÍÎÏÖÅÓÔ×Ï ÆÁÊÌÏ× ÒÁÚÍÅÒÏÍ × 1 GB, ÔÁË ÞÔÏ ÏÇÒÁÎÉÞÅÎÉÑ, ËÏÔÏÒÙÅ
- ÎÁËÌÁÄÙ×ÁÅÔ ÆÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ ÎÅ ×ÁÖÎÙ.</P>
-
- <P>íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÔÁÂÌÉÃÙ É ÍÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ËÏÌÏÎÏË
- ÍÏÇÕÔ ÂÙÔØ Õ×ÅÌÉÞÅÎÙ × ÞÅÔÙÒÅ ÒÁÚÁ, ÅÓÌÉ ÒÁÚÍÅÒ ÂÌÏËÁ ÐÏ ÕÍÏÌÞÁÎÉÀ ÂÕÄÅÔ
- Õ×ÅÌÉÞÅÎ ÄÏ 32k.</P>
+ <P>Разумеется, понятие "неограничено" на самом деле ограничивается
+ доступным дисковым пространиством и размерами памяти/своппинга.
+ Когда значения перечисленные выше неоправдано большие, может
+ поÑ\81Ñ\82Ñ\80адаÑ\82Ñ\8c пÑ\80оизводиÑ\82елÑ\8cноÑ\81Ñ\82Ñ\8c.</P>
+
+ <P>Максимальный размер таблицы в 32 TB не требует чтобы операционная
+ система поддерживала файлы больших размеров. Большие таблицы хранятся
+ как множество файлов размером в 1 GB, так что ограничения, которые
+ накладывает файловая система не важны.</P>
+
+ <P>Максимальный размер таблицы и максимальное количество колонок
+ могут быть увеличены в четыре раза, если размер блока по умолчанию будет
+ увеличен до 32k.</P>
- <P>óÕÝÅÓÔ×ÕÅÔ ÏÇÒÁÎÉÞÅÎÉÅ, ÐÏ ËÏÔÏÒÏÍÕ ÉÎÄÅËÓÙ ÎÅ ÍÏÇÕÔ ÓÏÚÄÁ×ÁÔØÓÑ ÄÌÑ
- ËÏÌÏÎÏË ÄÌÉÎÎÅÅ ÞÅÍ 2,000 ÓÉÍ×ÏÌÏ×. ë ÓÞÁÓÔØÀ ÔÁËÉÅ ÉÎÄÅËÓÙ ×ÒÑÄ ÌÉ
- ÄÅÊÓÔ×ÉÔÅÌØÎÏ ËÏÍÕ-ÔÏ ÎÕÖÎÙ. õÎÉËÁÌØÎÏÓÔØ ÇÁÒÁÎÔÉÒÕÅÔÓÑ ÎÁÉÌÕÞÉÍ ÏÂÒÁÚÏÍ,
- Ó ÐÏÍÏÝØÀ ÆÕÎËÃÉÏÎÁÌØÎÏÇÏ ÉÎÄÅËÓÁ ÉÚ ÈÜÛÁ MD5 ÄÌÉÎÎÏÊ ËÏÌÏÎËÉ, Á
- ÐÏÌÎÏÔÅËÓÔÏ×ÏÅ ÉÎÄÅËÓÉÒÏ×ÁÎÉÅ ÐÏÚ×ÏÌÑÅÔ ÉÓËÁÔØ ÓÌÏ×Á ×ÎÕÔÒÉ ËÏÌÏÎËÉ.</P>
-
- <H3><A name="item4.5">4.5</A>) ëÁË ÍÎÏÇÏ ÄÉÓËÏ×ÏÇÏ ÐÒÏÓÔÒÁÎÓÔ×Á × ÂÁÚÅ ÄÁÎÎÙÈ
- ÎÕÖÎÏ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÄÁÎÎÙÈ ÉÚ ÏÂÙÞÎÏÇÏ ÔÅËÓÔÏ×ÏÇÏ ÆÁÊÌÁ?</H3>
-
- <P>óõâä PostgreSQL ÍÏÖÅÔ ÐÏÔÒÅÂÏ×ÁÔØÓÑ ÄÉÓËÏ×ÏÇÏ ÐÒÏÓÔÒÁÎÓÔ×Á ÄÏ 5 ÒÁÚ
- ÂÏÌØÛÅ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÄÁÎÎÙÈ ÉÚ ÐÒÏÓÔÏÇÏ ÔÅËÓÔÏ×ÏÇÏ ÆÁÊÌÁ.</P>
-
- <P>÷ ËÁÞÅÓÔ×Å ÐÒÉÍÅÒÁ, ÒÁÓÓÍÏÔÒÉÍ ÆÁÊÌ × 100,000 ÓÔÒÏË × ËÁÖÄÏÊ, ÉÚ
- ËÏÔÏÒÙÈ ÃÅÌÏÅ ÞÉÓÌÏ É ÔÅËÓÔÏ×ÏÅ ÏÐÉÓÁÎÉÅ. ðÒÉ ÜÔÏÍ ÄÌÉÎÁ ÔÅËÓÔÁ,
- × ÓÒÅÄÎÅÍ, ÓÏÓÔÁ×ÌÑÅÔ 20 ÂÁÊÔ. òÁÚÍÅÒ ÐÒÏÓÔÏÇÏ ÆÁÊÌÁ ÓÏÓÔÁ×ÉÔ 2.8 MB.
- òÁÚÍÅÒ ÂÁÚÙ PostgreSQL, ÓÏÄÅÒÖÁÝÅÊ ÜÔÉ ÖÅ ÄÁÎÎÙÅ ÓÏÓÔÁ×ÉÔ ÐÒÉÂÌÉÚÉÔÅÌØÎÏ
- 5.2 MB ÉÚ ËÏÔÏÒÙÈ:</P>
+ <P>Существует ограничение, по которому индексы не могут создаваться для
+ колонок длиннее чем 2,000 символов. К счастью такие индексы вряд ли
+ действительно кому-то нужны. Уникальность гарантируется наилучим образом,
+ с помощью функционального индекса из хэша MD5 длинной колонки, а
+ полноÑ\82екÑ\81Ñ\82овое индекÑ\81иÑ\80ование позволÑ\8fеÑ\82 иÑ\81каÑ\82Ñ\8c Ñ\81лова внÑ\83Ñ\82Ñ\80и колонки.</P>
+
+ <H3><A name="item4.5">4.5</A>) Как много дискового пространства в базе данных
+ нужно для сохранения данных из обычного текстового файла?</H3>
+
+ <P>СУБД PostgreSQL может потребоваться дискового пространства до 5 раз
+ больше для сохранения данных из простого текстового файла.</P>
+
+ <P>В качестве примера, рассмотрим файл в 100,000 строк в каждой, из
+ которых целое число и текстовое описание. При этом длина текста,
+ в среднем, составляет 20 байт. Размер простого файла составит 2.8 MB.
+ Размер базы PostgreSQL, содержащей эти же данные составит приблизительно
+ 5.2 MB из которых:</P>
<PRE>
- 24 ÂÁÊÔ: ÎÁ ËÁÖÄÙÊ ÚÁÇÏÌÏ×ÏË ÓÔÒÏËÉ × ÔÁÂÌÉÃÅ (ÐÒÉÂÌÉÚÉÔÅÌØÎÏ)
- + 24 ÂÁÊÔÁ: ÏÄÎÏ ÐÏÌÅ Ó ÃÅÌÏÞÉÓÌÅÎÎÙÍ ÔÉÐÏÍ É ÏÄÎÏ ÔÅËÓÔÏ×ÏÅ ÐÏÌÅ
- + 4 ÂÁÊÔÁ: ÕËÁÚÁÔÅÌØ ÎÁ ÓÔÒÁÎÉÃÅ ÄÌÑ ×ÓÅÊ ÔÁÂÌÉÞÎÏÊ ÓÔÒÏËÉ
+ 24 байт: на каждый заголовок строки в таблице (приблизительно)
+ + 24 байта: одно поле с целочисленным типом и одно текстовое поле
+ + 4 байта: указатель на странице для всей табличной строки
----------------------------------------
- 56 ÂÁÊÔ ÎÁ ÓÔÒÏËÕ × ÔÁÂÌÉÃÅ
+ 56 байт на строку в таблице
- òÁÚÍÅÒ ÓÔÒÁÎÉÃÙ ÄÁÎÎÙÈ × PostgreSQL ÓÏÓÔÁ×ÌÑÅÔ 8192 ÂÁÊÔ (8 KB), ÔÁË ÞÔÏ:
+ Размер страницы данных в PostgreSQL составляет 8192 байт (8 KB), так что:
- 8192 ÂÁÊÔ ÎÁ ÓÔÒÁÎÉÃÕ
- --------------------- = 158 ÓÔÒÏË × ÔÁÂÌÉÃÅ ÎÁ ÓÔÒÁÎÉÃÕ âä (ÏËÒÕÇÌ£ÎÎÏ)
- 52 ÂÁÊÔ ÎÁ ÓÔÒÏËÕ × ÔÁÂÌÉÃÅ
+ 8192 байт на страницу
+ --------------------- = 158 строк в таблице на страницу БД (округлённо)
+ 52 байт на строку в таблице
- 100000 ÓÔÒÏË ÄÁÎÎÙÈ
- ----------------------- = 633 ÓÔÒÁÎÉÃ × âä (ÏËÒÕÇÌ£ÎÎÏ)
- 158 ÓÔÒÏË × ÔÁÂÌÉÃÅ ÎÁ ÓÔÒÁÎÉÃÕ
+ 100000 строк данных
+ ----------------------- = 633 страниц в БД (округлённо)
+ 158 строк в таблице на страницу
- 633 ÓÔÒÁÎÉÃ âä * 8192 ÂÁÊÔ ÎÁ ÓÔÒÁÎÉÃÕ = 5,185,536 ÂÁÊÔ (5.2 MB)
+ 633 страниц БД * 8192 байт на страницу = 5,185,536 байт (5.2 MB)
</PRE>
- <P>éÎÄÅËÓÙ ÎÅ ÔÒÅÂÕÀÔ ÔÁË ÍÎÏÇÏ, ÎÏ ÐÏÓËÏÌØËÕ ÏÎÉ ÓÏÚÄÁÀÔÓÑ ÄÌÑ
- ÂÏÌØÛÏÇÏ ËÏÌÉÞÅÓÔ×Á ÄÁÎÎÙÈ, ÏÎÉ ÔÁËÖÅ ÍÏÇÕÔ ÂÙÔØ ×ÅÌÉËÉ.</P>
+ <P>Индексы не требуют так много, но поскольку они создаются для
+ большого количества данных, они также могут быть велики.</P>
- <P>úÎÁÞÅÎÉÑ <small>NULL</small> ÈÒÁÎÑÔÓÑ ËÁË ÂÉÔÏ×ÙÅ ËÁÒÔÙ É ÐÏÜÔÏÍÕ ÏÎÉ
- ÚÁÎÉÍÁÀÔ ÏÞÅÎØ ÍÁÌÏ ÍÅÓÔÁ.
+ <P>Значения <small>NULL</small> хранятся как битовые карты и поэтому они
+ занимают очень мало места.
</P>
- <H3><A name="item4.6">4.6</A>) ðÏÞÅÍÕ ÍÏÉ ÚÁÐÒÏÓÙ ÒÁÂÏÔÁÀÔ ÍÅÄÌÅÎÏ? ðÏÞÅÍÕ
- ÏÎÉ ÎÅ ÉÓÐÏÌØÚÕÀÔ ÍÏÉ ÉÎÄÅËÓÙ?</H3>
+ <H3><A name="item4.6">4.6</A>) Почему мои запросы работают медлено? Почему
+ они не используют мои индексы?</H3>
- <P>éÎÄÅËÓÙ ÎÅ ÉÓÐÏÌØÚÕÀÔÓÑ ÄÌÑ ËÁÖÄÏÇÏ ÚÁÐÒÏÓÁ. ïÎÉ
- ÉÓÐÏÌØÚÕÀÔÓÑ ÔÏÌØËÏ ÅÓÌÉ ÔÁÂÌÉÃÁ ÂÏÌØÛÅ ÍÉÎÉÍÁÌØÎÏÇÏ ÒÁÚÍÅÒÁ É ÚÁÐÒÏÓ
- ×ÙÂÉÒÁÅÔ ÔÏÌØËÏ ÍÁÌÅÎØËÉÊ ÐÒÏÃÅÎÔ ÓÔÒÏË × ÔÁÂÌÉÃÅ. ôÁË ÕÓÔÒÏÅÎÏ,
- ÐÏÔÏÍÕ ÞÔÏ ÄÏÓÔÕÐ Ë ÄÉÓËÕ Ó ÐÒÉÍÅÎÅÎÉÅÍ ÒÁÎÄÏÍÉÚÁÃÉÉ ÐÒÉ ÓËÁÎÉÒÏ×ÁÎÉÉ
- ÉÎÄÅËÓÏ× ÍÏÖÅÔ ÂÙÔØ ÍÅÄÌÅÎÎÅÅ, ÞÅÍ ÐÒÏÓÔÏÅ ÞÔÅÎÉÅ ÔÁÂÌÉÃÙ ÉÌÉ ÅÅ
- ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÅ ÓËÁÎÉÒÏ×ÁÎÉÅ.</P>
+ <P>Индексы не используются для каждого запроса. Они
+ используются только если таблица больше минимального размера и запрос
+ выбирает только маленький процент строк в таблице. Так устроено,
+ поÑ\82омÑ\83 Ñ\87Ñ\82о доÑ\81Ñ\82Ñ\83п к диÑ\81кÑ\83 Ñ\81 пÑ\80именением Ñ\80андомизаÑ\86ии пÑ\80и Ñ\81каниÑ\80овании
+ индексов может быть медленнее, чем простое чтение таблицы или ее
+ поÑ\81ледоваÑ\82елÑ\8cное Ñ\81каниÑ\80ование.</P>
- <P>þÔÏÂÙ ÏÐÒÅÄÅÌÉÔØ ÎÅÏÂÈÏÄÉÍÏÓÔØ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÉÎÄÅËÓÁ ÄÌÑ ËÁËÏÊ-ÌÉÂÏ
- ÔÁÂÌÉÃÙ, PostgreSQL ÄÏÌÖÅÎ ÉÍÅÔØ ÓÔÁÔÉÓÔÉËÕ ÐÏ ÜÔÏÊ ÔÁÂÌÉÃÅ. üÔÁ
- ÓÔÁÔÉÓÔÉËÁ ÓÏÂÉÒÁÅÔÓÑ ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ <SMALL>VACUUM ANALYZE</SMALL>
- ÉÌÉ ÐÒÏÓÔÏ <SMALL>ANALYZE</SMALL>. éÓÐÏÌØÚÕÑ ÓÔÁÔÉÓÔÉËÕ, ÏÐÔÉÍÉÚÁÔÏÒ
- ÕÚÎÁÅÔ Ï ÔÏÍ ËÁË ÍÎÏÇÏ ÓÔÒÏË × ÔÁÂÌÉÃÅ É ÅÓÌÉ ÏÎ ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØ
- ÉÎÄÅËÓÙ, ÔÏ ÏÎ ÍÏÖÅÔ ÐÒÉÎÉÍÁÔØ ÌÕÞÛÉÅ ÒÅÛÅÎÉÑ. óÔÁÔÉÓÔÉËÁ ÔÁËÖÅ
- ×ÌÉÑÅÔ ÎÁ ÏÐÒÅÄÅÌÅÎÉÅ ÏÐÔÉÍÁÌØÎÏÇÏ ÐÏÒÑÄËÁ Ó×ÑÚÙ×ÁÎÉÑ É ÍÅÔÏÄÁ Ó×ÑÚÙ×ÁÎÉÑ.
- ðÒÉ ÉÚÍÅÎÅÎÉÉ ÓÏÄÅÒÖÉÍÏÇÏ ÔÁÂÌÉÃÙ ÄÏÌÖÅÎ ÐÅÒÉÏÄÉÞÅÓËÉ ×ÙÐÏÌÎÑÔÓÑ
- ÓÂÏÒ ÓÔÁÔÉÓÔÉËÉ.</P>
+ <P>Чтобы определить необходимость использования индекса для какой-либо
+ таблицы, PostgreSQL должен иметь статистику по этой таблице. Эта
+ статистика собирается при использовании <SMALL>VACUUM ANALYZE</SMALL>
+ или просто <SMALL>ANALYZE</SMALL>. Используя статистику, оптимизатор
+ узнает о том как много строк в таблице и если он должен использовать
+ индексы, то он может принимать лучшие решения. Статистика также
+ влияет на определение оптимального порядка связывания и метода связывания.
+ При изменении содержимого таблицы должен периодически выполнятся
+ сбор статистики.</P>
- <P>ïÂÙÞÎÏ ÉÎÄÅËÓÙ ÎÅ ÉÓÐÏÌØÚÕÀÔÓÑ ÄÌÑ <SMALL>ORDER BY</SMALL> ÉÌÉ ÄÌÑ
- ×ÙÐÏÌÎÅÎÉÑ Ó×ÑÚÙ×ÁÎÉÊ. ðÏÓÌÅÄÏ×ÁÔÅÌØÎÙÊ ÐÅÒÅÂÏÒ ÓÌÅÄÕÀÝÉÊ ÚÁ Ñ×ÎÏÊ
- ÓÏÒÔÉÒÏ×ËÏÊ ÏÂÙÞÎÏ ÂÙÓÔÒÅÅ, ÞÅÍ ÐÏÉÓË ÐÏ ÉÎÄÅËÓÁÍ × ÂÏÌØÛÏÊ ÔÁÂÌÉÃÅ.
- ïÄÎÁËÏ, <SMALL>ORDER BY</SMALL> ÞÁÓÔÏ ËÏÍÂÉÎÉÒÕÅÔÓÑ Ó <SMALL>LIMIT</SMALL>
- É × ÜÔÏÍ ÓÌÕÞÁÅ ÉÎÄÅËÓ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ, ÐÏÓËÏÌØËÕ ÐÒÉ ×ÙÐÏÌÎÅÎÉÉ
- ÂÕÄÅÔ ×ÏÚ×ÒÁÝÁÔØÓÑ ÎÅÂÏÌØÛÁÑ ÞÁÓÔØ ÔÁÂÌÉÃÙ.</P>
-
- <P>åÓÌÉ ×ÁÍ ËÁÖÅÔÓÑ, ÞÔÏ ÏÐÔÉÍÉÚÁÔÏÒ ÎÅËÏÒÒÅËÔÎÏ ×ÙÂÉÒÁÅÔ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÙÊ
- ÐÅÒÅÂÏÒ, ÉÓÐÏÌØÚÕÊÔÅ <CODE>SET enable_seqscan TO 'off'</CODE> É
- ÚÁÐÕÓÔÉÔÅ ÚÁÐÒÏÓ ÓÎÏ×Á, ÞÔÏÂÙ Õ×ÉÄÅÔØ, ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÌÉ ÓËÁÎÉÒÏ×ÁÎÉÅ
- ÉÎÄÅËÓÏ× ÂÙÓÔÒÅÅ.
+ <P>Обычно индексы не используются для <SMALL>ORDER BY</SMALL> или для
+ выполнения связываний. Последовательный перебор следующий за явной
+ сортировкой обычно быстрее, чем поиск по индексам в большой таблице.
+ Однако, <SMALL>ORDER BY</SMALL> часто комбинируется с <SMALL>LIMIT</SMALL>
+ и в этом случае индекс будет использоваться, поскольку при выполнении
+ будет возвращаться небольшая часть таблицы.</P>
+
+ <P>Если вам кажется, что оптимизатор некорректно выбирает последовательный
+ пеÑ\80ебоÑ\80, иÑ\81полÑ\8cзÑ\83йÑ\82е <CODE>SET enable_seqscan TO 'off'</CODE> и
+ запустите запрос снова, чтобы увидеть, действительно ли сканирование
+ индексов быстрее.
</P>
- <P>ëÏÇÄÁ ÉÓÐÏÌØÚÕÀÔÓÑ ÏÐÅÒÁÃÉÉ Ó ÛÁÂÌÏÎÁÍÉ, ÎÁÐÒÉÍÅÒ <SMALL>LIKE</SMALL>
- ÉÌÉ <I>~</I>, ÉÎÄÅËÓÙ ÍÏÇÕÔ ÂÙÔØ ÉÓÐÏÌØÚÏ×ÁÎÙ × ÓÌÅÄÕÀÝÉÈ ÓÌÕÞÁÑÈ:</P>
+ <P>Когда используются операции с шаблонами, например <SMALL>LIKE</SMALL>
+ или <I>~</I>, индексы могут быть использованы в следующих случаях:</P>
<UL>
- <LI>îÁÞÁÌÏ ÓÔÒÏËÉ ÐÏÉÓËÁ ÄÏÌÖÎÏ ÓÏ×ÐÁÄÁÔØ Ó ÎÁÞÁÌÏÍ ÉÓËÏÍÏÊ ÓÔÒÏËÉ, Ô.Å.:
+ <LI>Начало строки поиска должно совпадать с началом искомой строки, т.е.:
<UL>
- <LI><small>LIKE</small> ÛÁÂÌÏÎÙ ÎÅ ÄÏÌÖÎÙ ÎÁÞÉÎÁÔØÓÑ Ó <i>%.</i>.</LI>
- <LI><i>~</i> ÛÁÂÌÏÎÙ ÒÅÇÕÌÑÒÎÙÈ ×ÙÒÁÖÅÎÉÊ ÄÏÌÖÎÁ ÎÁÞÉÎÁÔØÓÑ ÎÁ <i>^</i>.</LI>
+ <LI><small>LIKE</small> шаблоны не должны начинаться с <i>%.</i>.</LI>
+ <LI><i>~</i> шаблоны регулярных выражений должна начинаться на <i>^</i>.</LI>
</UL></LI>
- <LI>óÔÒÏËÁ ÐÏÉÓËÁ ÎÅ ÄÏÌÖÎÁ ÎÁÞÉÎÁÔØÓÑ Ó ÓÉÍ×ÏÌÁ ËÌÁÓÓÁ, Ô.Å. [a-e].</LI>
- <LI>ðÏÉÓË ÎÅÚÁ×ÉÓÉÍÙÊ ÏÔ ÒÅÇÉÓÔÒÁ, ÔÁËÏÊ ËÁË <small>ILIKE</small> É
- <i>~*</i> ÎÅ ÉÓÐÏÌØÚÕÅÔ ÉÎÄÅËÓÙ. ÷ÍÅÓÔÏ ÎÅÇÏ, ÉÓÐÏÌØÚÕÊÔÅ ÉÎÄÅËÓÙ
- ×ÙÒÁÖÅÎÉÊ, ËÏÔÏÒÙÅ ÏÐÉÓÙ×ÁÀÔÓÑ × ÓÅËÃÉÉ <A href="#item4.8">4.8</A>.</LI>
- <LI>÷Ï ×ÒÅÍÑ <i>initdb</i> ÄÏÌÖÎÁ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÌÏËÁÌØ ÐÏ ÕÍÏÌÞÁÎÉÀ
- <i>C</i>, ÐÏÔÏÍÕ ÞÔÏ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ ×ÏÚÍÏÖÎÏÓÔÉ ÕÚÎÁÔØ ÓÌÅÄÕÀÝÉÊ ÎÁÉÂÏÌØÛÉÊ
- ÓÉÍ×ÏÌ ÄÌÑ ÎÅ-C ÌÏËÁÌÉ. ÷Ù ÍÏÖÅÔÅ ÄÌÑ ÔÁËÉÈ ÓÌÕÞÁÅ× ÓÏÚÄÁÔØ ÓÐÅÃÉÁÌØÎÙÊ
- ÉÎÄÅËÓ <CODE>text_pattern_ops</CODE> ËÏÔÏÒÙÊ ÒÁÂÏÔÁÅÔ ÔÏÌØËÏ ÄÌÑ
- <SMALL>LIKE</SMALL> ÉÎÄÅËÓÉÒÏ×ÁÎÉÑ. äÌÑ ÐÏÉÓËÁ ÓÌÏ× ÔÁËÖÅ ÍÏÖÎÏ
- ÉÓÐÏÌØÚÏ×ÁÔØ ÐÏÌÎÏÔÅËÓÔÏ×ÙÊ ÉÎÄÅËÓ.</LI>
+ <LI>Строка поиска не должна начинаться с символа класса, т.е. [a-e].</LI>
+ <LI>Поиск независимый от регистра, такой как <small>ILIKE</small> и
+ <i>~*</i> не использует индексы. Вместо него, используйте индексы
+ выражений, которые описываются в секции <A href="#item4.8">4.8</A>.</LI>
+ <LI>Во время <i>initdb</i> должна использоваться локаль по умолчанию
+ <i>C</i>, поÑ\82омÑ\83 Ñ\87Ñ\82о не Ñ\81Ñ\83Ñ\89еÑ\81Ñ\82вÑ\83еÑ\82 возможноÑ\81Ñ\82и Ñ\83знаÑ\82Ñ\8c Ñ\81ледÑ\83Ñ\8eÑ\89ий наиболÑ\8cÑ\88ий
+ символ для не-C локали. Вы можете для таких случаев создать специальный
+ индекс <CODE>text_pattern_ops</CODE> который работает только для
+ <SMALL>LIKE</SMALL> индексирования. Для поиска слов также можно
+ использовать полнотекстовый индекс.</LI>
</UL>
- <H3><A name="item4.7">4.7</A>) ëÁË ÐÏÓÍÏÔÒÅÔØ ÎÁ ÔÏ, ËÁË ÏÐÔÉÍÉÚÁÔÏÒ ×ÙÐÏÌÎÑÅÔ
- ÍÏÊ ÚÁÐÒÏÓ?</H3>
+ <H3><A name="item4.7">4.7</A>) Как посмотреть на то, как оптимизатор выполняет
+ мой запрос?</H3>
- <P>óÍÏÔÒÉÔÅ ÓÔÒÁÎÉÃÕ ÒÕËÏ×ÏÄÓÔ×Á ÐÏÓ×ÑÝÅÎÎÕÀ <SMALL>EXPLAIN</SMALL>.</P>
+ <P>Смотрите страницу руководства посвященную <SMALL>EXPLAIN</SMALL>.</P>
- <H3><A name="item4.8">4.8</A>) ëÁË ÍÎÅ ×ÙÐÏÌÎÉÔØ ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ
- É ÐÏÉÓË ÎÅÚÁ×ÉÓÉÍÙÊ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË× ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ?
- ëÁË ÍÎÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÉÎÄÅËÓ ÄÌÑ ÐÏÉÓËÁ ÎÅÚÁ×ÉÓÉÍÏÇÏ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË×?</H3>
+ <H3><A name="item4.8">4.8</A>) Как мне выполнить поиск регулярного выражения
+ и поиск независимый от регистра букв поиск регулярного выражения?
+ Как мне использовать индекс для поиска независимого от регистра букв?</H3>
- <P>ïÐÅÒÁÔÏÒ <I>~</I> ÐÒÏÉÚ×ÏÄÉÔ ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ, Á ÏÐÅÒÁÔÏÒ
- <I>~*</I> ÐÒÏÉÚ×ÏÄÉÔ ÎÅÚÁ×ÉÓÉÍÙÊ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË× ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ
- ×ÙÒÁÖÅÎÉÑ. îÅÚÁ×ÉÓÉÍÙÊ ÏÔ ÒÅÇÉÓÔÒÁ ×ÁÒÉÁÎÔ <SMALL>LIKE</SMALL> ÎÁÚÙ×ÁÅÔÓÑ
+ <P>Оператор <I>~</I> производит поиск регулярного выражения, а оператор
+ <I>~*</I> пÑ\80оизводиÑ\82 незавиÑ\81имÑ\8bй оÑ\82 Ñ\80егиÑ\81Ñ\82Ñ\80а бÑ\83кв поиÑ\81к Ñ\80егÑ\83лÑ\8fÑ\80ного
+ выражения. Независимый от регистра вариант <SMALL>LIKE</SMALL> называется
<SMALL>ILIKE</SMALL>.</P>
- <P>îÅÚÁ×ÉÓÉÍÏÅ ÏÔ ÒÅÇÉÓÔÒÁ ÓÒÁ×ÎÅÎÉÅ ÏÂÙÞÎÏ ×ÙÒÁÖÁÅÔÓÑ ÔÁË:</P>
+ <P>Независимое от регистра сравнение обычно выражается так:</P>
<PRE>
SELECT *
FROM tab
WHERE lower(col) = 'abc';
</PRE>
- üÔÁ ËÏÎÓÔÒÕËÃÉÑ ÎÅ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÓÔÁÎÄÁÒÔÎÙÊ ÉÎÄÅËÓ. ïÄÎÁËÏ, ÅÓÌÉ
- ×Ù ÓÏÚÄÁÄÉÔÅ ÉÎÄÅËÓ ×ÙÒÁÖÅÎÉÑ, ÏÎ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÎ:
+ Эта конструкция не будет использовать стандартный индекс. Однако, если
+ вы создадите индекс выражения, он будет использован:
<PRE>
CREATE INDEX tabindex ON tab (lower(col));
</PRE>
- <P>åÓÌÉ ×ÙÛÅÕËÁÚÁÎÎÙÊ ÉÎÄÅËÓ ÓÏÚÄÁ£ÔÓÑ ËÁË <SMALL>UNIQUE</SMALL>, ÔÏ
- ËÏÌÏÎËÁ, ÄÌÑ ËÏÔÏÒÏÊ ÏÎ ÓÏÚÄÁ£ÔÓÑ ÍÏÖÅÔ ÈÒÁÎÉÔØ ÓÉÍ×ÏÌÙ É × ×ÅÒÈÎÅÍ,
- É × ÎÉÖÎÅÍ ÒÅÇÉÓÔÒÅ, ÉÎÄÅÓ ÎÅ ÍÏÖÅÔ ÉÍÅÔØ ÉÄÅÎÔÉÞÎÙÈ ÚÎÁÞÅÎÉÊ, ËÏÔÏÒÙÅ
- ÏÔÌÉÞÁÀÔÓÑ ÔÏÌØËÏ ÒÅÇÉÓÔÒÏÍ. þÔÏÂÙ × ËÏÌÏÎËÅ ÍÏÖÎÏ ÂÙÌÏ ÈÒÁÎÉÔØ ÓÉÍ×ÏÌÙ
- ÔÏÌØËÏ × ÏÐÒÅÄÅÌ£ÎÎÏÍ ÒÅÇÉÓÔÒÅ, ÉÓÐÏÌØÚÕÊÔÅ ÏÇÒÁÎÉÞÅÎÉÅ
- <SMALL>CHECK</SMALL> ÉÌÉ ÐÒÏ×ÅÒËÕ ÞÅÒÅÚ ÔÒÉÇÇÅÒ.</P>
-
- <H3><A name="item4.9">4.9</A>) ëÁË ÍÎÅ ÏÐÒÅÄÅÌÉÔØ, ÞÔÏ ÚÎÁÞÅÎÉÅ ÐÏÌÑ × ËÁËÏÍ-ÌÉÂÏ
- ÚÁÐÒÏÓÅ ÒÁ×ÎÏ <SMALL>NULL</SMALL>? ëÁË ÍÎÅ ÓÏÅÄÉÎÉÔØ ×ÏÚÍÏÖÎÙÅ
- <SMALL>NULL</SMALL>? íÏÇÕ Ñ ÓÏÒÔÉÒÏ×ÁÔØ ÐÏÌÑ <SMALL>NULL</SMALL> ÉÌÉ ÎÅÔ?</H3>
-
- <P>÷Ù ÐÒÏÓÔÏ ÓÒÁ×ÎÉ×ÁÅÔÅ ÚÎÁÞÅÎÉÅ Ó <SMALL>IS NULL</SMALL> É
- <SMALL>IS NOT NULL</SMALL>, ËÁË ÚÄÅÓØ:</P>
+ <P>Если вышеуказанный индекс создаётся как <SMALL>UNIQUE</SMALL>, то
+ колонка, для которой он создаётся может хранить символы и в верхнем,
+ и в нижнем регистре, индес не может иметь идентичных значений, которые
+ отличаются только регистром. Чтобы в колонке можно было хранить символы
+ только в определённом регистре, используйте ограничение
+ <SMALL>CHECK</SMALL> или проверку через триггер.</P>
+
+ <H3><A name="item4.9">4.9</A>) Как мне определить, что значение поля в каком-либо
+ запросе равно <SMALL>NULL</SMALL>? Как мне соединить возможные
+ <SMALL>NULL</SMALL>? Могу я сортировать поля <SMALL>NULL</SMALL> или нет?</H3>
+
+ <P>Вы просто сравниваете значение с <SMALL>IS NULL</SMALL> и
+ <SMALL>IS NOT NULL</SMALL>, как здесь:</P>
<PRE>
SELECT *
FROM tab
WHERE col IS NULL;
</PRE>
- <P>þÔÏÂÙ ÓÏÅÄÉÎÉÔØ Ó ×ÏÚÍÏÖÎÙÍÉ ÚÎÁÞÅÎÉÑÍÉ <SMALL>NULL</SMALL>, ÉÓÐÏÌØÚÕÊÔÅ
- <I>COALESCE()</I> ËÁË ÚÄÅÓØ:</P>
+ <P>Чтобы соединить с возможными значениями <SMALL>NULL</SMALL>, используйте
+ <I>COALESCE()</I> как здесь:</P>
<PRE>
SELECT COALESCE(col1, '') || COALESCE(col2, '')
FROM tab
</PRE>
- <P>þÔÏÂÙ ÏÔÓÏÒÔÉÒÏ×ÁÔØ ÄÁÎÎÙÅ ÐÏ ÚÎÁÞÅÎÉÀ <NULL> ÉÓÐÏÌØÚÕÊÔÅ ÍÏÄÉÆÉËÁÔÏÒÙ
- <SMALL>IS NULL</SMALL> É <SMALL>IS NOT NULL</SMALL> × ×ÙÒÁÖÅÎÉÉ
- <SMALL>ORDER BY</SMALL>. ëÏÇÄÁ ÏÎÉ ÂÕÄÕÔ ÇÅÎÅÒÉÒÏ×ÁÔØ ÚÎÁÞÅÎÉÑ
- <I>ÉÓÔÉÎÁ</I>, ÔÏ ÐÒÉ ÓÏÒÔÉÒÏ×ËÅ ÏÎÉ ÂÕÄÕÔ ×ÙÛÅ, ÞÅÍ ÚÎÁÞÅÎÉÑ
- <I>ÌÏÖØ</I>, ÔÁË ÞÔÏ ÚÁÐÉÓÉ Ó NULL ÂÕÄÕÔ × ÏÔÓÏÒÔÉÒÏ×ÁÎÎÏÍ ÓÐÉÓËÅ Ó×ÅÒÈÕ:</P>
+ <P>Чтобы отсортировать данные по значению <NULL> используйте модификаторы
+ <SMALL>IS NULL</SMALL> и <SMALL>IS NOT NULL</SMALL> в выражении
+ <SMALL>ORDER BY</SMALL>. Когда они будут генерировать значения
+ <I>истина</I>, то при сортировке они будут выше, чем значения
+ <I>ложь</I>, так что записи с NULL будут в отсортированном списке сверху:</P>
<PRE>
SELECT *
ORDER BY (col IS NOT NULL);
</PRE>
- <H3><A name="item4.10">4.10</A>) ëÁËÏ×Ù ÏÔÌÉÞÉÑ ÍÅÖÄÕ ÒÁÚÎÙÍÉ ÓÉÍ×ÏÌØÎÙÍÉ
- ÔÉÐÁÍÉ?</H3>
+ <H3><A name="item4.10">4.10</A>) Каковы отличия между разными символьными
+ типами?</H3>
<BLOCKQUOTE>
<TABLE>
<TR>
- <TH>ôÉÐ</TH>
- <TH>÷ÎÕÔÒÅÎÎÅÅ ÉÍÑ</TH>
- <TH>úÁÍÅÞÁÎÉÑ</TH>
+ <TH>Тип</TH>
+ <TH>Внутреннее имя</TH>
+ <TH>Замечания</TH>
</TR>
<TR>
<TD>VARCHAR(n)</TD>
<TD>varchar</TD>
- <TD>ÒÁÚÍÅÒ ÚÁÄÁÅÔ ÍÁËÓÉÍÁÌØÎÕÀ ÄÌÉÎÕ, ÎÅÔ ÚÁÐÏÌÎÅÎÉÑ</TD>
+ <TD>размер задает максимальную длину, нет заполнения</TD>
</TR>
<TR>
<TD>CHAR(n)</TD>
<TD>bpchar</TD>
- <TD>ÚÁÐÏÌÎÑÅÔÓÑ ÐÕÓÔÏÔÏÊ ÄÏ ÆÉËÓÉÒÏ×ÁÎÎÏÊ ÄÌÉÎÙ</TD>
+ <TD>заполняется пустотой до фиксированной длины</TD>
</TR>
<TR>
<TD>TEXT</TD>
<TD>text</TD>
- <TD>ÎÅÔ ÚÁÄÁ×ÁÅÍÏÇÏ ×ÅÒÈÎÅÇÏ ÏÇÒÁÎÉÞÅÎÉÑ ÉÌÉ ÄÌÉÎÙ</TD>
+ <TD>нет задаваемого верхнего ограничения или длины</TD>
</TR>
<TR>
<TD>BYTEA</TD>
<TD>bytea</TD>
- <TD>ÍÁÓÓÉ× ÂÁÊÔ ÐÅÒÅÍÅÎÎÏÊ ÄÌÉÎÙ (ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ null-ÂÁÊÔ ÂÅÚ ÏÐÁÓËÉ)</TD>
+ <TD>массив байт переменной длины (можно использовать null-байт без опаски)</TD>
</TR>
<TR>
<TD>"char"</TD>
<TD>char</TD>
- <TD>ÏÄÉÎ ÓÉÍ×ÏÌ</TD>
+ <TD>один символ</TD>
</TR>
</TABLE>
</BLOCKQUOTE>
- <P>÷ÎÕÔÒÅÎÎÅÅ ÉÍÑ ×Ù ÍÏÖÅÔÅ Õ×ÉÄÅÔØ, ËÏÇÄÁ ÓÍÏÔÒÉÔÅ ÓÉÓÔÅÍÎÙÅ ËÁÔÁÌÏÇÉ
- É × ÎÅËÏÔÏÒÙÈ ÓÏÏÂÝÅÎÉÑÈ ÏÂ ÏÛÉÂËÁÈ.</P>
-
- <P>ðÅÒ×ÙÅ ÞÅÔÙÒÅ ÔÉÐÁ Ñ×ÌÑÀÔÓÑ "varlena" ÔÉÐÁÍÉ (Ô.Å., ÐÅÒ×ÙÅ
- ÞÅÔÙÒÅ ÂÁÊÔÁ ÎÁ ÄÉÓËÅ Ñ×ÌÑÀÔÓÑ ÄÌÉÎÎÏÊ, ÚÁ ËÏÔÏÒÏÊ ÓÌÅÄÕÀÔ ÄÁÎÎÙÅ).
- ôÁËÉÍ ÏÂÒÁÚÏÍ, ÆÁËÔÉÞÅÓËÉ ÉÓÐÏÌØÚÕÅÍÏÅ ÐÒÏÓÔÒÁÎÓÔ×Ï ÂÏÌØÛÅ, ÞÅÍ
- ÏÂÏÚÎÁÞÅÎÎÙÊ ÒÁÚÍÅÒ. ïÄÎÁËÏ, ÄÌÉÎÎÙÅ ÚÎÁÞÅÎÉÑ ÔÁËÖÅ ÓÖÉÍÁÀÔÓÑ,
- ÔÁË ÞÔÏ ÚÁÎÉÍÁÅÍÏÅ ÄÉÓËÏ×ÏÅ ÐÒÏÓÔÒÁÎÓÔ×Ï ÍÏÖÅÔ ÔÁËÖÅ ÂÙÔØ É ÍÅÎØÛÅ,
- ÞÅÍ ÏÖÉÄÁÌÏÓØ.</P>
-
- <SMALL>VARCHAR(n)</SMALL> - ÜÔÏ ÌÕÞÛÅÅ ÒÅÛÅÎÉÅ, ËÏÇÄÁ ÎÕÖÎÏ ÈÒÁÎÉÔØ
- ÓÔÒÏËÉ ÐÅÒÅÍÅÎÎÏÊ ÄÌÉÎÙ, ÎÅ ÐÒÅ×ÙÛÁÀÝÉÅ ÏÐÒÅÄÅÌÅÎÎÏÇÏ ÒÁÚÍÅÒÁ.
- <SMALL>TEXT</SMALL> - ÜÔÏ ÌÕÞÛÅÅ ÒÅÛÅÎÉÅ ÄÌÑ ÓÔÒÏË ÎÅÏÇÒÁÎÉÞÅÎÎÏÊ ÄÌÉÎÙ,
- Ó ÍÁËÓÉÍÁÌØÎÏ ÄÏÐÕÓÔÉÍÏÊ ÄÌÉÎÏÊ × 1 ÇÉÇÁÂÁÊÔ.
- <P><SMALL>CHAR(n)</SMALL> - ÜÔÏ ÌÕÞÛÅÅ ÒÅÛÅÎÉÅ ÄÌÑ ÈÒÁÎÅÎÉÑ ÓÔÒÏË, ËÏÔÏÒÙÅ
- ÏÂÙÞÎÏ ÉÍÅÀÔ ÏÄÉÎÁËÏ×ÕÀ ÄÌÉÎÕ. <SMALL>CHAR(n)</SMALL> ÚÁÐÏÌÎÑÅÔÓÑ
- ÐÕÓÔÏÔÏÊ ÄÏ ÚÁÄÁÎÎÏÊ ÄÌÉÎÙ, × ÔÏ ×ÒÅÍÑ ËÁË <SMALL>VARCHAR(n)</SMALL>
- ÈÒÁÎÉÔ ÔÏÌØËÏ ÓÉÍ×ÏÌÙ, ÉÚ ËÏÔÏÒÙÈ ÓÏÓÔÏÉÔ ÓÔÒÏËÁ.
- <SMALL>BYTEA</SMALL> ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÈÒÁÎÅÎÉÑ ÂÉÎÁÒÎÙÈ ÄÁÎÎÙÈ, ÚÎÁÞÅÎÉÑ
- ËÏÔÏÒÙÈ ÍÏÇÕÔ ×ËÌÀÞÁÔØ <SMALL>NULL</SMALL> ÂÁÊÔÙ. ÷ÓÅ ÔÉÐÙ ÏÐÉÓÁÎÎÙÅ
- ÚÄÅÓØ, ÉÍÅÀÔ ÓÈÏÄÎÙÅ ÈÁÒÁËÔÅÒÉÓÔÉËÉ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ.</P>
-
- <H3><A name="item4.11.1">4.11.1</A>) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ÐÏÌÅ
- serial/Ó-Á×ÔÏ-Õ×ÅÌÉÞÅÎÉÅÍ?</H3>
-
- <P>PostgreSQL ÐÏÄÄÅÒÖÉ×ÁÅÔ ÔÉÐ ÄÁÎÎÙÈ <SMALL>SERIAL</SMALL>. ïÎ
- Á×ÔÏÍÁÔÉÞÅÓËÉ ÓÏÚÄÁÅÔ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ. îÁÐÒÉÍÅÒ:</P>
+ <P>Внутреннее имя вы можете увидеть, когда смотрите системные каталоги
+ и в некоторых сообщениях об ошибках.</P>
+
+ <P>Первые четыре типа являются "varlena" типами (т.е., первые
+ четыре байта на диске являются длинной, за которой следуют данные).
+ Таким образом, фактически используемое пространство больше, чем
+ обозначенный размер. Однако, длинные значения также сжимаются,
+ так что занимаемое дисковое пространство может также быть и меньше,
+ чем ожидалось.</P>
+
+ <SMALL>VARCHAR(n)</SMALL> - это лучшее решение, когда нужно хранить
+ строки переменной длины, не превышающие определенного размера.
+ <SMALL>TEXT</SMALL> - это лучшее решение для строк неограниченной длины,
+ с максимально допустимой длиной в 1 гигабайт.
+ <P><SMALL>CHAR(n)</SMALL> - это лучшее решение для хранения строк, которые
+ обычно имеют одинаковую длину. <SMALL>CHAR(n)</SMALL> заполняется
+ пÑ\83Ñ\81Ñ\82оÑ\82ой до заданной длинÑ\8b, в Ñ\82о вÑ\80емÑ\8f как <SMALL>VARCHAR(n)</SMALL>
+ хранит только символы, из которых состоит строка.
+ <SMALL>BYTEA</SMALL> используется для хранения бинарных данных, значения
+ которых могут включать <SMALL>NULL</SMALL> байты. Все типы описанные
+ здесь, имеют сходные характеристики производительности.</P>
+
+ <H3><A name="item4.11.1">4.11.1</A>) Как мне создать поле
+ serial/с-авто-увеличением?</H3>
+
+ <P>PostgreSQL поддеÑ\80живаеÑ\82 Ñ\82ип даннÑ\8bÑ\85 <SMALL>SERIAL</SMALL>. Ð\9eн
+ автоматически создает последовательность. Например:</P>
<PRE>
CREATE TABLE person (
id SERIAL,
);
</PRE>
- Á×ÔÏÍÁÔÉÞÅÓËÉ ÔÒÁÎÓÌÉÒÕÅÔÓÑ ×:
+ автоматически транслируется в:
<PRE>
CREATE SEQUENCE person_id_seq;
CREATE TABLE person (
);
</PRE>
- <P>á×ÔÏÍÁÔÉÞÅÓËÉ ÓÏÚÄÁÎÎÁÑ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ ÉÍÅÅÔ ÉÍÑ ×ÉÄÁ
- <<I>ÔÁÂÌÉÃÁ</I>>_<<I>ËÏÌÏÎËÁ_serial</I>>_<I>seq</I>, ÇÄÅ
- <I>ÔÁÂÌÉÃÁ</I> É <I>ËÏÌÏÎËÁ_serial</I> - ÜÔÏ ÓÏÏÔ×ÅÔÓÔ×ÅÎÎÏ ÉÍÅÎÁ
- ÔÁÂÌÉÃÙ É ËÏÌÏÎËÉ Ó ÔÉÐÏÍ <SMALL>SERIAL</SMALL>.
- óÍÏÔÒÉÔÅ ÐÏÄÒÏÂÎÏÓÔÉ Ï ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÑÈ ÎÁ ÓÔÒÁÎÉÃÅ ÒÕËÏ×ÏÄÓÔ×Á
- ÐÏÓ×ÑÝÅÎÎÏÊ <I>create_sequence</I>.</P>
+ <P>Автоматически созданная последовательность имеет имя вида
+ <<I>таблица</I>>_<<I>колонка_serial</I>>_<I>seq</I>, где
+ <I>таблица</I> и <I>колонка_serial</I> - это соответственно имена
+ таблицы и колонки с типом <SMALL>SERIAL</SMALL>.
+ Смотрите подробности о последовательностях на странице руководства
+ поÑ\81вÑ\8fÑ\89енной <I>create_sequence</I>.</P>
- <H3><A name="item4.11.2">4.11.2</A>) ëÁË ÍÎÅ ÐÏÌÕÞÉÔØ ÚÎÁÞÅÎÉÅ ÐÒÉ ×ÓÔÁ×ËÅ
+ <H3><A name="item4.11.2">4.11.2</A>) Как мне получить значение при вставке
<SMALL>SERIAL</SMALL>?</H3>
- <P>ðÒÏÓÔÅÊÛÉÊ ÓÐÏÓÏÂ ÐÏÌÕÞÉÔØ ÎÁÚÎÁÞÅÎÎÏÅ ÚÎÁÞÅÎÉÅ <SMALL>SERIAL</SMALL>
- ÜÔÏ ÉÓÐÏÌØÚÏ×ÁÔØ <SMALL>RETURNING</SMALL>. éÓÐÏÌØÚÕÑ ÄÌÑ ÐÒÉÍÅÒÁ ÔÁÂÌÉÃÕ × <A
- href="#item4.11.1">4.11.1</A>, ÜÔÏ ÍÏÖÅÔ ×ÙÇÌÑÄÅÔØ ÔÁË:</P>
+ <P>Простейший способ получить назначенное значение <SMALL>SERIAL</SMALL>
+ это использовать <SMALL>RETURNING</SMALL>. Используя для примера таблицу в <A
+ href="#item4.11.1">4.11.1</A>, это может выглядеть так:</P>
<PRE>
INSERT INTO person (name) VALUES ('Blaise Pascal') RETURNING id;
</PRE>
- ÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ×ÙÚ×ÁÔØ <I>nextval()</I> É ÉÓÐÏÌØÚÏ×ÁÔØ ÜÔÏ ÚÎÁÞÅÎÉÅ ×
- <SMALL>INSERT</SMALL> ÉÌÉ ×ÙÚ×ÁÔØ <I>currval()</I> <I>ÐÏÓÌÅ</I>
+ Вы также можете вызвать <I>nextval()</I> и использовать это значение в
+ <SMALL>INSERT</SMALL> или вызвать <I>currval()</I> <I>после</I>
<SMALL>INSERT</SMALL>.
- <H3><A name="item4.11.3">4.11.3</A>) îÅ ÍÏÖÅÔ ÌÉ ÐÏÌÕÞÉÔØÓÑ ÔÁË, ÞÔÏ
- ÉÓÐÏÌØÚÏ×ÁÎÉÅ <I>currval()</I> É <I>nextval()</I> ÐÒÉ×ÅÄÅÔ Ë
- ÚÁÃÉËÌÉÒÏ×ÁÎÉÀ Ó ÄÒÕÇÉÍÉ ÐÏÌØÚÏ×ÁÔÅÌÑÍÉ?</H3>
+ <H3><A name="item4.11.3">4.11.3</A>) Не может ли получиться так, что
+ использование <I>currval()</I> и <I>nextval()</I> приведет к
+ зациклированию с другими пользователями?</H3>
- <P>îÅÔ. <i>currval()</i> ×ÏÚ×ÒÁÝÁÅÔ ÔÅËÕÝÅÅ ÚÎÁÞÅÎÉÅ, ÎÁÚÎÁÞÅÎÎÏÅ ×ÁÛÅÊ
- ÓÅÓÓÉÅÊ, Á ÎÅ ÄÒÕÇÉÍÉ ÓÅÓÓÉÑÍÉ.</P>
+ <P>Нет. <i>currval()</i> возвращает текущее значение, назначенное вашей
+ сессией, а не другими сессиями.</P>
- <H3><A name="item4.11.4">4.11.4</A>) ðÏÞÅÍÕ ÞÉÓÌÁ ÉÚ ÍÏÅÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ
- ÎÅ ÉÓÐÏÌØÚÕÀÔÓÑ ÓÎÏ×Á ÐÒÉ ÏÔÍÅÎÅ ÔÒÁÎÚÁËÃÉÉ? ðÏÞÅÍÕ ÓÏÚÄÁÀÔÓÑ ÒÁÚÒÙ×Ù
- ÐÒÉ ÎÕÍÅÒÁÃÉÉ × ËÏÌÏÎËÅ, ÇÄÅ Ñ ÉÓÐÏÌØÚÕÀ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ/SERIAL?</H3>
+ <H3><A name="item4.11.4">4.11.4</A>) Почему числа из моей последовательности
+ не используются снова при отмене транзакции? Почему создаются разрывы
+ пÑ\80и нÑ\83меÑ\80аÑ\86ии в колонке, где Ñ\8f иÑ\81полÑ\8cзÑ\83Ñ\8e поÑ\81ледоваÑ\82елÑ\8cноÑ\81Ñ\82Ñ\8c/SERIAL?</H3>
- <P>äÌÑ ÒÅÁÌÉÚÁÃÉÉ ËÏÎËÕÒÅÔÎÏÓÔÉ, ÚÎÁÞÅÎÉÑ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÅÊ, ÐÒÉ
- ÎÅÏÂÈÏÄÉÍÏÓÔÉ ×ÙÄÁÀÔÓÑ ×Ï ×ÒÅÍÑ ÚÁÐÕÓËÁ ÔÒÁÎÚÁËÃÉÊ É ÎÅ ÂÌÏËÉÒÕÀÔÓÑ
- ÄÏ ÐÏÌÎÏÇÏ ×ÙÐÏÌÎÅÎÉÑ ÔÒÁÎÚÁËÃÉÊ. üÔÏ ÍÏÖÅÔ ×ÙÚÙ×ÁÔØ ÒÁÚÒÙ×Ù ×
- ÎÕÍÅÒÁÃÉÉ ÐÒÉ ÏÔÍÅÎÅ ÔÒÁÎÚÁËÃÉÊ.</P>
+ <P>Для реализации конкуретности, значения последовательностей, при
+ необходимости выдаются во время запуска транзакций и не блокируются
+ до полного выполнения транзакций. Это может вызывать разрывы в
+ нумерации при отмене транзакций.</P>
- <H3><A name="item4.12">4.12</A>) þÔÏ ÔÁËÏÅ <SMALL>OID</SMALL>? þÔÏ ÔÁËÏÅ
+ <H3><A name="item4.12">4.12</A>) Что такое <SMALL>OID</SMALL>? Что такое
<SMALL>CTID</SMALL>?</H3>
- <P>åÓÌÉ ÔÁÂÌÉÃÁ ÓÏÚÄÁÎÁ Ó <SMALL>WITH OIDS</SMALL>, ÔÏ ËÁÖÄÁÑ ÓÔÒÏËÁ
- ÐÏÌÕÞÁÅÔ ÕÎÉËÁÌØÎÙÊ ÉÎÄÅÎÔÉÆÉËÁÔÏÒ <SMALL>OID</SMALL>.
- O<SMALL>ID</SMALL> - ÜÔÏ Á×ÔÏÍÁÔÉÞÅÓËÉ ÎÁÚÎÁÞÁÅÍÏÅ ÕÎÉËÁÌØÎÏÅ 4-È
- ÂÁÊÔÏ×ÏÅ ÃÅÌÏÅ ÞÉÓÌÏ, ËÏÔÏÒÏÅ ÕÎÉËÁÌØÎÏ ÄÌÑ ×ÓÅÊ ÕÓÔÁÎÏ×ÌÅÎÎÏÊ óõâä.
- ïÄÎÁËÏ, ÐÏÓÌÅ ÔÏÇÏ ËÁË ÅÇÏ ÚÎÁÞÅÎÉÅ ÐÒÅ×ÙÓÉÔ 4 ÍÉÌÌÉÁÒÄÁ, ÚÎÁÞÅÎÉÑ
- O<SMALL>ID</SMALL> ÎÁÞÉÎÁÀÔ ÄÕÂÌÉÒÏ×ÁÔØÓÑ. PostgreSQL ÉÓÐÏÌØÚÕÅÔ
- <SMALL>OID</SMALL> ÄÌÑ Ó×ÑÚÙ×ÁÎÉÑ Ó×ÏÉÈ ×ÎÕÔÒÅÎÎÉÈ ÔÁÂÌÉÃ.</P>
-
- <P>äÌÑ ÕÎÉËÁÌØÎÏÇÏ ÚÎÁÞÅÎÉÑ × ÓÔÒÏËÁÈ ÔÁÂÌÉÃÙ ÐÏÌØÚÏ×ÁÔÅÌÑ, ÌÕÞÛÉÍ
- ÓÐÏÓÏÂÏÍ Ñ×ÌÑÅÔÓÑ ÉÓÐÏÌØÚÏ×ÁÎÉÅ <SMALL>SERIAL</SMALL> ×ÍÅÓÔÏ
- O<SMALL>ID</SMALL>, ÐÏÔÏÍÕ ÞÔÏ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ <SMALL>SERIAL</SMALL>
- ÕÎÉËÁÌØÎÙ ÔÏÌØËÏ ×ÎÕÔÒÉ ÔÁÂÌÉÃÙ É ÔÁËÉÍ ÏÂÒÁÚÏÍ ÍÅÎØÛÅ ÐÏÄ×ÅÒÖÅÎÙ
- ÐÅÒÅÐÏÌÎÅÎÉÀ. äÌÑ ÈÒÁÎÅÎÉÑ ÚÎÁÞÅÎÉÊ 8-ÍÉ ÂÁÊÔÎÏÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ
- ÄÏÓÔÕÐÅÎ ÔÉÐ <SMALL>SERIAL8</SMALL>.
-
- <P>C<SMALL>TID</SMALL> ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÉÄÅÎÔÉÆÉËÁÃÉÉ ÓÐÅÃÉÁÌØÎÙÈ
- ÆÉÚÉÞÅÓËÉÈ ÚÁÐÉÓÅÊ Ó ÂÌÏÞÎÙÍÉ É offset ÚÎÁÞÅÎÉÑÍÉ. C<SMALL>TID</SMALL>
- ÉÚÍÅÎÑÅÔÓÑ ÐÏÓÌÅ ÔÏÇÏ ËÁË ÓÔÒÏËÉ × ÔÁÂÌÉÃÅ ÂÙÌÉ ÉÚÍÅÎÅÎÙ ÉÌÉ ÐÅÒÅÇÒÕÖÅÎÙ.
- <P>T<SMALL>ID</SMALL> ÉÓÐÏÌØÚÕÅÔÓÑ ÉÎÄÅËÓÎÙÍÉ ÚÁÐÉÓÑÍÉ × ËÁÞÅÓÔ×Å
- ÕËÁÚÁÔÅÌÑ ÎÁ ÆÉÚÉÞÅÓËÉÅ ÚÁÐÉÓÉ.</P>
-
-
- <H3><A name="item4.13">4.13</A>) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ <I>"ERROR: Memory
+ <P>Если таблица создана с <SMALL>WITH OIDS</SMALL>, то каждая строка
+ полÑ\83Ñ\87аеÑ\82 Ñ\83никалÑ\8cнÑ\8bй инденÑ\82иÑ\84икаÑ\82оÑ\80 <SMALL>OID</SMALL>.
+ O<SMALL>ID</SMALL> - это автоматически назначаемое уникальное 4-х
+ байтовое целое число, которое уникально для всей установленной СУБД.
+ Однако, после того как его значение превысит 4 миллиарда, значения
+ O<SMALL>ID</SMALL> начинают дублироваться. PostgreSQL использует
+ <SMALL>OID</SMALL> для связывания своих внутренних таблиц.</P>
+
+ <P>Для уникального значения в строках таблицы пользователя, лучшим
+ способом является использование <SMALL>SERIAL</SMALL> вместо
+ O<SMALL>ID</SMALL>, поÑ\82омÑ\83 Ñ\87Ñ\82о поÑ\81ледоваÑ\82елÑ\8cноÑ\81Ñ\82и <SMALL>SERIAL</SMALL>
+ уникальны только внутри таблицы и таким образом меньше подвержены
+ пеÑ\80еполнениÑ\8e. Ð\94лÑ\8f Ñ\85Ñ\80анениÑ\8f знаÑ\87ений 8-ми байÑ\82ной поÑ\81ледоваÑ\82елÑ\8cноÑ\81Ñ\82и
+ доступен тип <SMALL>SERIAL8</SMALL>.
+
+ <P>C<SMALL>TID</SMALL> используется для идентификации специальных
+ физических записей с блочными и offset значениями. C<SMALL>TID</SMALL>
+ изменяется после того как строки в таблице были изменены или перегружены.
+ <P>T<SMALL>ID</SMALL> используется индексными записями в качестве
+ указателя на физические записи.</P>
+
+
+ <H3><A name="item4.13">4.13</A>) Почему я получаю ошибку <I>"ERROR: Memory
exhausted in AllocSetAlloc()"</I>?</H3>
- <P>ðÒÅÄÐÏÌÏÖÉÔÅÌØÎÏ Õ ×ÁÓ ÚÁËÏÎÞÉÌÁÓØ ×ÉÒÔÕÁÌØÎÁÑ ÐÁÍÑÔØ
- ÉÌÉ ÞÔÏ ×ÁÛÅ ÑÄÒÏ ÉÍÅÅÔ ÍÁÌÅÎØËÉÊ ÌÉÍÉÔ ÎÁ ÏÐÒÅÄÅÌÅÎÎÙÅ ÒÅÓÕÒÓÙ.
- ðÏÐÙÔÁÊÔÅÓØ ÐÅÒÅÄ ÚÁÐÕÓËÏÍ ÓÅÒ×ÅÒÁ âä ×ÙÐÏÌÎÉÔØ ÓÌÅÄÕÀÝÉÅ
- ËÏÍÁÎÄÙ:</P>
+ <P>Предположительно у вас закончилась виртуальная память
+ или что ваше ядро имеет маленький лимит на определенные ресурсы.
+ Попытайтесь перед запуском сервера БД выполнить следующие
+ команды:</P>
<PRE>
ulimit -d 262144
limit datasize 256m
</PRE>
- ÷ ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ËÏÍÁÎÄÎÏÇÏ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ shell, ÔÏÌØËÏ ÏÄÎÁ ÉÚ ÄÁÎÎÙÈ
- ËÏÍÁÎÄ ×ÙÐÏÌÎÉÔÓÑ ÕÓÐÅÛÎÏ, ÎÏ ÏÎÁ ÐÏÚ×ÏÌÉÔ ×ÁÍ ÕÓÔÁÎÏ×ÉÔØ ÂÏÌØÛÉÊ
- ÓÅÇÍÅÎÔ ÄÁÎÎÙÈ ÐÒÏÃÅÓÓÁ É ×ÏÚÍÏÖÎÏ ÒÅÛÉÔ ÐÒÏÂÌÅÍÕ. üÔÁ ËÏÍÁÎÄÁ
- ÉÚÍÅÎÑÅÔ ÐÁÒÁÍÅÔÒÙ ÔÅËÕÝÅÇÏ ÐÒÏÃÅÓÓÁ É ×ÓÅÈ ÅÇÏ ÐÏÔÏÍËÏ×, ÓÏÚÄÁÎÎÙÈ
- ÐÏÓÌŠţ ÚÁÐÕÓËÁ. åÓÌÉ Õ ×ÁÓ ×ÏÚÎÉËÌÁ ÐÒÏÂÌÅÍÁ Ó <SMALL>SQL</SMALL>
- ËÌÉÅÎÔÏÍ, ÐÏÔÏÍÕ ÞÔÏ backend ×ÏÚ×ÒÁÝÁÅÔ ÓÌÉÛËÏÍ ÂÏÌØÛÏÊ ÏÂßÅÍ ÄÁÎÎÙÈ,
- ÐÏÐÙÔÁÊÔÅÓØ ×ÙÐÏÌÎÉÔØ ÜÔÕ ËÏÍÁÎÄÕ ÐÅÒÅÄ ÚÁÐÕÓËÏÍ ËÌÉÅÎÔÁ.
+ В зависимости от командного интерпретатора shell, только одна из данных
+ команд выполнится успешно, но она позволит вам установить больший
+ сегмент данных процесса и возможно решит проблему. Эта команда
+ изменяет параметры текущего процесса и всех его потомков, созданных
+ поÑ\81ле еÑ\91 запÑ\83Ñ\81ка. Ð\95Ñ\81ли Ñ\83 ваÑ\81 возникла пÑ\80облема Ñ\81 <SMALL>SQL</SMALL>
+ клиентом, потому что backend возвращает слишком большой объем данных,
+ попÑ\8bÑ\82айÑ\82еÑ\81Ñ\8c вÑ\8bполниÑ\82Ñ\8c Ñ\8dÑ\82Ñ\83 командÑ\83 пеÑ\80ед запÑ\83Ñ\81ком клиенÑ\82а.
- <H3><A name="item4.14">4.14</A>) ëÁË ÍÎÅ ÕÚÎÁÔØ, ËÁËÁÑ ×ÅÒÓÉÑ PostgreSQL
- ÚÁÐÕÝÅÎÁ?</H3>
+ <H3><A name="item4.14">4.14</A>) Как мне узнать, какая версия PostgreSQL
+ запущена?</H3>
- <P>éÚ <I>psql</I>, ÎÁÂÅÒÉÔÅ <CODE>SELECT version();</CODE></P>
+ <P>Из <I>psql</I>, наберите <CODE>SELECT version();</CODE></P>
- <H3><A name="item4.15">4.15</A>) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ËÏÌÏÎËÕ ËÏÔÏÒÁÑ ÐÏ ÕÍÏÌÞÁÎÉÀ
- ÂÕÄÅÔ ÓÏÄÅÒÖÁÔØ ÔÅËÕÝÅÅ ×ÒÅÍÑ?</H3>
+ <H3><A name="item4.15">4.15</A>) Как мне создать колонку которая по умолчанию
+ будет содержать текущее время?</H3>
- <P>éÓÐÏÌØÚÕÊÔÅ <I>CURRENT_TIMESTAMP</I>:</P>
+ <P>Используйте <I>CURRENT_TIMESTAMP</I>:</P>
<PRE>
CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
</PRE>
- <H3><A name="item4.16">4.16</A>) ëÁË ÍÎÅ ×ÙÐÏÌÎÉÔØ ×ÎÅÛÎÅÅ Ó×ÑÚÙ×ÁÎÉÅ?</H3>
+ <H3><A name="item4.16">4.16</A>) Как мне выполнить внешнее связывание?</H3>
- <P>PostgreSQL ÐÏÄÄÅÒÖÉ×ÁÅÔ ×ÎÅÛÎÅÅ Ó×ÑÚÙ×ÁÎÉÅ,
- ÉÓÐÏÌØÚÕÑ ÓÔÁÎÄÁÒÔÎÙÊ ÓÉÎÔÁËÓÉÓ SQL. ÷ÏÔ Ä×Á ÐÒÉÍÅÒÁ:</P>
+ <P>PostgreSQL поддеÑ\80живаеÑ\82 внеÑ\88нее Ñ\81вÑ\8fзÑ\8bвание,
+ используя стандартный синтаксис SQL. Вот два примера:</P>
<PRE>
SELECT *
FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
</PRE>
- ÉÌÉ
+ или
<PRE>
SELECT *
FROM t1 LEFT OUTER JOIN t2 USING (col);
</PRE>
- <P>üÔÏ ÉÄÅÎÔÉÞÎÙÅ ÚÁÐÒÏÓÙ Ó×ÑÚÙ×ÁÎÉÑ t1.col É t2.col, ÔÁËÖÅ ×ÏÚ×ÒÁÝÁÀÔ
- ÌÀÂÙÅ ÎÅÓ×ÑÚÁÎÎÙÅ ÓÔÒÏËÉ × t1 (ËÏÔÏÒÙÅ ÎÅ ÓÏ×ÐÁÄÁÀÔ Ó t2).
- <SMALL>RIGHT</SMALL> Ó×ÑÚÙ×ÁÎÉÅ ÄÏÌÖÎÏ ÄÏÂÁ×ÉÔØ ÎÅÓ×ÑÚÁÎÎÙÅ ÓÔÒÏËÉ
- t2. <SMALL>FULL</SMALL> Ó×ÑÚÙ×ÁÎÉÅ ÄÏÌÖÎÏ ×ÏÚ×ÒÁÔÉÔØ ÓÏ×ÐÁ×ÛÉÅ
- ÓÔÒÏËÉ ÐÌÀÓ ×ÓÅ ÎÅÓ×ÑÚÁÎÎÙÅ ÓÔÒÏËÉ ÉÚ t1 É t2. óÌÏ×Ï <SMALL>OUTER</SMALL>
- Ñ×ÌÑÅÔÓÑ ÎÅÏÂÑÚÁÔÅÌØÎÙÍ É ÎÁÚÎÁÞÁÅÔÓÑ × <SMALL>LEFT</SMALL>,
- <SMALL>RIGHT</SMALL> É <SMALL>FULL</SMALL> Ó×ÑÚÙ×ÁÎÉÑÈ. ïÂÙÞÎÙÅ
- Ó×ÑÚÙ×ÁÎÉÑ ÎÁÚÙ×ÁÀÔÓÑ <SMALL>INNER</SMALL> Ó×ÑÚÙ×ÁÎÉÑ.</P>
+ <P>Это идентичные запросы связывания t1.col и t2.col, также возвращают
+ любые несвязанные строки в t1 (которые не совпадают с t2).
+ <SMALL>RIGHT</SMALL> связывание должно добавить несвязанные строки
+ t2. <SMALL>FULL</SMALL> связывание должно возвратить совпавшие
+ строки плюс все несвязанные строки из t1 и t2. Слово <SMALL>OUTER</SMALL>
+ Ñ\8fвлÑ\8fеÑ\82Ñ\81Ñ\8f необÑ\8fзаÑ\82елÑ\8cнÑ\8bм и назнаÑ\87аеÑ\82Ñ\81Ñ\8f в <SMALL>LEFT</SMALL>,
+ <SMALL>RIGHT</SMALL> и <SMALL>FULL</SMALL> связываниях. Обычные
+ связывания называются <SMALL>INNER</SMALL> связывания.</P>
- <H3><A name="item4.17">4.17</A>) ëÁË ×ÙÐÏÌÎÑÔØ ÚÁÐÒÏÓÙ, ÉÓÐÏÌØÚÕÀÝÉÅ ÎÅÓËÏÌØËÏ
- ÂÁÚ ÄÁÎÎÙÈ?</H3>
+ <H3><A name="item4.17">4.17</A>) Как выполнять запросы, использующие несколько
+ баз данных?</H3>
- <P>îÅ ÓÕÝÅÓÔ×ÕÅÔ ÓÐÏÓÏÂÁ ÓÏÚÄÁÔØ ÚÁÐÒÏÓ Ë ÂÁÚÁÍ ÄÁÎÎÙÈ ÏÔÌÉÞÎÙÍ ÏÔ ÔÅËÕÝÅÊ.
- ðÏÓËÏÌØËÕ PostgreSQL ÚÁÇÒÕÖÁÅÔ ÓÉÓÔÅÍÎÙÅ ËÁÔÁÌÏÇÉ ÓÐÅÃÉÆÉÞÎÙÅ ÄÌÑ ÂÁÚÙ
- ÄÁÎÎÙÈ, ÎÅÐÏÎÑÔÎÏ ÄÁÖÅ, ËÁË ÄÏÌÖÅÎ ÓÅÂÑ ×ÅÓÔÉ ÔÁËÏÊ ÍÅÖÂÁÚÏ×ÙÊ ÚÁÐÒÏÓ.</P>
+ <P>Не существует способа создать запрос к базам данных отличным от текущей.
+ Поскольку PostgreSQL загружает системные каталоги специфичные для базы
+ данных, непонятно даже, как должен себя вести такой межбазовый запрос.</P>
- <P><I>contrib/dblink</I> ÐÏÚ×ÏÌÑÅÔ ÚÁÐÒÏÓÙ ÍÅÖÄÕ ÂÁÚÁÍÉ, ÉÓÐÏÌØÚÕÑ
- ×ÙÚÏ×Ù ÆÕÎËÃÉÊ. òÁÚÕÍÅÅÔÓÑ, ËÌÉÅÎÔ ÍÏÖÅÔ ÏÄÎÏ×ÒÅÍÅÎÎÏ ÔÁËÖÅ ÕÓÔÁÎÁ×ÌÉ×ÁÔØ
- ÓÏÅÄÉÅÎÅÎÉÑ Ó ÒÁÚÌÉÞÎÙÍÉ ÂÁÚÁÍÉ ÄÁÎÎÙÈ É ÔÁËÉÈ ÏÂÒÁÚÏÍ ÏÂßÅÄÉÎÑÔØ
- ÉÎÆÏÒÍÁÃÉÀ ÉÚ ÎÉÈ.</P>
+ <P><I>contrib/dblink</I> позволÑ\8fеÑ\82 запÑ\80оÑ\81Ñ\8b междÑ\83 базами, иÑ\81полÑ\8cзÑ\83Ñ\8f
+ вызовы функций. Разумеется, клиент может одновременно также устанавливать
+ соедиенения с различными базами данных и таких образом объединять
+ информацию из них.</P>
- <H3><A name="item4.18">4.18</A>) ëÁË ÍÎÅ ×ÅÒÎÕÔØ ÉÚ ÆÕÎËÃÉÉ ÎÅÓËÏÌØËÏ ÓÔÒÏË ÔÁÂÌÉÃÙ?</H3>
+ <H3><A name="item4.18">4.18</A>) Как мне вернуть из функции несколько строк таблицы?</H3>
- <P>÷Ù ÍÏÖÅÔÅ ÌÅÇËÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÆÕÎËÃÉÉ, ×ÏÚ×ÒÁÝÁÀÝÉÅ ÓÐÉÓÏË,
+ <P>Вы можете легко использовать функции, возвращающие список,
<a href="http://wiki.postgresql.org/wiki/Return_more_than_one_row_of_data_from_PL/pgSQL_functions">
http://wiki.postgresql.org/wiki/Return_more_than_one_row_of_data_from_PL/pgSQL_functions</a>.</P>
- <H3><A name="item4.19">4.19</A>) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ "relation with OID ####
- ÎÅ ÓÕÝÅÓÔ×ÕÅÔ", ËÏÇÄÁ ÏÂÒÁÝÁÀÔÓØ Ë ×ÒÅÍÅÎÎÙÍ ÔÁÂÌÉÃÁÍ × ÆÕÎËÃÉÑÈ PL/PgSQL?</H3>
+ <H3><A name="item4.19">4.19</A>) Почему я получаю ошибку "relation with OID ####
+ не существует", когда обращаютсь к временным таблицам в функциях PL/PgSQL?</H3>
- <P>÷ PostgreSQL ÄÏ ×ÅÒÓÉÉ 8.3, PL/PgSQL ËÜÛÉÒÕÅÔ ÓÃÅÎÁÒÉÉ ÆÕÎËÃÉÉ É ÏÄÉÎ ÉÚ
- ÎÅÇÁÔÉ×ÎÙÈ ÜÆÆÅËÔÏ× ÜÔÏÇÏ ÓÏÓÔÏÉÔ × ÔÏÍ, ÞÔÏ ÅÓÌÉ ÆÕÎËÃÉÑ PL/PgSQL ÏÂÒÁÝÁÅÔÓÑ
- Ë ×ÒÅÍÅÎÎÏÊ ÔÁÂÌÉÃÅ É ÜÔÁ ÔÁÂÌÉÃÁ ÐÏÚÄÎÅÅ ÕÄÁÌÑÅÔÓÑ É ÐÅÒÅÓÏÚÄÁÅÔÓÑ, Á ÆÕÎËÃÉÑ
- ÚÁÔÅÍ ×ÙÚÙ×ÁÅÔÓÑ ÓÎÏ×Á, ÔÏ ÅÅ ×ÙÚÏ× ÐÒÉ×ÅÄÅÔ Ë ÏÛÉÂËÅ, ÐÏÔÏÍÕ ÞÔÏ ÓËÜÛÉÒÏ×ÁÎÎÏÅ
- ÓÏÄÅÒÖÉÍÏÅ ÆÕÎËÃÉÉ ÓÏÄÅÒÖÉÔ ÕËÁÚÁÔÅÌØ ÎÁ ÓÔÁÒÕÀ ×ÒÅÍÅÎÎÕÀ ÔÁÂÌÉÃÕ. þÔÏÂÙ ÒÅÛÉÔØ
- ÜÔÕ ÐÒÏÂÌÅÍÕ, ÉÓÐÏÌØÚÕÊÔÅ <SMALL>EXECUTE</SMALL> ÄÌÑ ÄÏÓÔÕÐÁ Ë ×ÒÅÍÅÎÎÙÍ
- ÔÁÂÌÉÃÁÍ × PL/PgSQL. éÓÐÏÌØÚÏ×ÁÎÉÅ ÜÔÏÇÏ ÏÐÅÒÁÔÏÒÁ ÚÁÓÔÁ×ÉÔ ÚÁÐÒÏÓ
- ÐÅÒÅÇÅÎÅÒÉÒÏ×ÁÔØÓÑ ËÁÖÄÙÊ ÒÁÚ.</P>
-
- <P>÷ PostgreSQL 8.3 É ÐÏÚÄÎÅÅ, ÜÔÏÊ ÐÒÏÂÌÅÍÙ ÎÅÔ.</p>
+ <P>В PostgreSQL до версии 8.3, PL/PgSQL кэширует сценарии функции и один из
+ негативных эффектов этого состоит в том, что если функция PL/PgSQL обращается
+ к временной таблице и эта таблица позднее удаляется и пересоздается, а функция
+ затем вызывается снова, то ее вызов приведет к ошибке, потому что скэшированное
+ содержимое функции содержит указатель на старую временную таблицу. Чтобы решить
+ эту проблему, используйте <SMALL>EXECUTE</SMALL> для доступа к временным
+ таблицам в PL/PgSQL. Использование этого оператора заставит запрос
+ пеÑ\80егенеÑ\80иÑ\80оваÑ\82Ñ\8cÑ\81Ñ\8f каждÑ\8bй Ñ\80аз.</P>
+
+ <P>В PostgreSQL 8.3 и позднее, этой проблемы нет.</p>
- <H3><A name="item4.20">4.20</a>) ëÁËÉÅ ÅÓÔØ ÒÅÛÅÎÉÑ ÄÌÑ ÒÅÐÌÉËÁÃÉÉ?</H3>
+ <H3><A name="item4.20">4.20</a>) Какие есть решения для репликации?</H3>
- <P>èÏÔÑ "ÒÅÐÌÉËÁÃÉÑ" -- ÜÔÏ ÅÄÉÎÙÊ ÔÅÒÍÉÎ, ÅÓÔØ ÎÅÓËÏÌØËÏ ÒÁÚÎÙÈ ÔÅÈÎÏÌÏÇÉÊ
- ÄÌÑ ×ÙÐÏÌÎÅÎÉÑ ÒÅÐÌÉËÁÃÉÊ Ó ÒÁÚÎÙÍÉ ÏÓÏÂÅÎÎÏÓÔÑÍÉ ÄÌÑ ËÁÖÄÏÊ.</P>
+ <P>Хотя "репликация" -- это единый термин, есть несколько разных технологий
+ для выполнения репликаций с разными особенностями для каждой.</P>
- <P>òÅÐÌÉËÁÃÉÑ Master/slave ÐÏÚ×ÏÌÑÅÔ ÉÍÅÔØ ÏÄÉÎ ÇÌÁ×ÎÙÊ (master) ÓÅÒ×ÅÒ
- ÄÌÑ ×ÙÐÏÌÎÅÎÉÑ ÚÁÐÒÏÓÏ× ÞÔÅÎÉÑ/ÚÁÐÉÓÉ, × ÔÏ ×ÒÅÍÑ ËÁË ÐÏÄÞÉΣÎÎÙÅ
- (slave) ÓÅÒ×ÅÒÁ ÍÏÇÕÔ ÐÒÏÉÚ×ÏÄÉÔØ ÔÏÌØËÏ ÚÁÐÒÏÓÙ
- ÞÔÅÎÉÑ/<SMALL>SELECT</SMALL>. îÁÉÂÏÌÅÅ ÐÏÐÕÌÑÒÎÙÍ ÒÅÛÅÎÉÅÍ ÄÌÑ ÒÅÐÌÉËÁÃÉÉ
- master-slave × PostgreSQL Ñ×ÌÑÅÔÓÑ
+ <P>Репликация Master/slave позволяет иметь один главный (master) сервер
+ для выполнения запросов чтения/записи, в то время как подчинённые
+ (slave) сервера могут производить только запросы
+ чтения/<SMALL>SELECT</SMALL>. Наиболее популярным решением для репликации
+ master-slave в PostgreSQL является
<A href="http://main.slony.info/">
Slony-I</A>.</P>
- <P>òÅÐÌÉËÁÃÉÑ Multi-master ÐÏÚ×ÏÌÑÅÔ ×ÙÐÏÌÎÑÔØ ÚÁÐÒÏÓÙ ÞÔÅÎÉÑ/ÚÁÐÉÓÉ
- ÎÁ ÎÅÓËÏÌØËÉÈ, ÒÅÐÌÉÃÉÒÕÅÍÙÈ ÄÒÕÇ Ó ÄÒÕÇÏÍ ËÏÍÐØÀÅÔÒÁÈ. üÔÁ ÏÓÏÂÅÎÎÏÓÔØ
- ÔÁËÖÅ ÐÒÉ×ÏÄÉÔ Ë ÐÏÔÅÒÅ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ, ÐÏÔÏÍÕ ÞÔÏ ÎÅÏÂÈÏÄÉÍÁ
- ÓÉÎÈÒÏÎÉÚÁÃÉÑ ÉÚÍÅÎÅÎÉÊ ÍÅÖÄÕ ÎÅÓËÏÌØËÉÍÉ ÓÅÒ×ÅÒÁÍÉ. îÁÉÂÏÌÅÅ
- ÐÏÐÕÌÑÒÎÙÍ ÒÅÛÅÎÉÅÍ ÄÌÑ ÔÁËÏÊ ÒÅÐÌÉËÁÃÉÉ × PostgreSQL Ñ×ÌÑÅÔÓÑ
+ <P>Репликация Multi-master позволяет выполнять запросы чтения/записи
+ на нескольких, реплицируемых друг с другом компьюетрах. Эта особенность
+ также приводит к потере производительности, потому что необходима
+ синхронизация изменений между несколькими серверами. Наиболее
+ попÑ\83лÑ\8fÑ\80нÑ\8bм Ñ\80еÑ\88ением длÑ\8f Ñ\82акой Ñ\80епликаÑ\86ии в PostgreSQL Ñ\8fвлÑ\8fеÑ\82Ñ\81Ñ\8f
<A href="http://pgfoundry.org/projects/pgcluster/">PGcluster</A>.
- <H3><A name="item4.21">4.21</A>) ðÏÞÅÍÕ ÉÍÅÎÁ ÔÁÂÌÉÃÙ É ËÏÌÏÎÏË ÎÅ
- ÒÁÓÐÏÚÎÁÀÔÓÑ × × ÍÏ£Í ÚÁÐÒÏÓÅ? ðÏÞÅÍÕ ÎÅ ÓÏÈÒÁÎÑÀÔÓÑ ÚÁÇÌÁ×ÎÙÅ ÂÕË×Ù?</H3>
+ <H3><A name="item4.21">4.21</A>) Почему имена таблицы и колонок не
+ распознаются в в моём запросе? Почему не сохраняются заглавные буквы?</H3>
- <P>îÁÉÂÏÌÅÅ ÞÁÓÔÏ ÉÍÅÎÁ ÎÅÒÁÓÐÏÚÎÁÀÔÓÑ ÉÚ-ÚÁ ÉÓÐÏÌØÚÏ×ÁÎÉÑ Ä×ÏÊÎÙÈ ËÁ×ÙÞÅË ×
- ÉÍÅÎÉ ÔÁÂÌÉÃÙ ÉÌÉ ËÏÌÏÎËÉ ÐÒÉ ÓÏÚÄÁÎÉÉ ÔÁÂÌÉÃÙ. ðÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ Ä×ÏÊÎÙÈ
- ËÁ×ÙÞÅË, ÉÍÑ ÔÁÂÌÉÃÙ É ËÏÌÏÎËÉ (ËÏÔÏÒÙÅ ÎÁÚÙ×ÁÀÔ ÉÄÅÎÔÉÆÉËÁÔÏÒÁÍÉ)
- ÓÏÈÒÁÎÑÀÔÓÑ × <A href="http://www.postgresql.org/docs/current/static/sql-syntax.html#SQL-SYNTAX-IDENTIFIERS">
- ÒÅÇÉÓÔÒÏ-ÚÁ×ÉÓÉÍÏÍ ×ÉÄÅ</A>; ÜÔÏ ÏÚÎÁÞÁÅÔ, ÞÔÏ ×Ù ÄÏÌÖÎÙ ÉÓÐÏÌØÚÏ×ÁÔØ
- Ä×ÏÊÎÙÅ ËÁ×ÙÞËÉ, ËÏÇÄÁ ÕËÁÚÙ×ÁÅÔÅ ÜÔÉ ÉÍÅÎÁ × ÚÁÐÒÏÓÅ. îÅËÏÔÏÒÙÅ
- ÉÎÔÅÒÆÅÊÓÙ, ÔÁËÉÅ ËÁË pgAdmin, ×Ï ×ÒÅÍÑ ÓÏÚÄÁÎÉÑ ÔÁÂÌÉÃÙ ÄÏÂÁ×ÌÑÀÔ
- Ä×ÏÊÎÙÅ ËÁ×ÙÞËÉ Á×ÔÏÍÁÔÉÞÅÓËÉ. ôÁËÉÍ ÏÂÒÁÚÏÍ, ÞÔÏÂÙ ÉÄÅÎÔÉÆÉËÁÔÏÒÙ
- ÒÁÓÐÏÚÎÁ×ÁÌÉÓØ ×Ù ÄÏÌÖÎÙ ÓÌÅÄÏ×ÁÔØ ÏÄÎÏÍÕ ÉÚ ÓÌÅÄÕÀÝÉÈ ÐÒÁ×ÉÌ:
+ <P>Наиболее часто имена нераспознаются из-за использования двойных кавычек в
+ имени таблицы или колонки при создании таблицы. При использовании двойных
+ кавычек, имя таблицы и колонки (которые называют идентификаторами)
+ сохраняются в <A href="http://www.postgresql.org/docs/current/static/sql-syntax.html#SQL-SYNTAX-IDENTIFIERS">
+ регистро-зависимом виде</A>; это означает, что вы должны использовать
+ двойные кавычки, когда указываете эти имена в запросе. Некоторые
+ интерфейсы, такие как pgAdmin, во время создания таблицы добавляют
+ двойные кавычки автоматически. Таким образом, чтобы идентификаторы
+ распознавались вы должны следовать одному из следующих правил:
<UL>
- <LI>éÚÂÅÇÁÔØ ÉÓÐÏÌØÚÏ×ÁÎÉÑ Ä×ÏÊÎÙÈ ËÁ×ÙÞÅË ÐÒÉ ÓÏÚÄÁÎÉÉ ÔÁÂÌÉÃ</LI>
- <LI>éÓÐÏÌØÚÏ×ÁÔØ × ÉÄÅÎÔÉÆÉËÁÔÏÒÁÈ ÔÏÌØËÏ ÓÉÍ×ÏÌÙ ÎÉÖÎÅÇÏ ÒÅÇÉÓÔÒÁ</LI>
- <LI>éÓÐÏÌØÚÏ×ÁÔØ Ä×ÏÊÎÙÅ ËÁ×ÙÞËÉ ÄÌÑ ÉÄÅÎÔÉÆÉËÁÔÏÒÏ× × ÚÁÐÒÏÓÁÈ</LI>
+ <LI>Избегать использования двойных кавычек при создании таблиц</LI>
+ <LI>Использовать в идентификаторах только символы нижнего регистра</LI>
+ <LI>Использовать двойные кавычки для идентификаторов в запросах</LI>
</UL>
</BODY>