From 3a58d2e172d45a681b4a936a97786e46a164dff3 Mon Sep 17 00:00:00 2001 From: Magnus Hagander Date: Mon, 15 Sep 2008 08:40:46 +0000 Subject: [PATCH] Convert Russian FAQ to UTF8, to make it render properly on the website. --- doc/src/FAQ/FAQ_russian.html | 1512 +++++++++++++++++----------------- 1 file changed, 756 insertions(+), 756 deletions(-) diff --git a/doc/src/FAQ/FAQ_russian.html b/doc/src/FAQ/FAQ_russian.html index 7c9db560d5..e92ce71c06 100644 --- a/doc/src/FAQ/FAQ_russian.html +++ b/doc/src/FAQ/FAQ_russian.html @@ -5,378 +5,378 @@ - + PostgreSQL FAQ -

ïÔ×ÅÔÙ ÎÁ ÞÁÓÔÏ ÚÁÄÁ×ÁÅÍÙÅ ×ÏÐÒÏÓÙ ÐÏ PostgreSQL

+

Ответы на часто задаваемые вопросы по PostgreSQL

-

äÁÔÁ ÐÏÓÌÅÄÎÅÇÏ ÏÂÎÏ×ÌÅÎÉÑ: óÒÅÄÁ 25 ÉÀÎÑ 23:54:14 EDT 2008

+

Дата последнего обновления: Среда 25 июня 23:54:14 EDT 2008

-

áÎÇÌÉÊÓËÉÊ ×ÁÒÉÁÎÔ ÓÏÐÒÏ×ÏÖÄÁÅÔ: âÒÀÓ íÏÍØÑÎ (Bruce Momjian) (Английский вариант сопровождает: Брюс Момьян (Bruce Momjian) (bruce@monjian.us)

-

ðÅÒÅ×£Ì ÎÁ ÒÕÓÓËÉÊ: ÷ÉËÔÏÒ ÷ÉÓÌÏÂÏËÏ× (Перевёл на русский: Виктор Вислобоков (admin@postgresql.ru.net)

-

óÁÍÕÀ Ó×ÅÖÕÀ ÁÎÇÌÉÊÓËÕÀ ×ÅÒÓÉÀ ÄÏËÕÍÅÎÔÁ ÍÏÖÎÏ ÎÁÊÔÉ ÎÁ +

Самую свежую английскую версию документа можно найти на http://www.postgresql.org/files/documentation/faqs/FAQ.html.

-

óÁÍÕÀ Ó×ÅÖÕÀ ÒÕÓÓËÕÀ ×ÅÒÓÉÀ ÄÏËÕÍÅÎÔÁ ÍÏÖÎÏ ÎÁÊÔÉ ÎÁ +

Самую свежую русскую версию документа можно найти на http://postgresql.ru.net/docs/FAQ_russian.html.

-

ïÔ×ÅÔÙ ÎÁ ×ÏÐÒÏÓÙ ÓÐÅÃÉÆÉÞÎÙÅ ÄÌÑ ËÏÎËÒÅÔÎÙÈ ÐÌÁÔÆÏÒÍ ÍÏÖÎÏ ÎÁÊÔÉ ÎÁ +

Ответы на вопросы специфичные для конкретных платформ можно найти на http://www.postgresql.org/docs/faq/.


-

ïÂÝÉÅ ×ÏÐÒÏÓÙ

- 1.1) þÔÏ ÔÁËÏÅ PostgreSQL? ëÁË ÐÒÏÉÚÎÏÓÉÔÓÑ ÜÔÏ ÎÁÚ×ÁÎÉÅ? þÔÏ ÔÁËÏÅ Postgres?
- 1.2) ëÔÏ ÕÐÒÁ×ÌÑÅÔ PostgreSQL?
- 1.3) ëÁËÏ×Ù Á×ÔÏÒÓËÉÅ ÐÒÁ×Á ÎÁ PostgreSQL?
- 1.4) îÁ ËÁËÉÈ ÐÌÁÔÆÏÒÍÁÈ ÒÁÂÏÔÁÅÔ PostgreSQL?
- 1.5) çÄÅ ÍÏÖÎÏ ×ÚÑÔØ PostgreSQL?
- 1.6) ëÁËÁÑ ×ÅÒÓÉÑ ÎÁÉÂÏÌÅÅ Ó×ÅÖÁÑ?
- 1.7) çÄÅ ÐÏÌÕÞÉÔØ ÐÏÄÄÅÒÖËÕ?
- 1.8) ëÁË ÍÎÅ ÓÏÏÂÝÉÔØ Ï ÏÛÉÂËÅ?
- 1.9) ëÁË ÎÁÊÔÉ ÉÎÆÏÒÍÁÃÉÀ Ï ÉÚ×ÅÓÔÎÙÈ ÏÛÉÂËÁÈ ÉÌÉ ÏÔÓÕÔÓÔ×ÕÀÝÉÈ - ×ÏÚÍÏÖÎÏÓÔÑÈ?
- 1.10) ëÁËÁÑ ÄÏËÕÍÅÎÔÁÃÉÑ ÉÍÅÅÔÓÑ × ÎÁÌÉÞÉÉ?
- 1.11) ëÁË ÎÁÕÞÉÔØÓÑ SQL?
- 1.12) ëÁË ÍÎÅ ÏÔÐÒÁ×ÉÔØ ÉÓÐÒÁ×ÌÅÎÉÅ ÉÌÉ ÐÒÉÓÏÅÄÉÎÉÔÓÑ Ë ËÏÍÁÎÄÅ ÒÁÚÒÁÂÏÔÞÉËÏ×?
- 1.13) ëÁË ÓÒÁ×ÎÉÔØ PostgreSQL Ó ÄÒÕÇÉÍÉ - óõâä? íÏÖÅÔ ÌÉ PostgreSQL ÂÙÔØ ×ÓÔÒÏÅÎÎÏÊ?
- 1.14) âÕÄÅÔ ÌÉ PostgreSQL ÒÁÂÏÔÁÔØ Ó ÐÏÓÌÅÄÎÉÍÉ ÉÚÍÅÎÅÎÉÑÍÉ, × ÒÁÚÎÙÈ ÓÔÒÁÎÙÈ, - ËÁÓÁÀÝÉÍÉÓÑ ÄÎÅ×ÎÏÇÏ ×ÒÅÍÅÎÉ?
- 1.15) ëÁË ÍÎÅ ÏÔÐÉÓÁÔØÓÑ ÏÔ ÓÐÉÓËÏ× ÒÁÓÓÙÌËÉ PostgreSQL? - ëÁË ÉÚÂÅÖÁÔØ ÐÏÌÕÞÅÎÉÑ ÄÕÂÌÉÒÕÀÝÉÈÓÑ ÓÏÏÂÝÅÎÉÊ?
- -

÷ÏÐÒÏÓÙ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÐÏ ËÌÉÅÎÔÓËÏÊ ÞÁÓÔÉ

- 2.1) ëÁËÉÅ ÉÎÔÅÒÆÅÊÓÙ ÅÓÔØ ÄÌÑ PostgreSQL?
- 2.2) ëÁËÉÅ ÉÎÓÔÒÕÍÅÎÔÙ ÓÕÝÅÓÔ×ÕÀÔ ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ - PostgreSQL ÞÅÒÅÚ Web?
- 2.3) åÓÔØ ÌÉ Õ PostgreSQL ÇÒÁÆÉÞÅÓËÉÊ ÉÎÔÅÒÆÅÊÓ - ÐÏÌØÚÏ×ÁÔÅÌÑ?
+

Общие вопросы

+ 1.1) Что такое PostgreSQL? Как произносится это название? Что такое Postgres?
+ 1.2) Кто управляет PostgreSQL?
+ 1.3) Каковы авторские права на PostgreSQL?
+ 1.4) На каких платформах работает PostgreSQL?
+ 1.5) Где можно взять PostgreSQL?
+ 1.6) Какая версия наиболее свежая?
+ 1.7) Где получить поддержку?
+ 1.8) Как мне сообщить об ошибке?
+ 1.9) Как найти информацию об известных ошибках или отсутствующих + возможностях?
+ 1.10) Какая документация имеется в наличии?
+ 1.11) Как научиться SQL?
+ 1.12) Как мне отправить исправление или присоединится к команде разработчиков?
+ 1.13) Как сравнить PostgreSQL с другими + СУБД? Может ли PostgreSQL быть встроенной?
+ 1.14) Будет ли PostgreSQL работать с последними изменениями, в разных страных, + касающимися дневного времени?
+ 1.15) Как мне отписаться от списков рассылки PostgreSQL? + Как избежать получения дублирующихся сообщений?
+ +

Вопросы пользователей по клиентской части

+ 2.1) Какие интерфейсы есть для PostgreSQL?
+ 2.2) Какие инструменты существуют для использования + PostgreSQL через Web?
+ 2.3) Есть ли у PostgreSQL графический интерфейс + пользователя?
-

÷ÏÐÒÏÓÙ ÁÄÍÉÎÉÓÔÒÉÒÏ×ÁÎÉÑ

- 3.1) ëÁË ÍÎÅ ÕÓÔÁÎÏ×ÉÔØ PostgreSQL × ÍÅÓÔÏ ÏÔÌÉÞÎÏÅ - ÏÔ /usr/local/pgsql?
- 3.2) ëÁË ÍÎÅ ÕÐÒÁ×ÌÑÔØ ÓÏÅÄÉÎÅÎÉÑÍÉ ÏÔ ÄÒÕÇÉÈ - ËÏÍÐØÀÔÅÒÏ×?
- 3.3) ëÁËÉÅ ÎÁÓÔÒÏÊËÉ ÍÎÅ ÎÕÖÎÏ ÓÄÅÌÁÔØ ÄÌÑ ÕÌÕÞÛÅÎÉÑ - ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ?
- 3.4) ëÁËÉÅ ×ÏÚÍÏÖÎÏÓÔÉ ÄÌÑ ÏÔÌÁÄËÉ ÅÓÔØ × ÎÁÌÉÞÉÉ?
- 3.5) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÓÏÏÂÝÅÎÉÅ "Sorry, too many - clients" ËÏÇÄÁ ÐÙÔÁÀÓØ ÐÏÄËÌÀÞÉÔØÓÑ Ë ÂÁÚÅ?
- 3.6) ëÁË ×ÙÐÏÌÎÉÔØ ÏÂÎÏ×ÌÅÎÉÅ PostgreSQL?
- 3.7) ëÁËÏÅ ËÏÍÐØÀÔÅÒÎÏÅ "ÖÅÌÅÚÏ" Ñ ÄÏÌÖÅÎ - ÉÓÐÏÌØÚÏ×ÁÔØ?
+

Вопросы администрирования

+ 3.1) Как мне установить PostgreSQL в место отличное + от /usr/local/pgsql?
+ 3.2) Как мне управлять соединениями от других + компьютеров?
+ 3.3) Какие настройки мне нужно сделать для улучшения + производительности?
+ 3.4) Какие возможности для отладки есть в наличии?
+ 3.5) Почему я получаю сообщение "Sorry, too many + clients" когда пытаюсь подключиться к базе?
+ 3.6) Как выполнить обновление PostgreSQL?
+ 3.7) Какое компьютерное "железо" я должен + использовать?
-

÷ÏÐÒÏÓÙ ÜËÓÐÌÕÁÔÁÃÉÉ

- 4.1) ëÁË ×ÙÐÏÌÎÉÔØ SELECT ÔÏÌØËÏ - ÄÌÑ ÎÅÓËÏÌØËÉÈ ÐÅÒ×ÙÈ ÓÔÒÏÞÅË ÚÁÐÒÏÓÁ? äÌÑ ÐÒÏÉÚ×ÏÌØÎÏÊ ÓÔÒÏËÉ?
- 4.2) ëÁË ÍÎÅ ÎÁÊÔÉ ËÁËÉÅ ÔÁÂÌÉÃÙ, ÉÎÄÅËÓÙ, - ÂÁÚÙ ÄÁÎÎÙÈ É ÐÏÌØÚÏ×ÁÔÅÌÉ ÓÕÝÅÓÔ×ÕÀÔ? ëÁË ÍÎÅ Õ×ÉÄÅÔØ ÚÁÐÒÏÓÙ, - ËÏÔÏÒÙÅ ÉÓÐÏÌØÚÕÅÔ psql ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÜÔÏÊ ÉÎÆÏÒÍÁÃÉÉ?
- 4.3) ëÁË ÉÚÍÅÎÉÔØ ÔÉÐ ÄÁÎÎÙÈ ËÏÌÏÎËÉ?
- 4.4) ëÁËÏ×Ù ÍÁËÓÉÍÁÌØÎÙÅ ÒÁÚÍÅÒÙ ÄÌÑ ÓÔÒÏË × ÔÁÂÌÉÃÅ, - ÔÁÂÌÉÃ É ÂÁÚÙ ÄÁÎÎÙÈ?
- 4.5) ëÁË ÍÎÏÇÏ ÄÉÓËÏ×ÏÇÏ ÐÒÏÓÔÒÁÎÓÔ×Á × ÂÁÚÅ ÄÁÎÎÙÈ - ÎÕÖÎÏ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÄÁÎÎÙÈ ÉÚ ÏÂÙÞÎÏÇÏ ÔÅËÓÔÏ×ÏÇÏ ÆÁÊÌÁ?
- 4.6) ðÏÞÅÍÕ ÍÏÉ ÚÁÐÒÏÓÙ ÒÁÂÏÔÁÀÔ ÍÅÄÌÅÎÏ? ðÏÞÅÍÕ - ÏÎÉ ÎÅ ÉÓÐÏÌØÚÕÀÔ ÍÏÉ ÉÎÄÅËÓÙ?
- 4.7) ëÁË ÐÏÓÍÏÔÒÅÔØ ÎÁ ÔÏ, ËÁË ÏÐÔÉÍÉÚÁÔÏÒ ×ÙÐÏÌÎÑÅÔ - ÍÏÊ ÚÁÐÒÏÓ?
- 4.8) ëÁË ÍÎÅ ×ÙÐÏÌÎÉÔØ ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ - É ÐÏÉÓË ÎÅÚÁ×ÉÓÉÍÙÊ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË× ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ? - ëÁË ÍÎÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÉÎÄÅËÓ ÄÌÑ ÐÏÉÓËÁ ÎÅÚÁ×ÉÓÉÍÏÇÏ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË×?
- 4.9) ëÁË ÍÎÅ ÏÐÒÅÄÅÌÉÔØ, ÞÔÏ ÚÎÁÞÅÎÉÅ ÐÏÌÑ × ËÁËÏÍ-ÌÉÂÏ - ÚÁÐÒÏÓÅ ÒÁ×ÎÏ NULL? ëÁË ÍÎÅ ÓÏÅÄÉÎÉÔØ ×ÏÚÍÏÖÎÙÅ - NULL? íÏÇÕ Ñ ÓÏÒÔÉÒÏ×ÁÔØ ÐÏÌÑ NULL ÉÌÉ ÎÅÔ?
- 4.10) ëÁËÏ×Ù ÏÔÌÉÞÉÑ ÍÅÖÄÕ ÒÁÚÎÙÍÉ ÓÉÍ×ÏÌØÎÙÍÉ - ÔÉÐÁÍÉ?
- 4.11.1) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ÐÏÌÅ serial/Ó-Á×ÔÏ-Õ×ÅÌÉÞÅÎÉÅÍ?
- 4.11.2) ëÁË ÍÎÅ ÐÏÌÕÞÉÔØ ÚÎÁÞÅÎÉÅ ÐÒÉ ×ÓÔÁ×ËÅ +

Вопросы эксплуатации

+ 4.1) Как выполнить SELECT только + для нескольких первых строчек запроса? Для произвольной строки?
+ 4.2) Как мне найти какие таблицы, индексы, + базы данных и пользователи существуют? Как мне увидеть запросы, + которые использует psql для получения этой информации?
+ 4.3) Как изменить тип данных колонки?
+ 4.4) Каковы максимальные размеры для строк в таблице, + таблиц и базы данных?
+ 4.5) Как много дискового пространства в базе данных + нужно для сохранения данных из обычного текстового файла?
+ 4.6) Почему мои запросы работают медлено? Почему + они не используют мои индексы?
+ 4.7) Как посмотреть на то, как оптимизатор выполняет + мой запрос?
+ 4.8) Как мне выполнить поиск регулярного выражения + и поиск независимый от регистра букв поиск регулярного выражения? + Как мне использовать индекс для поиска независимого от регистра букв?
+ 4.9) Как мне определить, что значение поля в каком-либо + запросе равно NULL? Как мне соединить возможные + NULL? Могу я сортировать поля NULL или нет?
+ 4.10) Каковы отличия между разными символьными + типами?
+ 4.11.1) Как мне создать поле serial/с-авто-увеличением?
+ 4.11.2) Как мне получить значение при вставке SERIAL?
- 4.11.3) îÅ ÍÏÖÅÔ ÌÉ ÐÏÌÕÞÉÔØÓÑ ÔÁË, ÞÔÏ - ÉÓÐÏÌØÚÏ×ÁÎÉÅ currval() É nextval() ÐÒÉ×ÅÄÅÔ Ë - ÚÁÃÉËÌÉÒÏ×ÁÎÉÀ Ó ÄÒÕÇÉÍÉ ÐÏÌØÚÏ×ÁÔÅÌÑÍÉ?
- 4.11.4) ðÏÞÅÍÕ ÞÉÓÌÁ ÉÚ ÍÏÅÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ - ÎÅ ÉÓÐÏÌØÚÕÀÔÓÑ ÓÎÏ×Á ÐÒÉ ÏÔÍÅÎÅ ÔÒÁÎÚÁËÃÉÉ? ðÏÞÅÍÕ ÓÏÚÄÁÀÔÓÑ ÒÁÚÒÙ×Ù - ÐÒÉ ÎÕÍÅÒÁÃÉÉ × ËÏÌÏÎËÅ, ÇÄÅ Ñ ÉÓÐÏÌØÚÕÀ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ/SERIAL?
- 4.12) þÔÏ ÔÁËÏÅ OID? þÔÏ ÔÁËÏÅ + 4.11.3) Не может ли получиться так, что + использование currval() и nextval() приведет к + зациклированию с другими пользователями?
+ 4.11.4) Почему числа из моей последовательности + не используются снова при отмене транзакции? Почему создаются разрывы + при нумерации в колонке, где я использую последовательность/SERIAL?
+ 4.12) Что такое OID? Что такое CTID?
- 4.13) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ "ERROR: Memory + 4.13) Почему я получаю ошибку "ERROR: Memory exhausted in AllocSetAlloc()"?
- 4.14) ëÁË ÍÎÅ ÕÚÎÁÔØ, ËÁËÁÑ ×ÅÒÓÉÑ PostgreSQL - ÚÁÐÕÝÅÎÁ?
- 4.15) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ËÏÌÏÎËÕ ËÏÔÏÒÁÑ ÐÏ ÕÍÏÌÞÁÎÉÀ - ÂÕÄÅÔ ÓÏÄÅÒÖÁÔØ ÔÅËÕÝÅÅ ×ÒÅÍÑ?
- 4.16) ëÁË ×ÙÐÏÌÎÉÔØ ×ÎÅÛÎÅÅ Ó×ÑÚÙ×ÁÎÉÅ?
- 4.17) ëÁË ×ÙÐÏÌÎÑÔØ ÚÁÐÒÏÓÙ, ÉÓÐÏÌØÚÕÀÝÉÅ ÎÅÓËÏÌØËÏ - ÂÁÚ ÄÁÎÎÙÈ?
- 4.18) ëÁË ÍÎÅ ×ÅÒÎÕÔØ ÉÚ ÆÕÎËÃÉÉ ÎÅÓËÏÌØËÏ ÓÔÒÏË ÔÁÂÌÉÃÙ?
- 4.19) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ "relation with OID #### - ÎÅ ÓÕÝÅÓÔ×ÕÅÔ", ËÏÇÄÁ ÏÂÒÁÝÁÀÔÓØ Ë ×ÒÅÍÅÎÎÙÍ ÔÁÂÌÉÃÁÍ × ÆÕÎËÃÉÑÈ PL/PgSQL?
- 4.20) ëÁËÉÅ ÅÓÔØ ÒÅÛÅÎÉÑ ÄÌÑ ÒÅÐÌÉËÁÃÉÉ?
- 4.21) ðÏÞÅÍÕ ÉÍÅÎÁ ÔÁÂÌÉÃÙ É ËÏÌÏÎÏË ÎÅ - ÒÁÓÐÏÚÎÁÀÔÓÑ × × ÍÏ£Í ÚÁÐÒÏÓÅ? ðÏÞÅÍÕ ÎÅ ÓÏÈÒÁÎÑÀÔÓÑ ÚÁÇÌÁ×ÎÙÅ ÂÕË×Ù?
+ 4.14) Как мне узнать, какая версия PostgreSQL + запущена?
+ 4.15) Как мне создать колонку которая по умолчанию + будет содержать текущее время?
+ 4.16) Как выполнить внешнее связывание?
+ 4.17) Как выполнять запросы, использующие несколько + баз данных?
+ 4.18) Как мне вернуть из функции несколько строк таблицы?
+ 4.19) Почему я получаю ошибку "relation with OID #### + не существует", когда обращаютсь к временным таблицам в функциях PL/PgSQL?
+ 4.20) Какие есть решения для репликации?
+ 4.21) Почему имена таблицы и колонок не + распознаются в в моём запросе? Почему не сохраняются заглавные буквы?

-

ïÂÝÉÅ ×ÏÐÒÏÓÙ

+

Общие вопросы

-

1.1) þÔÏ ÔÁËÏÅ PostgreSQL? ëÁË ÐÒÏÉÚÎÏÓÉÔÓÑ ÜÔÏ ÎÁÚ×ÁÎÉÅ? þÔÏ ÔÁËÏÅ Postgres?

+

1.1) Что такое PostgreSQL? Как произносится это название? Что такое Postgres?

-

PostgreSQL ÐÒÏÉÚÎÏÓÉÔÓÑ Post-Gres-Q-L (ðÏÓÔ-çÒÅÓ-ëØÀ-üÌ). - (äÌÑ ÏÓÏÂÏ ÌÀÂÏÐÙÔÓÔ×ÕÀÝÉÈ ËÁË ÐÒÏÉÚÎÏÓÉÔØ "PostgreSQL", ÓÕÝÅÓÔ×ÕÅÔ - ÁÕÄÉÏ-ÆÁÊÌ). +

PostgreSQL произносится Post-Gres-Q-L (Пост-Грес-Кью-Эл). + (Для особо любопытствующих как произносить "PostgreSQL", существует + аудио-файл).

-

PostgreSQL - ÜÔÏ ÏÂßÅËÔÎÏ-ÒÅÌÑÃÉÏÎÎÁÑ ÓÉÓÔÅÍÁ ÕÐÒÁ×ÌÅÎÉÑ ÂÁÚÁÍÉ - ÄÁÎÎÙÈ (óõâä), ËÏÔÏÒÁÑ ÉÍÅÅÔ ÔÒÁÄÉÃÉÏÎÎÙÅ ×ÏÚÍÏÖÎÏÓÔÉ ËÏÍÍÅÒÞÅÓËÉÈ - óõâä Ó ÒÁÓÛÉÒÅÎÉÑÍÉ, ËÏÔÏÒÙÅ ÅÓÔØ × óõâä - ÎÏ×ÏÇÏ ÐÏËÏÌÅÎÉÑ. PostgreSQL - ÜÔÏ Ó×ÏÂÏÄÎÏÅ É ÐÏÌÎÏÓÔØÀ ÏÔËÒÙÔÏÅ - ÐÒÏÇÒÁÍÍÎÏÅ ÏÂÅÓÐÅÞÅÎÉÅ.

+

PostgreSQL - это объектно-реляционная система управления базами + данных (СУБД), которая имеет традиционные возможности коммерческих + СУБД с расширениями, которые есть в СУБД + нового поколения. PostgreSQL - это свободное и полностью открытое + программное обеспечение.

-

òÁÚÒÁÂÏÔËÕ PostgreSQL ×ÙÐÏÌÎÑÅÔ ËÏÍÁÎÄÁ ÒÁÚÒÁÂÏÔÞÉËÏ×, ÒÁÚÂÒÏÓÁÎÎÁÑ - ÐÏ ×ÓÅÍÕ ÍÉÒÕ É Ó×ÑÚÁÎÎÁÑ ÞÅÒÅÚ éÎÔÅÒÎÅÔ. òÁÚÒÁÂÏÔËÁ Ñ×ÌÑÅÔÓÑ - ÏÂÝÅÓÔ×ÅÎÎÙÍ ÐÒÏÅËÔÏÍ É ÎÅ ÕÐÒÁ×ÌÑÅÔÓÑ ËÁËÏÊ-ÌÉÂÏ ËÏÍÐÁÎÉÅÊ. - ðÏÄÒÏÂÎÏÓÔÉ ÓÍÏÔÒÉÔÅ × FAQ ÄÌÑ ÒÁÚÒÁÂÏÔÞÉËÏ×, +

Разработку PostgreSQL выполняет команда разработчиков, разбросанная + по всему миру и связанная через Интернет. Разработка является + общественным проектом и не управляется какой-либо компанией. + Подробности смотрите в FAQ для разработчиков, http://www.postgresql.org/docs/faqs.FAQ_DEV.html

-

Postgres — ÜÔÏ ÛÉÒÏËÏ ÉÓÐÏÌØÚÕÅÍÏÅ ÓÏËÒÁÝÅÎÉÅ ÄÌÑ PostgreSQL. - ðÅÒ×ÏÎÁÞÁÌØÎÙÍ ÉÍÅÎÅÍ ÐÒÏÅËÔÁ × âÅÒËÌÉ ÂÙÌÏ Postgres É ÜÔÏÔ ÎÉË ÔÅÐÅÒØ - ÎÁÉÂÏÌÅÅ ÐÏÐÕÌÑÒÅÎ × ÒÁÚÇÏ×ÏÒÁÈ Ï PostgreSQL ÐÏ ÓÒÁ×ÎÅÎÉÀ Ó ÄÒÕÇÉÍÉ. - åÓÌÉ ×ÁÍ ÔÒÕÄÎÏ ÐÏÌÎÏÓÔØÀ ÐÒÏÇÏ×ÁÒÉ×ÁÔØ 'PostgreSQL', ÍÏÖÎÏ ÐÒÏÓÔÏ - ÇÏ×ÏÒÉÔØ 'Postgres'.

+

Postgres — это широко используемое сокращение для PostgreSQL. + Первоначальным именем проекта в Беркли было Postgres и этот ник теперь + наиболее популярен в разговорах о PostgreSQL по сравнению с другими. + Если вам трудно полностью проговаривать 'PostgreSQL', можно просто + говорить 'Postgres'.

-

1.2) ëÔÏ ÕÐÒÁ×ÌÑÅÔ PostgreSQL?

+

1.2) Кто управляет PostgreSQL?

-

åÓÌÉ ×Ù ÉÝÉÔÅ ËÁËÏÇÏ-ÔÏ ÏÓÏÂÅÎÎÏÇÏ ÞÅÌÏ×ÅËÁ, ÃÅÎÔÒÁÌØÎÙÊ - ËÏÍÉÔÅÔ ÉÌÉ ÕÐÒÁ×ÌÑÀÝÕÀ ËÏÍÐÁÎÉÀ, ÔÏ ÎÁÐÒÁÓÎÏ --- ÉÈ ÎÅÔ. - õ ÎÁÓ ÅÓÔØ ÑÄÒÏ ËÏÍÉÔÅÔÁ É ÒÁÚÒÁÂÏÔÞÉËÏ×, ÒÁÂÏÔÁÀÝÉÈ Ó CVS, - ÎÏ ÜÔÉ ÇÒÕÐÐÙ ÓÌÕÖÁÔ ÂÏÌØÛÅ ÄÌÑ ÁÄÍÉÎÉÓÔÒÁÔÉ×ÎÙÈ ÃÅÌÅÊ, ÞÅÍ - ÄÌÑ ÕÐÒÁ×ÌÅÎÉÑ. ðÒÏÅËÔ ÎÁÐÒÑÍÕÀ ÆÕÎËÃÉÏÎÉÒÕÅÔ Ó ÐÏÍÏÝØÀ - ÓÏÏÂÝÅÓÔ×Á ÒÁÚÒÁÂÏÔÞÉËÏ× É ÐÏÌØÚÏ×ÁÔÅÌÅÊ, Ë ËÏÔÏÒÏÍÕ ÍÏÖÅÔ - ÐÒÉÓÏÅÄÉÎÉÔÓÑ ËÁÖÄÙÊ. ÷Ó£ ÞÔÏ ÎÕÖÎÏ -- ÜÔÏ ÐÏÄÐÉÓÁÔØÓÑ ÎÁ - ÓÐÉÓËÉ ÒÁÓÓÙÌËÉ É ÕÞÁÓÔ×Ï×ÁÔØ × ÄÉÓËÕÓÓÉÑÈ. (ðÏÄÒÏÂÎÏÓÔÉ Ï - ÔÏÍ ËÁË ×ËÌÀÞÉÔØÓÑ × ÒÁÚÒÁÂÏÔËÕ PostgreSQL ÓÍÏÔÒÉÔÅ × +

Если вы ищите какого-то особенного человека, центральный + комитет или управляющую компанию, то напрасно --- их нет. + У нас есть ядро комитета и разработчиков, работающих с CVS, + но эти группы служат больше для административных целей, чем + для управления. Проект напрямую функционирует с помощью + сообщества разработчиков и пользователей, к которому может + присоединится каждый. Всё что нужно -- это подписаться на + списки рассылки и участвовать в дискуссиях. (Подробности о + том как включиться в разработку PostgreSQL смотрите в - FAQ ÄÌÑ ÒÁÚÒÁÂÏÔÞÉËÏ×.)

+ FAQ для разработчиков.)

-

1.3) ëÁËÏ×Ù Á×ÔÏÒÓËÉÅ ÐÒÁ×Á ÎÁ PostgreSQL?

+

1.3) Каковы авторские права на PostgreSQL?

-

PostgreSQL ÒÁÓÐÒÏÓÔÒÁÎÑÅÔÓÑ ÐÏ ËÌÁÓÓÉÞÅÓËÏÊ ÌÉÃÅÎÚÉÉ BSD. üÔÁ - ÌÉÃÅÎÚÉÑ ÎÅ ÓÏÄÅÒÖÉÔ ÏÇÒÁÎÉÞÅÎÉÊ ÎÁ ÔÏ, ËÁË ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ - ÉÓÈÏÄÎÙÊ ËÏÄ. îÁÍ ÎÒÁ×ÉÔÓÑ ÜÔÁ ÌÉÃÅÎÚÉÑ É Õ ÎÁÓ ÎÅÔ ÎÁÍÅÒÅÎÉÊ Å£ - ÍÅÎÑÔØ. ÷ÏÔ ÜÔÁ ÌÉÃÅÎÚÉÑ BSD, ËÏÔÏÒÕÀ ÍÙ ÉÓÐÏÌØÚÕÅÍ:

+

PostgreSQL распространяется по классической лицензии BSD. Эта + лицензия не содержит ограничений на то, как будет использоваться + исходный код. Нам нравится эта лицензия и у нас нет намерений её + менять. Вот эта лицензия BSD, которую мы используем:

-

óÉÓÔÅÍÁ õÐÒÁ×ÌÅÎÉÑ âÁÚÁÍÉ äÁÎÎÙÈ PostgreSQL

+

Система Управления Базами Данных PostgreSQL

Portions copyright (c) 1996-2008, PostgreSQL Global Development Group Portions Copyright (c) 1994-1996 Regents of the University of California

-

ðÒÅÄÏÓÔÁ×ÌÑÀÔÓÑ ÐÒÁ×Á ÎÁ ÉÓÐÏÌØÚÏ×ÁÎÉÅ, ËÏÐÉÒÏ×ÁÎÉÅ, ÉÚÍÅÎÅÎÉÅ - É ÒÁÓÐÒÏÓÔÒÁÎÅÎÉÅ ÄÁÎÎÏÇÏ ÐÒÏÇÒÁÍÍÎÏÇÏ ÏÂÅÓÐÅÞÅÎÉÑ É ÅÇÏ ÄÏËÕÍÅÎÔÁÃÉÉ - ÄÌÑ ÌÀÂÙÈ ÃÅÌÅÊ, ÂÅÓÐÌÁÔÎÏ É ÂÅÚ ÐÏÄÐÉÓÁÎÉÑ ËÁËÏÇÏ-ÌÉÂÏ ÓÏÇÌÁÛÅÎÉÑ, - ÐÒÉ ÕÓÌÏ×ÉÉ ÞÔÏ ÄÌÑ ËÁÖÄÏÊ ËÏÐÉÉ ÂÕÄÕÔ ÐÒÅÄÏÓÔÁ×ÌÅÎÙ ÄÁÎÎÏÅ ×ÙÛÅ - ÚÁÍÅÞÁÎÉÅ Ï Á×ÔÏÒÓËÉÈ ÐÒÁ×ÁÈ, ÔÅËÕÝÉÊ ÐÁÒÁÇÒÁÆ É Ä×Á ÓÌÅÄÕÀÝÉÈ - ÐÁÒÁÇÒÁÆÁ.

- -

ëáìéæïòîéêóëéê õîé÷åòóéôåô îå îåóåô îéëáëïê ïô÷åôóô÷åîîïóôé - úá ìàâùå ðï÷òåöäåîéñ, ÷ëìàþáñ ðïôåòà äïèïäá, îáîåóåîîùå ðòñíùí - éìé îåðòñíùí, óðåãéáìøîùí éìé óìõþáêîùí éóðïìøúï÷áîéåí äáîîïçï - ðòïçòáííîïçï ïâåóðåþåîéñ éìé åçï äïëõíåîôáãéé, äáöå åóìé - ëáìéæïòîéêóëéê õîé÷åòóéôåô âùì éú÷åýåî ï ÷ïúíïöîïóôé ôáëéè - ðï÷òåöäåîéê.

- -

ëáìéæïòîéêóëéê õîé÷åòóéôåô óðåãéáìøîï ïôëáúù÷áúù÷áåôóñ ðòåäïóôá÷ìñôø - ìàâùå çáòáîôéé, ÷ëìàþáñ, îï îå ïçòáîéþé÷áñóø ôïìøëï üôéíé çáòáîôéñíé: - îåñ÷îùå çáòáîôéé ðòéçïäîïóôé ôï÷áòá éìé ðòéçïäîïóôé äìñ ïôäåìøîïê ãåìé. - äáîîïå ðòïçòáííîïå ïâåóðåþåîéå ðòåäïóôá÷ìñåôóñ îá ïóîï÷å ðòéãéðá - "ëáë åóôø" é ëáìéæïòîéêóëéê õîé÷åòóéôåô îå ïâñúáî ðòåäïóôá÷ìñôø - óïðòï÷ïöäåîéå, ðïääåòöëõ, ïâîï÷ìåîéñ, òáóûéòåîéñ éìé éúíåîåîéñ.

- -

1.4) îÁ ËÁËÉÈ ÐÌÁÔÆÏÒÍÁÈ ÒÁÂÏÔÁÅÔ PostgreSQL?

- -

ïÂÙÞÎÏ, PostgreSQL ÍÏÖÅÔ ÒÁÂÏÔÁÔØ ÎÁ ÌÀÂÏÊ ÓÏ×ÒÅÍÅÎÎÏÊ ÐÌÁÔÆÏÒÍÅ - ÓÏ×ÍÅÓÔÉÍÏÊ Ó Unix. ÷ ÉÎÓÔÒÕËÃÉÉ ÐÏ ÕÓÔÁÎÏ×ËÅ, ×Ù ÎÁÊÄÅÔÅ ÓÐÉÓÏË - ÔÅÈ ÐÌÁÔÆÏÒÍ, ÎÁ ËÏÔÏÒÙÈ ÂÙÌÉ ÐÒÏ×ÅÄÅÎÙ ÔÅÓÔÏ×ÙÅ ÚÁÐÕÓËÉ PostgreSQL - Ë ÍÏÍÅÎÔÕ ×ÙÈÏÄÁ ÄÁÎÎÏÊ ×ÅÒÓÉÉ.

- -

PostgreSQL ÔÁËÖÅ ÒÁÂÏÔÁÅÔ ÎÁ ÏÐÅÒÁÃÉÏÎÎÙÈ ÓÉÓÔÅÍÁÈ Microsoft - Windows, ÏÓÎÏ×ÁÎÎÙÈ ÎÁ NT, ÔÁËÉÈ ËÁË Win2000 SP4, WinXP É Win2003. - ðÁËÅÔ ÉÎÓÔÁÌÌÑÔÏÒÁ ÄÏÓÔÕÐÅÎ ÐÏ ÁÄÒÅÓÕ +

Предоставляются права на использование, копирование, изменение + и распространение данного программного обеспечения и его документации + для любых целей, бесплатно и без подписания какого-либо соглашения, + при условии что для каждой копии будут предоставлены данное выше + замечание об авторских правах, текущий параграф и два следующих + параграфа.

+ +

КАЛИФОРНИЙСКИЙ УНИВЕРСИТЕТ НЕ НЕСЕТ НИКАКОЙ ОТВЕТСТВЕННОСТИ + ЗА ЛЮБЫЕ ПОВРЕЖДЕНИЯ, ВКЛЮЧАЯ ПОТЕРЮ ДОХОДА, НАНЕСЕННЫЕ ПРЯМЫМ + ИЛИ НЕПРЯМЫМ, СПЕЦИАЛЬНЫМ ИЛИ СЛУЧАЙНЫМ ИСПОЛЬЗОВАНИЕМ ДАННОГО + ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ИЛИ ЕГО ДОКУМЕНТАЦИИ, ДАЖЕ ЕСЛИ + КАЛИФОРНИЙСКИЙ УНИВЕРСИТЕТ БЫЛ ИЗВЕЩЕН О ВОЗМОЖНОСТИ ТАКИХ + ПОВРЕЖДЕНИЙ.

+ +

КАЛИФОРНИЙСКИЙ УНИВЕРСИТЕТ СПЕЦИАЛЬНО ОТКАЗЫВАЗЫВАЕТСЯ ПРЕДОСТАВЛЯТЬ + ЛЮБЫЕ ГАРАНТИИ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ТОЛЬКО ЭТИМИ ГАРАНТИЯМИ: + НЕЯВНЫЕ ГАРАНТИИ ПРИГОДНОСТИ ТОВАРА ИЛИ ПРИГОДНОСТИ ДЛЯ ОТДЕЛЬНОЙ ЦЕЛИ. + ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ НА ОСНОВЕ ПРИЦИПА + "КАК ЕСТЬ" И КАЛИФОРНИЙСКИЙ УНИВЕРСИТЕТ НЕ ОБЯЗАН ПРЕДОСТАВЛЯТЬ + СОПРОВОЖДЕНИЕ, ПОДДЕРЖКУ, ОБНОВЛЕНИЯ, РАСШИРЕНИЯ ИЛИ ИЗМЕНЕНИЯ.

+ +

1.4) На каких платформах работает PostgreSQL?

+ +

Обычно, PostgreSQL может работать на любой современной платформе + совместимой с Unix. В инструкции по установке, вы найдете список + тех платформ, на которых были проведены тестовые запуски PostgreSQL + к моменту выхода данной версии.

+ +

PostgreSQL также работает на операционных системах Microsoft + Windows, основанных на NT, таких как Win2000 SP4, WinXP и Win2003. + Пакет инсталлятора доступен по адресу - http://www.postgresql.org/download/windows. ÷ÅÒÓÉÉ Windows, - ÏÓÎÏ×ÁÎÎÙÅ ÎÁ MS-DOS (Win95, Win98, WinMe) ÍÏÇÕÔ ÚÁÐÕÓËÁÔØ - PostgreSQL Ó ÐÏÍÏÝØÀ Cygwin.

+ http://www.postgresql.org/download/windows. Версии Windows, + основанные на MS-DOS (Win95, Win98, WinMe) могут запускать + PostgreSQL с помощью Cygwin.

-

ôÁËÖÅ ÓÕÝÅÓÔ×ÕÅÔ ×ÅÒÓÉÑ ÓÐÏÒÔÉÒÏ×ÁÎÎÁÑ ÐÏÄ Novell Netware 6 ÎÁ +

Также существует версия спортированная под Novell Netware 6 на http://developer.novell.com/wiki/index.php/Postgresql, - É ×ÅÒÓÉÑ ÄÌÑ OS/2 (eComStation) ÎÁ + и версия для OS/2 (eComStation) на http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F.

-

1.5) çÄÅ ÍÏÖÎÏ ×ÚÑÔØ PostgreSQL?

+

1.5) Где можно взять PostgreSQL?

-

þÅÒÅÚ ÂÒÁÕÚÅÒ, ÉÓÐÏÌØÚÕÑ - http://www.postgresql.org/ftp/ É ÞÅÒÅÚ ftp, ÉÓÐÏÌØÚÕÑ +

Через браузер, используя + http://www.postgresql.org/ftp/ и через ftp, используя ftp://ftp.postgresql.org/pub/.

-

1.6) ëÁËÁÑ ×ÅÒÓÉÑ ÎÁÉÂÏÌÅÅ Ó×ÅÖÁÑ?

+

1.6) Какая версия наиболее свежая?

-

ðÏÓÌÅÄÎÉÊ ×ÙÐÕÓË PostgreSQL - ÜÔÏ ×ÅÒÓÉÑ 8.3.3

+

Последний выпуск PostgreSQL - это версия 8.3.3

-

íÙ ÐÌÁÎÉÒÕÅÍ ×ÙÐÕÓËÁÔØ ÎÏ×ÙÅ ÓÔÁÒÛÉÅ ×ÅÒÓÉÉ ËÁÖÄÙÊ ÇÏÄ, - Á ÍÌÁÄÛÉÅ ×ÅÒÓÉÉ ËÁÖÄÙÅ ÎÅÓËÏÌØËÏ ÍÅÓÑÃÅ×.

+

Мы планируем выпускать новые старшие версии каждый год, + а младшие версии каждые несколько месяцев.

-

1.7) çÄÅ ÐÏÌÕÞÉÔØ ÐÏÄÄÅÒÖËÕ?

+

1.7) Где получить поддержку?

-

óÏÏÂÝÅÓÔ×Ï PostgreSQL ÐÒÅÄÏÓÔÁ×ÌÑÅÔ ÐÏÍÏÝØ ÍÎÏÖÅÓÔ×Õ ÐÏÌØÚÏ×ÁÔÅÌÅÊ - ÞÅÒÅÚ E-mail. ïÓÎÏ×ÎÏÊ web-ÓÁÊÔ ÄÌÑ ÐÏÄÐÉÓËÉ ÎÁ ÓÐÉÓËÉ ÒÁÓÓÙÌËÉ ÐÏ - E-mail ÜÔÏ: - http://www.postgresql.org/community/lists/. èÏÒÏÛÉÍ ÍÅÓÔÏÍ ÄÌÑ - ÔÏÇÏ, ÞÔÏÂÙ ÎÁÞÁÔØ ÚÁÄÁ×ÁÔØ ×ÏÐÒÏÓÙ Ñ×ÌÑÀÔÓÑ ÓÐÉÓËÉ general - (ÏÂÝÉÅ ×ÏÐÒÏÓÙ) ÉÌÉ bugs (ÏÛÉÂËÉ).

+

Сообщество PostgreSQL предоставляет помощь множеству пользователей + через E-mail. Основной web-сайт для подписки на списки рассылки по + E-mail это: + http://www.postgresql.org/community/lists/. Хорошим местом для + того, чтобы начать задавать вопросы являются списки general + (общие вопросы) или bugs (ошибки).

-

çÌÁ×ÎÙÍ IRC ËÁÎÁÌÏÍ Ñ×ÌÑÅÔÓÑ #postgreql, - ÒÁÓÐÏÌÏÖÅÎÎÙÊ ÎÁ ÓÅÒ×ÅÒÅ Freenode (irc.freenode.net). þÔÏÂÙ - ÐÏÄËÌÀÞÉÔØÓÑ, ×Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ × Unix ×ÙÚÏ× ÐÒÏÇÒÁÍÍÙ - irc -c '#postgresql' "$USER" irc.freenode.net ÉÌÉ - ÌÀÂÏÊ ÄÒÕÇÏÊ IRC ËÌÉÅÎÔ. îÁ ÜÔÏÍ ÖÅ ÓÅÒ×ÅÒÅ ÓÕÝÅÓÔ×ÕÀÔ ËÁÎÁÌÙ ÎÁ - ÉÓÐÁÎÓËÏÍ (#postgresql-es), ÆÒÁÎÃÕÚÓËÏÍ (#postgresqlfr) - É ÂÒÁÚÉÌØÓËÏÍ (#postgresql-br) ÑÚÙËÁÈ. ôÁËÖÅ ÓÕÝÅÓÔ×ÕÅÔ ËÁÎÁÌ - ÐÏ PostgreSQL ÎÁ ÓÅÒ×ÅÒÅ EFNet.

+

Главным IRC каналом является #postgreql, + расположенный на сервере Freenode (irc.freenode.net). Чтобы + подключиться, вы можете использовать в Unix вызов программы + irc -c '#postgresql' "$USER" irc.freenode.net или + любой другой IRC клиент. На этом же сервере существуют каналы на + испанском (#postgresql-es), французском (#postgresqlfr) + и бразильском (#postgresql-br) языках. Также существует канал + по PostgreSQL на сервере EFNet.

-

óÐÉÓÏË ËÏÍÍÅÒÞÅÓËÏÊ ÐÏÄÄÅÒÖËÉ ËÏÍÐÁÎÉÊ ÄÏÓÔÕÐÅÎ ÎÁ +

Список коммерческой поддержки компаний доступен на http://www.postgresql.org/support/professional_support.

-

1.8) ëÁË ÍÎÅ ÓÏÏÂÝÉÔØ Ï ÏÛÉÂËÅ?

+

1.8) Как мне сообщить об ошибке?

-

ðÏÓÅÔÉÔÅ ÓÔÒÁÎÉÞËÕ ÓÏ ÓÐÅÃÉÁÌØÎÏÊ ÆÏÒÍÏÊ ÏÔÞ£ÔÁ Ï ÏÛÉÂËÅ × - PostgreSQL ÐÏ ÁÄÒÅÓÕ: +

Посетите страничку со специальной формой отчёта об ошибке в + PostgreSQL по адресу: http://www.postgresql.org/support/submitbug. - ôÁËÖÅ ÐÒÏ×ÅÒØÔÅ ÎÁÌÉÞÉÅ ÂÏÌÅÅ Ó×ÅÖÅÊ ×ÅÒÓÉÉ PostgreSQL ÎÁ ÎÁÛÅÍ - FTP ÓÁÊÔÅ + Также проверьте наличие более свежей версии PostgreSQL на нашем + FTP сайте ftp://ftp.postgresql.org/pub/.

-

îÁ ÏÛÉÂËÉ, Õ×ÅÄÏÍÌÅÎÉÅ Ï ËÏÔÏÒÙÈ ÂÙÌÉ ÓÄÅÌÁÎÙ ÞÅÒÅÚ ÓÐÅÃÉÁÌØÎÕÀ - ÆÏÒÍÕ ÉÌÉ ÏÔÐÒÁ×ÌÅÎÎÙÅ × ËÁËÏÊ-ÌÉÂÏ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ PostgreSQL, - ÏÂÙÞÎÏ ÇÅÎÅÒÉÒÕÅÔÓÑ ÏÄÉÎ ÉÚ ÓÌÅÄÕÀÝÉÈ ÏÔ×ÅÔÏ×:

+

На ошибки, уведомление о которых были сделаны через специальную + форму или отправленные в какой-либо список рассылки PostgreSQL, + обычно генерируется один из следующих ответов:

-

1.9) ëÁË ÎÁÊÔÉ ÉÎÆÏÒÍÁÃÉÀ Ï ÉÚ×ÅÓÔÎÙÈ ÏÛÉÂËÁÈ - ÉÌÉ ÏÔÓÕÔÓÔ×ÕÀÝÉÈ ×ÏÚÍÏÖÎÏÓÔÑÈ?

+

1.9) Как найти информацию об известных ошибках + или отсутствующих возможностях?

-

PostgreSQL ÐÏÄÄÅÒÖÉ×ÁÅÔ ÒÁÓÛÉÒÅÎÎÙÊ ÐÏÄËÌÁÓÓ SQL:2003. - óÍÏÔÒÉÔÅ ÎÁÛ ÓÐÉÓÏË TODO - ÎÁ ÐÒÅÄÍÅÔ ÉÚ×ÅÓÔÎÙÈ ÏÛÉÂÏË, ÏÔÓÕÔÓÔ×ÕÀÝÉÈ ×ÏÚÍÏÖÎÏÓÔÅÊ É ÂÕÄÕÝÉÈ - ÐÌÁÎÏ×.

+

PostgreSQL поддерживает расширенный подкласс SQL:2003. + Смотрите наш список TODO + на предмет известных ошибок, отсутствующих возможностей и будущих + планов.

-

îÁ ÚÁÐÒÏÓ ËÁËÏÊ-ÌÉÂÏ ×ÏÚÍÏÖÎÏÓÔÉ ÏÂÙÞÎÏ ÐÒÉÈÏÄÑÔ ÓÌÅÄÕÀÝÉÅ ÏÔ×ÅÔÙ:

+

На запрос какой-либо возможности обычно приходят следующие ответы:

-

PostgreSQL ÎÅ ÉÓÐÏÌØÚÕÅÔ ËÁËÕÀ-ÌÉÂÏ ÓÉÓÔÅÍÕ ÏÔÓÌÅÖÉ×ÁÎÉÑ ÏÛÉÂÏË, - ÐÏÔÏÍÕ ÞÔÏ ÍÙ ÏÂÎÁÒÕÖÉÌÉ, ÞÔÏ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÐÒÑÍÏÇÏ ÏÂÒÁÝÅÎÉÑ ÐÏ - ÜÌÅËÔÒÏÎÎÏÊ ÐÏÞÔÅ É ÏÂÎÏ×ÌÑÅÍÏÇÏ ÓÐÉÓËÁ +

PostgreSQL не использует какую-либо систему отслеживания ошибок, + потому что мы обнаружили, что использование прямого обращения по + электронной почте и обновляемого списка TODO - Ñ×ÌÑÅÔÓÑ ÂÏÌÅÅ ÜÆÆÅËÔÉ×ÎÙÍ. îÁ ÐÒÁËÔÉËÅ, ÏÛÉÂËÉ × ÐÒÏÇÒÁÍÍÎÏÍ - ÏÂÅÓÐÅÞÅÎÉÉ ÓÏÈÒÁÎÑÀÔÓÑ ÏÞÅÎØ ÎÅÄÏÌÇÏ, Á ÏÛÉÂËÉ, ËÏÔÏÒÙÅ ×ÁÖÎÙ - ÂÏÌØÛÏÍÕ ËÏÌÉÞÅÓÔ×Õ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÉÓÐÒÁ×ÌÑÀÔÓÑ ÍÏÍÅÎÔÁÌØÎÏ. åÓÔØ - ÔÏÌØËÏ ÏÄÎÏ ÍÅÓÔÏ, ÇÄÅ ÍÏÖÎÏ ÎÁÊÔÉ ×ÓÅ ÉÚÍÅÎÅÎÉÑ, ÕÌÕÞÛÅÎÉÑ É - ÉÓÐÒÁ×ÌÅÎÉÑ, ÓÄÅÌÁÎÎÙÅ × ×ÙÐÕÓËÅ PostgreSQL - ÜÔÏ ÖÕÒÎÁÌÙ ÓÏÏÂÝÅÎÉÊ - ÓÉÓÔÅÍÙ ËÏÎÔÒÏÌÑ ×ÅÒÓÉÊ + является более эффективным. На практике, ошибки в программном + обеспечении сохраняются очень недолго, а ошибки, которые важны + большому количеству пользователей исправляются моментально. Есть + только одно место, где можно найти все изменения, улучшения и + исправления, сделанные в выпуске PostgreSQL - это журналы сообщений + системы контроля версий CVS. - äÁÖÅ ÚÁÍÅÞÁÎÉÑ Ë ×ÙÐÕÓËÁÍ ÎÅ ÓÏÄÅÒÖÁÔ ×ÓÅ ÉÚÍÅÎÅÎÉÑ, ÓÄÅÌÁÎÎÙÅ - × ÐÒÏÇÒÁÍÍÎÏÍ ÏÂÅÓÐÅÞÅÎÉÉ.

+ Даже замечания к выпускам не содержат все изменения, сделанные + в программном обеспечении.

-

1.10) ëÁËÁÑ ÄÏËÕÍÅÎÔÁÃÉÑ ÉÍÅÅÔÓÑ × ÎÁÌÉÞÉÉ?

+

1.10) Какая документация имеется в наличии?

-

PostgreSQL ÓÏÄÅÒÖÉÔ ÍÎÏÇÏ ÄÏËÕÍÅÎÔÁÃÉÉ, ×ËÌÀÞÁÑ ÂÏÌØÛÏÅ ÒÕËÏ×ÏÄÓÔ×Ï, - ÓÔÒÁÎÉÃÙ ÜÌÅËÔÒÏÎÎÏÇÏ ÒÕËÏ×ÏÄÓÔ×Á man É ÎÅËÏÔÏÒÙÅ ÍÁÌÅÎØËÉÅ ÔÅÓÔÏ×ÙÅ - ÐÒÉÍÅÒÙ. óÍÏÔÒÉÔÅ × ËÁÔÁÌÏÇ /doc. ÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÐÒÏÓÍÁÔÒÉ×ÁÔØ - ÄÏËÕÍÅÎÔÁÃÉÀ × éÎÔÅÒÎÅÔ ÐÏ ÁÄÒÅÓÕ +

PostgreSQL содержит много документации, включая большое руководство, + страницы электронного руководства man и некоторые маленькие тестовые + примеры. Смотрите в каталог /doc. Вы также можете просматривать + документацию в Интернет по адресу http://www.postgresql.org/docs.

-

óÕÝÅÓÔ×ÕÅÔ Ä×Å ËÎÉÇÉ ÐÏ PostgreSQL ÄÏÓÔÕÐÎÙÅ ÐÏ ÁÄÒÅÓÁÍ Ð¡ÑƒÑ‰ÐµÑÑ‚Ð²ÑƒÐµÑ‚ две книги по PostgreSQL доступные по адресам http://www.PostgreSQL.org/docs/books/awbook.html - É http://www.commandprompt.com/ppbook/. - åÓÔØ ÎÅÓËÏÌØËÏ ËÎÉÇ ÐÏ PostgreSQL, ËÏÔÏÒÙÅ ÍÏÖÎÏ ËÕÐÉÔØ. - ïÄÎÕ ÉÚ ÎÁÉÂÏÌÅÅ ÐÏÐÕÌÑÒÎÙÈ ÎÁÐÉÓÁÌ ëÏÒÒÉ äÕÇÌÁÓ (Korry Douglas). - óÐÉÓÏË ÏÂÚÏÒÏ× ÐÏ ÜÔÉÍ ËÎÉÇÁÍ ÄÏÓÔÕÐÅÎ ÐÏ ÁÄÒÅÓÕ + и http://www.commandprompt.com/ppbook/. + Есть несколько книг по PostgreSQL, которые можно купить. + Одну из наиболее популярных написал Корри Дуглас (Korry Douglas). + Список обзоров по этим книгам доступен по адресу http://www.postgresql.org/docs/books/. - ëÒÏÍÅ ÔÏÇÏ, ÐÏ ÁÄÒÅÓÕ http://wiki.postgresql.org/wiki/Community_Generated_Articles%2C_Guides%2C_and_Documentation - ×Ù ÍÏÖÅÔÅ ÎÁÊÔÉ ËÏÌÌÅËÃÉÀ ÔÅÈÎÉÞÅÓËÉÈ ÓÔÁÔÅÊ, ÐÏÓ×ÅÝÅÎÎÙÈ PostgreSQL.

+ Кроме того, по адресу http://wiki.postgresql.org/wiki/Community_Generated_Articles%2C_Guides%2C_and_Documentation + вы можете найти коллекцию технических статей, посвещенных PostgreSQL.

-

ëÌÉÅÎÔ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ psql ÉÍÅÅÔ ÎÅÓËÏÌØËÏ ËÏÍÁÎÄ \d ÄÌÑ - ÏÔÏÂÒÁÖÅÎÉÑ ÉÎÆÏÒÍÁÃÉÉ ÐÏ ÔÉÐÁÍ, ÏÐÅÒÁÔÏÒÁÍ, ÆÕÎËÃÉÑÍ, ÁÇÒÅÇÁÔÁÍ É Ô.Ä. - - ÉÓÐÏÌØÚÕÊÔÅ \? ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÓÐÉÓËÁ ÄÏÓÔÕÐÎÙÈ ËÏÍÁÎÄ.

+

Клиент командной строки psql имеет несколько команд \d для + отображения информации по типам, операторам, функциям, агрегатам и т.д. - + используйте \? для получения списка доступных команд.

-

îÁÛ ÓÁÊÔ ÓÏÄÅÒÖÉÔ ÅÝÅ ÂÏÌØÛÅ ÉÎÆÏÒÍÁÃÉÉ.

+

Наш сайт содержит еще больше информации.

-

1.11) ëÁË ÍÎÅ ÎÁÕÞÉÔØÓÑ SQL?

+

1.11) Как мне научиться SQL?

-

÷Ï-ÐÅÒ×ÙÈ, ×ÏÚØÍÉÔÅ ÏÄÎÕ ÉÚ ËÎÉÇ ÐÏ PostgreSQL, Ï ËÏÔÏÒÙÈ ÇÏ×ÏÒÉÌÏÓØ - ×ÙÛÅ. íÎÏÇÉÍ ÉÚ ÎÁÛÉÈ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÔÁËÖÅ ÎÒÁ×ÉÔÓÑ ËÎÉÇÁ +

Во-первых, возьмите одну из книг по PostgreSQL, о которых говорилось + выше. Многим из наших пользователей также нравится книга The Practical SQL Handbook, - Bowman, Judith S., et al., Addison-Wesley. äÒÕÇÉÍ ÎÒÁ×ÉÔÓÑ The + Bowman, Judith S., et al., Addison-Wesley. Другим нравится The Complete Reference SQL, Groff et al., McGraw-Hill.

-

óÕÝÅÓÔ×ÕÅÔ ÔÁËÖÅ ÍÎÏÖÅÓÔ×Ï ÐÒÅËÒÁÓÎÙÈ ÕÞÅÂÎÉËÏ× ÄÏÓÔÕÐÎÙÈ × online: +

Существует также множество прекрасных учебников доступных в online:

-

1.12) ëÁË ÍÎÅ ÐÒÉÓÌÁÔØ ÉÓÐÒÁ×ÌÅÎÉÅ ÉÌÉ ÐÒÉÓÏÅÄÉÎÉÔÓÑ Ë ËÏÍÁÎÄÅ ÒÁÚÒÁÂÏÔÞÉËÏ×?

+

1.12) Как мне прислать исправление или присоединится к команде разработчиков?

-

óÍÏÔÒÉÔÅ - FAQ ÄÌÑ ÒÁÚÒÁÂÏÔÞÉËÏ×.

+

Смотрите + FAQ для разработчиков.

-

1.13) ëÁË ÓÒÁ×ÎÉÔØ PostgreSQL Ó ÄÒÕÇÉÍÉ - óõâä? íÏÖÅÔ ÌÉ PostgreSQL ÂÙÔØ ×ÓÔÒÏÅÎÎÙÍ?

+

1.13) Как сравнить PostgreSQL с другими + СУБД? Может ли PostgreSQL быть встроенным?

- óÕÝÅÓÔ×ÕÅÔ ÎÅÓËÏÌØËÏ ÍÅÔÏÄÏ× ÓÒÁ×ÎÅÎÉÑ ÐÒÏÇÒÁÍÍÎÏÇÏ ÏÂÅÓÐÅÞÅÎÉÑ: - ×ÏÚÍÏÖÎÏÓÔÉ, ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ, ÎÁÄÅÖÎÏÓÔØ, ÐÏÄÄÅÒÖËÁ É ÃÅÎÁ.

+ Существует несколько методов сравнения программного обеспечения: + возможности, производительность, надежность, поддержка и цена.

-
÷ÏÚÍÏÖÎÏÓÔÉ
- -
PostgreSQL ÉÍÅÅÔ ÂÏÌØÛÉÎÓÔ×Ï ×ÏÚÍÏÖÎÏÓÔÅÊ ÐÒÅÄÓÔÁ×ÌÅÎÎÙÈ - × ÂÏÌØÛÉÈ ËÏÍÍÅÒÞÅÓËÉÈ óõâä, ÔÁËÉÅ ËÁË: ÔÒÁÎÚÁËÃÉÉ, - ÐÏÄÚÁÐÒÏÓÙ, ÔÒÉÇÇÅÒÙ, ÐÒÅÄÓÔÁ×ÌÅÎÉÑ, ÓÓÙÌÏÞÎÏÊ - ÃÅÌÏÓÔÎÏÓÔÉ ×ÔÏÒÉÞÎÏÇÏ ËÌÀÞÁ É ÒÁÚÎÙÅ ÂÌÏËÉÒÏ×ËÉ. õ ÎÁÓ ÅÓÔØ ÎÅËÏÔÏÒÙÅ ×ÏÚÍÏÖÎÏÓÔÉ, - ËÏÔÏÒÙÈ ÎÅÔ Õ ÎÉÈ: ÔÉÐÙ, ÏÐÒÅÄÅÌÑÅÍÙÅ ÐÏÌØÚÏ×ÁÔÅÌÅÍ, ÍÅÈÁÎÉÚÍ - ÎÁÓÌÅÄÏ×ÁÎÉÑ, ÐÒÁ×ÉÌÁ É ËÏÎËÕÒÅÔÎÏÅ ÍÎÏÇÏ×ÅÒÓÉÏÎÎÏÅ ÕÐÒÁ×ÌÅÎÉÅ - ÄÌÑ ÒÁÂÏÔÙ Ó ÓÏÄÅÒÖÉÍÙÍ ÂÌÏËÉÒÏ×ÏË.
+
Возможности
+ +
PostgreSQL имеет большинство возможностей представленных + в больших коммерческих СУБД, такие как: транзакции, + подзапросы, триггеры, представления, ссылочной + целостности вторичного ключа и разные блокировки. У нас есть некоторые возможности, + которых нет у них: типы, определяемые пользователем, механизм + наследования, правила и конкуретное многоверсионное управление + для работы с содержимым блокировок.

-
ðÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ
+
Производительность
-
ðÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ PostgreSQL ÓÈÏÄÎÁ Ó ÄÒÕÇÉÍÉ ËÏÍÍÅÒÞÅÓËÉÍÉ - óõâä É Ó óõâä Ó ÏÔËÒÙÔÙÍ ÉÓÈÏÄÎÙÍ ËÏÄÏÍ. ÷ ËÁËÉÈ-ÔÏ ×ÅÝÁÈ ÍÙ ÂÙÓÔÒÅÅ, - × ËÁËÉÈ-ÔÏ ÍÅÄÌÅÎÎÅÅ. îÁÛÁ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ ÏÂÙÞÎÏ +/-10% ÐÏ - ÓÒÁ×ÎÅÎÉÀ Ó ÄÒÕÇÉÍÉ óõâä. +
Производительность PostgreSQL сходна с другими коммерческими + СУБД и с СУБД с открытым исходным кодом. В каких-то вещах мы быстрее, + в каких-то медленнее. Наша производительности обычно +/-10% по + сравнению с другими СУБД.
-
îÁÄÅÖÎÏÓÔØ
+
Надежность
-
íÙ ÐÏÎÉÍÁÌÉ, ÞÔÏ ÎÁÛÁ óõâä ÄÏÌÖÎÁ ÂÙÔØ ÎÁÄÅÖÎÏÊ - ÉÌÉ ÏÎÁ ÎÉÞÅÇÏ ÎÅ ÂÕÄÅÔ ÓÔÏÉÔØ. íÙ ÓÔÁÒÁÅÍÓÑ ×ÙÐÕÓËÁÔØ ÈÏÒÏÛÏ ÐÒÏ×ÅÒÅÎÎÙÊ, - ÓÔÁÂÉÌØÎÙÊ ËÏÄ, ËÏÔÏÒÙÊ ÓÏÄÅÒÖÉÔ ÍÉÎÉÍÕÍ ÏÛÉÂÏË. ëÁÖÄÙÊ ×ÙÐÕÓË - ÐÒÏÈÏÄÉÔ ÓÔÁÄÉÀ ÂÅÔÁ-ÔÅÓÔÉÒÏ×ÁÎÉÑ ÐÏ ËÒÁÊÎÅÊ ÍÅÒÅ × ÔÅÞÅÎÉÉ ÏÄÎÏÇÏ - ÍÅÓÑÃÁ É ÎÁÛÁ ÉÓÔÏÒÉÑ ×ÙÐÕÓËÏ× ÐÏËÁÚÙ×ÁÅÔ ÞÔÏ ÍÙ ÍÏÖÅÍ ÐÒÅÄÏÓÔÁ×ÌÑÔØ - ÓÔÁÂÉÌØÎÙÅ, ÍÏÎÏÌÉÔÎÙÅ ×ÙÐÕÓËÉ, ËÏÔÏÒÙÅ ÇÏÔÏ×Ù Ë ÐÒÏÄÕËÔÉ×ÎÏÍÕ - ÉÓÐÏÌØÚÏ×ÁÎÉÀ. íÙ ×ÅÒÉÍ, ÞÔÏ ÍÙ ÐÒÏÉÚ×ÏÄÉÍ ÐÒÏ×ÅÒËÕ ÎÅ ÈÕÖÅ, - ÞÅÍ Õ ÄÒÕÇÉÈ óõâä.
+
Мы понимали, что наша СУБД должна быть надежной + или она ничего не будет стоить. Мы стараемся выпускать хорошо проверенный, + стабильный код, который содержит минимум ошибок. Каждый выпуск + проходит стадию бета-тестирования по крайней мере в течении одного + месяца и наша история выпусков показывает что мы можем предоставлять + стабильные, монолитные выпуски, которые готовы к продуктивному + использованию. Мы верим, что мы производим проверку не хуже, + чем у других СУБД.

-
ðÏÄÄÅÒÖËÁ
- -
îÁÛ ÓÐÉÓÏË ÒÁÓÓÙÌËÉ ÐÒÅÄÏÓÔÁ×ÌÑÅÔ ×ÏÚÍÏÖÍÏÖÎÏÓÔØ ÏÂÝÅÎÉÑ Ó - ÂÏÌØÛÏÊ ÇÒÕÐÐÏÊ ÒÁÚÒÁÂÏÔÞÉËÏ× É ÐÏÌØÚÏ×ÁÔÅÌÅÊ, ËÏÔÏÒÙÅ ÍÏÇÕÔ ÐÏÍÏÞØ ÒÅÛÉÔØ - ÌÀÂÙÅ ×ÏÚÎÉËÛÉÅ ÐÒÏÂÌÅÍÙ. ÷ ÔÏ ÖÅ ×ÒÅÍÑ, ÍÙ ÎÅ ÇÁÒÁÎÔÉÒÕÅÍ ËÁËÉÅ-ÌÉÂÏ - ÉÓÐÒÁ×ÌÅÎÉÑ, ÎÏ É ÒÁÚÒÁÂÏÔÞÉËÉ ËÏÍÍÅÒÞÅÓËÉÈ óõâä ÎÅ ×ÓÅÇÄÁ - ÄÅÌÁÀÔ ÉÓÐÒÁ×ÌÅÎÉÑ. ðÒÑÍÏÊ ÄÏÓÔÕÐ Ë ÒÁÚÒÁÂÏÔÞÉËÁÍ, ÓÏÏÂÝÅÓÔ×Õ - ÐÏÌØÚÏ×ÁÔÅÌÅÊ, ÒÕËÏ×ÏÄÓÔ×ÁÍ É ÉÓÈÏÄÎÙÍ ÔÅËÓÔÁÍ ÞÁÓÔÏ ÄÅÌÁÀÔ ÐÏÄÄÅÒÖËÕ - PostgreSQL ÐÒÅ×ÏÓÈÏÄÑÝÅÊ ÄÒÕÇÉÅ óõâä. óÕÝÅÓÔ×ÕÅÔ - ËÏÍÍÅÒÞÅÓËÁÑ ÐÏÄÄÅÒÖËÁ ÐÏ ÒÅÚÕÌØÔÁÍ ×ÏÚÎÉËÛÉÈ ÉÎÃÉÄÅÎÔÏ×, ËÏÔÏÒÁÑ - ÄÏÓÔÕÐÎÁ ÄÌÑ ÔÅÈ ËÏÍÕ ÏÎÁ ÎÕÖÎÁ. (óÍÏÔÒÉÔÅ óÅËÃÉÀ 1.7.)
+
Поддержка
+ +
Наш список рассылки предоставляет возможможность общения с + большой группой разработчиков и пользователей, которые могут помочь решить + любые возникшие проблемы. В то же время, мы не гарантируем какие-либо + исправления, но и разработчики коммерческих СУБД не всегда + делают исправления. Прямой доступ к разработчикам, сообществу + пользователей, руководствам и исходным текстам часто делают поддержку + PostgreSQL превосходящей другие СУБД. Существует + коммерческая поддержка по результам возникших инцидентов, которая + доступна для тех кому она нужна. (Смотрите Секцию 1.7.)

-
ãÅÎÁ
+
Цена
-
îÁÛ ÐÒÏÄÕËÔ ÂÅÓÐÌÁÔÅÎ ËÁË ÄÌÑ ËÏÍÍÅÒÞÅÓËÏÇÏ ÔÁË, É ÎÅ ÄÌÑ - ËÏÍÍÅÒÞÅÓËÏÇÏ ÉÓÐÏÌØÚÏ×ÁÎÉÑ. ÷Ù ÍÏÖÅÔÅ ÄÏÂÁ×ÌÑÔØ Ó×ÏÊ ËÏÄ × ÎÁÛ - ÐÒÏÄÕËÔ ÂÅÚ ÏÇÒÁÎÉÞÅÎÉÊ, ÚÁ ÉÓËÌÀÞÅÎÉÅÍ ÔÅÈ, ÞÔÏ ÏÐÉÓÙ×ÁÀÔÓÑ × - ÎÁÛÅÊ ÌÉÃÅÎÚÉÉ ÓÔÉÌÑ BSD, ËÏÔÏÒÁÑ ÐÒÉ×ÅÄÅÎÁ ×ÙÛÅ.
+
Наш продукт бесплатен как для коммерческого так, и не для + коммерческого использования. Вы можете добавлять свой код в наш + продукт без ограничений, за исключением тех, что описываются в + нашей лицензии стиля BSD, которая приведена выше.

-

PostgreSQL ÒÁÚÒÁÂÁÔÙ×ÁÅÔÓÑ ÐÏ ÁÒÈÉÔÅËÔÕÒÅ ËÌÉÅÎÔ/ÓÅÒ×ÅÒ, ËÏÔÏÒÁÑ - ÔÒÅÂÕÅÔ ÏÔÄÅÌØÎÙÈ ÐÒÏÃÅÓÓÏ× ÄÌÑ ËÁÖÄÏÇÏ ËÌÉÅÎÔÁ É ÓÅÒ×ÅÒÁ, Á ÔÁËÖÅ - ÎÅÓËÏÌØËÏ ×ÓÐÏÍÏÇÁÔÅÌØÎÙÈ ÐÒÏÃÅÓÓÏ×. íÎÏÇÉÅ ×ÓÔÒÁÉ×ÁÅÍÙÅ ÁÒÈÉÔÅËÔÕÒÙ - ÍÏÇÕÔ ÓÏÏÔ×ÅÔÓÔ×Ï×ÁÔØ ÔÁËÉÍ ÔÒÅÂÏ×ÁÎÉÑÍ. ïÄÎÁËÏ, ÅÓÌÉ ×ÁÛÁ ×ÓÔÒÁÉ×ÁÅÍÁÑ - ÁÒÈÉÔÅËÔÕÒÁ ÔÒÅÂÕÅÔ ÓÅÒ×ÅÒ ÂÁÚ ÄÁÎÎÙÈ ÄÌÑ ÚÁÐÕÓËÁ ×ÎÕÔÒÉ ÐÒÉËÌÁÄÎÏÇÏ - ÐÒÏÃÅÓÓÁ, ×Ù ÎÅ ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ Postgres É ×ÁÍ ÌÕÞÛÅ ÂÙ ×ÙÂÒÁÔØ - ÄÌÑ ÂÁÚÙ ÄÁÎÎÙÈ ËÁËÏÅ-ÌÉÂÏ ÄÒÕÇÏÅ ÏÂÌÅÇÞÅÎÎÏÅ ÒÅÛÅÎÉÅ.

- -

1.14) âÕÄÅÔ ÌÉ PostgreSQL ÒÁÂÏÔÁÔØ Ó - ÐÏÓÌÅÄÎÉÍÉ ÉÚÍÅÎÅÎÉÑÍÉ, × ÒÁÚÎÙÈ ÓÔÒÁÎÙÈ, ËÁÓÁÀÝÉÍÉÓÑ ÄÎÅ×ÎÏÇÏ ×ÒÅÍÅÎÉ?

- -

éÚÍÅÎÅÎÉÑ × ÓÏÈÒÁÎÅÎÉÉ ÄÎÅ×ÎÏÇÏ ×ÒÅÍÅÎÉ × óûá ×ËÌÀÞÅÎÙ × PostgreSQL ×ÅÒÓÉÉ - 8.0.[4+] É ×Ï ×ÓÅ ÓÌÅÄÕÀÝÉÅ ×ÙÐÕÓËÉ, ÎÁÐÒÉÍÅÒ × 8.1. éÚÍÅÎÅÎÉÑ ÐÏ ëÁÎÁÄÅ - É úÁÐÁÄÎÏÊ á×ÓÔÒÁÌÉÉ ×ËÌÀÞÅÎÙ × 8.0.[10+], 8.1.[6+] É ×ÓÅ ÓÌÅÄÕÀÝÉÅ - ×ÙÐÕÓËÉ. ÷ÙÐÕÓËÉ PostgreSQL ÄÏ 8.0 ÉÓÐÏÌØÚÕÀÔ ÉÎÆÏÒÍÁÃÉÀ Ï ÓÏÈÒÁÎÅÎÉÉ - ÄÎÅ×ÎÏÇÏ ×ÒÅÍÅÎÉ ÉÚ ÂÁÚÙ ÄÁÎÎÙÈ ×ÒÅÍÅÎÎÙÈ ÚÏÎ × ÏÐÅÒÁÃÉÏÎÎÏÊ ÓÉÓÔÅÍÅ.

+

PostgreSQL разрабатывается по архитектуре клиент/сервер, которая + требует отдельных процессов для каждого клиента и сервера, а также + несколько вспомогательных процессов. Многие встраиваемые архитектуры + могут соответствовать таким требованиям. Однако, если ваша встраиваемая + архитектура требует сервер баз данных для запуска внутри прикладного + процесса, вы не можете использовать Postgres и вам лучше бы выбрать + для базы данных какое-либо другое облегченное решение.

+ +

1.14) Будет ли PostgreSQL работать с + последними изменениями, в разных страных, касающимися дневного времени?

+ +

Изменения в сохранении дневного времени в США включены в PostgreSQL версии + 8.0.[4+] и во все следующие выпуски, например в 8.1. Изменения по Канаде + и Западной Австралии включены в 8.0.[10+], 8.1.[6+] и все следующие + выпуски. Выпуски PostgreSQL до 8.0 используют информацию о сохранении + дневного времени из базы данных временных зон в операционной системе.


-

1.15) ëÁË ÍÎÅ ÏÔÐÉÓÁÔØÓÑ ÏÔ ÓÐÉÓËÏ× ÒÁÓÓÙÌËÉ PostgreSQL? - ëÁË ÉÚÂÅÖÁÔØ ÐÏÌÕÞÅÎÉÑ ÄÕÂÌÉÒÕÀÝÉÈ ÓÏÏÂÝÅÎÉÊ?

+

1.15) Как мне отписаться от списков рассылки PostgreSQL? + Как избежать получения дублирующих сообщений?

-

óÔÒÁÎÉÃÁ Страница Majordomo - ÎÁ ÓÁÊÔÅ PostgreSQL ÐÏÚ×ÏÌÑÅÔ ÐÏÄÐÉÓÁÔØÓÑ ÉÌÉ ÏÔÐÉÓÁÔØÓÑ ÏÔ ÌÀÂÏÇÏ ÉÚ ÓÐÉÓËÏ× - ÒÁÓÓÙÌËÉ PostgreSQL. (÷ÁÍ ÍÏÖÅÔ ÐÏÎÁÄÏÂÉÔÓÑ ×ÁÛ ÐÁÒÏÌØ ÄÌÑ Majordomo, ËÏÔÏÒÙÊ - ÏÔÐÒÁ×ÌÑÅÔÓÑ ÎÁ ×ÁÛ E-mail, ÞÔÏÂÙ ×ÏÊÔÉ × ÕÐÒÁ×ÌÅÎÉÅ ×ÁÛÉÍÉ ÐÏÄÐÉÓËÁÍÉ.)

+ на сайте PostgreSQL позволяет подписаться или отписаться от любого из списков + рассылки PostgreSQL. (Вам может понадобится ваш пароль для Majordomo, который + отправляется на ваш E-mail, чтобы войти в управление вашими подписками.)

-

÷ÓÅ ÓÐÉÓËÉ ÒÁÓÓÙÌËÉ PostgreSQL ÎÁÓÔÁÒÉ×ÁÀÔÓÑ ÔÁË, ÞÔÏÂÙ ÇÒÕÐÐÏ×ÏÊ ÏÔ×ÅÔ ÕÈÏÄÉÌ - ÎÁ ÁÄÒÅÓ ÓÐÉÓËÁ É ÎÁ ÁÄÒÅÓ Á×ÔÏÒÁ ÓÏÏÂÝÅÎÉÑ. ôÁË ÓÄÅÌÁÎÏ, ÞÔÏÂÙ ÐÏÌØÚÏ×ÁÔÅÌÉ - ÐÏÌÕÞÁÌÉ ÏÔ×ÅÔÙ ÎÁ E-mail ËÁË ÍÏÖÎÏ ÂÙÓÔÒÅÅ. åÓÌÉ ×Ù ÎÅ ÈÏÔÉÔÅ ÐÏÌÕÞÁÔØ ÄÕÂÌÉÒÕÀÝÉÅ - E-mail ÓÏÏÂÝÅÎÉÑ ÉÚ ÓÐÉÓËÁ, × ÓÌÕÞÁÑÈ ËÏÇÄÁ ×Ù ÕÖÅ ÐÏÌÕÞÉÌÉ ÜÔÉ ÓÏÏÂÝÅÎÉÑ ÎÁÐÒÑÍÕÀ, - ÕÓÔÁÎÏ×ÉÔÅ ÆÌÁÖÏË eliminatecc ÎÁ ÓÔÒÁÎÉÃÅ Change Settings × - Majordomo. ÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÉÚÂÅÖÁÔØ ÐÏÌÕÞÅÎÉÑ ËÏÐÉÊ Ó×ÏÉÈ ÓÏÏÂÝÅÎÉÊ ÄÌÑ ÓÁÍÏÇÏ ÓÅÂÑ, - ÅÓÌÉ ÓÎÉÍÉÔÅ ÆÌÁÖÏË selfcopy.

+

Все списки рассылки PostgreSQL настариваются так, чтобы групповой ответ уходил + на адрес списка и на адрес автора сообщения. Так сделано, чтобы пользователи + получали ответы на E-mail как можно быстрее. Если вы не хотите получать дублирующие + E-mail сообщения из списка, в случаях когда вы уже получили эти сообщения напрямую, + установите флажок eliminatecc на странице Change Settings в + Majordomo. Вы также можете избежать получения копий своих сообщений для самого себя, + если снимите флажок selfcopy.


-

÷ÏÐÒÏÓÙ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÐÏ ËÌÉÅÎÔÓËÏÊ ÞÁÓÔÉ

+

Вопросы пользователей по клиентской части

-

2.1) ëÁËÉÅ ÉÎÔÅÒÆÅÊÓÙ ÅÓÔØ ÄÌÑ PostgreSQL?

+

2.1) Какие интерфейсы есть для PostgreSQL?

-

õÓÔÁÎÏ×ËÁ PostgreSQL ×ËÌÀÞÁÅÔ ÔÏÌØËÏ C É ×ÓÔÒÏÅÎÎÙÊ - (embedded) C ÉÎÔÅÒÆÅÊÓÙ. ÷ÓÅ ÄÒÕÇÉÅ ÉÎÔÅÒÆÅÊÓÙ - Ñ×ÌÑÀÔÓÑ ÎÅÚÁ×ÉÓÉÍÙÍÉ ÐÒÏÅËÔÁÍÉ É ÚÁÇÒÕÖÁÀÔÓÑ ÏÔÄÅÌØÎÏ; ÓÁÍÏÓÔÏÑÔÅÌØÎÏÓÔØ - ÐÒÏÅËÔÏ× ÐÏÚ×ÏÌÑÅÔ ÉÍ ÏÒÇÁÎÉÚÏ×ÁÔØ ÓÏÂÓÔ×ÅÎÎÏÅ ÒÁÓÐÉÓÁÎÉÅ ×ÙÐÕÓËÏ× - ÎÏ×ÙÈ ×ÅÒÓÉÊ É ÉÍÅÔØ ÓÏÂÓÔ×ÅÎÎÕÀ ËÏÍÁÎÄÕ ÒÁÚÒÁÂÏÔÞÉËÏ×.

+

Установка PostgreSQL включает только C и встроенный + (embedded) C интерфейсы. Все другие интерфейсы + являются независимыми проектами и загружаются отдельно; самостоятельность + проектов позволяет им организовать собственное расписание выпусков + новых версий и иметь собственную команду разработчиков.

-

îÅËÏÔÏÒÙÅ ÑÚÙËÉ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ, ÔÁËÉÅ ËÁË PHP - ×ËÌÀÞÁÀÔ × ÓÅÂÑ ÉÎÔÅÒÆÅÊÓ Ë PostgreSQL. éÎÔÅÒÆÅÊÓÙ ÄÌÑ ÔÁËÉÈ ÑÚÙËÏ× - ËÁË Perl, TCL, Python É ÍÎÏÇÉÈ ÄÒÕÇÉÈ, ÄÏÓÔÕÐÎÙ ÎÁ +

Некоторые языки программирования, такие как PHP + включают в себя интерфейс к PostgreSQL. Интерфейсы для таких языков + как Perl, TCL, Python и многих других, доступны на http://pgfoundry.org.

-

2.2) ëÁËÉÅ ÉÎÓÔÒÕÍÅÎÔÙ ÓÕÝÅÓÔ×ÕÀÔ ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ - PostgreSQL ÞÅÒÅÚ Web?

+

2.2) Какие инструменты существуют для использования + PostgreSQL через Web?

-

ðÒÅËÒÁÓÎÏÅ ××ÅÄÅÎÉÅ ×Ï ×ÚÁÉÍÏÄÅÊÓÔ×ÉÅ ÂÁÚ ÄÁÎÎÙÈ É Web ÍÏÖÎÏ ÎÁÊÔÉ ÎÁ: +

Прекрасное введение во взаимодействие баз данных и Web можно найти на: http://www.webreview.com

-

äÌÑ ÉÎÔÅÇÒÁÃÉÉ Ó Web, PHP - http://www.php.net Ñ×ÌÑÅÔÓÑ ÎÅÐÌÏÈÉÍ ÉÎÔÅÒÆÅÊÓÏÍ.

+

Для интеграции с Web, PHP + http://www.php.net является неплохим интерфейсом.

-

÷ ÓÌÏÖÎÙÈ ÓÌÕÞÁÑÈ, ÍÎÏÇÉÅ ÐÏÌØÚÕÀÔÓÑ Perl É DBD::Pg Ó CGI.pm - ÉÌÉ mod_perl.

+

В сложных случаях, многие пользуются Perl и DBD::Pg с CGI.pm + или mod_perl.

-

2.3) åÓÔØ ÌÉ Õ PostgreSQL ÇÒÁÆÉÞÅÓËÉÊ ÉÎÔÅÒÆÅÊÓ - ÐÏÌØÚÏ×ÁÔÅÌÑ?

+

2.3) Есть ли у PostgreSQL графический интерфейс + пользователя?

-

äÌÑ PostgreSQL ÓÕÝÅÓÔ×ÕÅÔ ÂÏÌØÛÏÅ ËÏÌÉÞÅÓÔ×Ï ÉÎÓÔÒÕÍÅÎÔÏ× Ó - ÇÒÁÆÉÞÅÓËÉÍ ÉÎÔÅÒÆÅÊÓÏÍ ËÁË ËÏÍÍÅÒÞÅÓËÉÈ, ÔÁË É ÏÔËÒÙÔÙÈ. ðÏÄÒÏÂÎÏÓÔÉ - ÍÏÖÎÏ ÎÁÊÔÉ × - äÏËÕÍÅÎÔÁÃÉÉ ÓÏÏÂÝÅÓÔ×Á ÄÌÑ GUI ÉÓÔÒÕÍÅÎÔÏ× PostgreSQL

+

Для PostgreSQL существует большое количество инструментов с + графическим интерфейсом как коммерческих, так и открытых. Подробности + можно найти в + Документации сообщества для GUI иструментов PostgreSQL


-

÷ÏÐÒÏÓÙ ÁÄÍÉÎÉÓÔÒÉÒÏ×ÁÎÉÑ

+

Вопросы администрирования

-

3.1) ëÁË ÍÎÅ ÕÓÔÁÎÏ×ÉÔØ PostgreSQL × ÍÅÓÔÏ ÏÔÌÉÞÎÏÅ - ÏÔ /usr/local/pgsql?

+

3.1) Как мне установить PostgreSQL в место отличное + от /usr/local/pgsql?

-

úÁÄÁÊÔÅ ÏÐÃÉÀ --prefix ËÏÇÄÁ ÚÁÐÕÓËÁÅÔÅ configure.

+

Задайте опцию --prefix когда запускаете configure.

-

3.2) ëÁË ÍÎÅ ÕÐÒÁ×ÌÑÔØ ÓÏÅÄÉÎÅÎÉÑÍÉ ÏÔ ÄÒÕÇÉÈ - ËÏÍÐØÀÔÅÒÏ×?

+

3.2) Как мне управлять соединениями от других + компьютеров?

-

ðÏ ÕÍÏÌÞÁÎÉÀ, PostgreSQL ÒÁÚÒÅÛÁÅÔ ÔÏÌØËÏ ÓÏÅÄÉÎÅÎÉÑ ÎÁ ÌÏËÁÌØÎÏÊ - ÍÁÛÉÎÅ ÞÅÒÅÚ ÓÏËÅÔÙ ÄÏÍÅÎÁ Unix ÉÌÉ TCP/IP ÓÏÅÄÉÎÅÎÉÑ. äÌÑ ÔÏÇÏ, ÞÔÏÂÙ - ÄÒÕÇÉÅ ÍÁÛÉÎÙ ÓÍÏÇÌÉ ÐÏÄËÌÀÞÉÔØÓÑ Ë ÂÁÚÅ ×Ù ÄÏÌÖÎÙ ÉÚÍÅÎÉÔØ - listen_addresses × postgresql.conf, ÒÁÚÒÅÛÉÔØ - host-Á×ÔÏÒÉÚÁÃÉÑ × ÆÁÊÌÅ $PGDATA/pg_hba.conf É ÐÅÒÅÓÔÁÒÔÏ×ÁÔØ - ÓÅÒ×ÅÒ óõâä.

+

По умолчанию, PostgreSQL разрешает только соединения на локальной + машине через сокеты домена Unix или TCP/IP соединения. Для того, чтобы + другие машины смогли подключиться к базе вы должны изменить + listen_addresses в postgresql.conf, разрешить + host-авторизация в файле $PGDATA/pg_hba.conf и перестартовать + сервер СУБД.

-

3.3) ëÁËÉÅ ÎÁÓÔÒÏÊËÉ ÍÎÅ ÎÕÖÎÏ ÓÄÅÌÁÔØ ÄÌÑ ÕÌÕÞÛÅÎÉÑ - ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ?

+

3.3) Какие настройки мне нужно сделать для улучшения + производительности?

-

óÕÝÅÓÔ×ÕÅÔ ÔÒÉ ÇÌÁ×ÎÙÈ ÏÂÌÁÓÔÉ, ËÏÔÏÒÙÅ ÐÏÔÅÎÃÉÁÌØÎÏ ÍÏÇÕÔ - Õ×ÅÌÉÞÉÔØ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ:

+

Существует три главных области, которые потенциально могут + увеличить производительность:

-
éÚÍÅÎÅÎÉÅ ÚÁÐÒÏÓÁ
-
üÔÏ ÏÚÎÁÞÁÅÔ ÍÏÄÉÆÉËÁÃÉÀ ÚÁÐÒÏÓÏ× ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÌÕÞÛÅÊ - ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ: +
Изменение запроса
+
Это означает модификацию запросов для получения лучшей + производительности:
    -
  • óÏÚÄÁÎÉÅ ÉÎÄÅËÓÏ×, ×ËÌÀÞÁÑ ÉÎÄÅËÓÙ ×ÙÒÁÖÅÎÉÊ É ÞÁÓÔÉÞÎÙÅ ÉÎÄÅËÓÙ
  • -
  • éÓÐÏÌØÚÏ×ÁÎÉÅ COPY ×ÍÅÓÔÏ ÍÎÏÖÅÓÔ×Á INSERT
  • -
  • çÒÕÐÐÉÒÏ×ËÁ ÎÅÓËÏÌØËÉÈ ÏÐÅÒÁÔÏÒÏ× × ÅÄÉÎÕÀ ÔÒÁÎÚÁËÃÉÀ ÄÌÑ - ÕÍÅÎØÛÅÎÉÑ ÎÁÇÒÕÚËÉ ÐÒÉ ×ÙÐÏÌÎÅÎÉÉ ÚÁ×ÅÒÛÅÎÉÑ ÔÒÁÎÚÁËÃÉÉ
  • -
  • éÓÐÏÌØÚÏ×ÁÎÉÅ CLUSTER, ËÏÇÄÁ ÉÚ ÉÎÄÅËÓÁ ÂÅÒ£ÔÓÑ - ÍÎÏÖÅÓÔ×Ï ÓÔÒÏË
  • -
  • éÓÐÏÌØÚÏ×ÁÎÉÅ LIMIT ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ×ÏÚ×ÒÁÝÁÌÁÓØ - ÔÏÌØËÏ ÞÁÓÔØ ×Ù×ÏÄÁ ÏÔ ÚÁÐÒÏÓÁ
  • -
  • éÓÐÏÌØÚÏ×ÁÎÉÅ ðÏÄÇÏÔÏ×ÌÅÎÎÙÈ (Prepared) ÚÁÐÒÏÓÏ×
  • -
  • éÓÐÏÌØÚÏ×ÁÎÉÅ ANALYZE ÄÌÑ ÏÂÓÌÕÖÉ×ÁÎÉÑ ÓÔÁÔÉÓÔÉËÉ - ÏÐÔÉÍÉÚÁÔÏÒÁ
  • -
  • òÅÇÕÌÑÒÎÏÅ ÉÓÐÏÌØÚÏ×ÁÎÉÅ VACUUM ÉÌÉ pg_autovacuum
  • -
  • õÄÁÌÅÎÉÅ ÉÎÄÅËÓÏ× ×Ï ×ÒÅÍÑ ÂÏÌØÛÉÈ ÉÚÍÅÎÅÎÉÊ ÄÁÎÎÙÈ
  • +
  • Создание индексов, включая индексы выражений и частичные индексы
  • +
  • Использование COPY вместо множества INSERT
  • +
  • Группировка нескольких операторов в единую транзакцию для + уменьшения нагрузки при выполнении завершения транзакции
  • +
  • Использование CLUSTER, когда из индекса берётся + множество строк
  • +
  • Использование LIMIT для того, чтобы возвращалась + только часть вывода от запроса
  • +
  • Использование Подготовленных (Prepared) запросов
  • +
  • Использование ANALYZE для обслуживания статистики + оптимизатора
  • +
  • Регулярное использование VACUUM или pg_autovacuum
  • +
  • Удаление индексов во время больших изменений данных


-
îÁÓÔÒÏÊËÁ ÓÅÒ×ÅÒÁ
+
Настройка сервера
-
îÅËÏÔÏÒÙÅ ÕÓÔÁÎÏ×ËÉ × postgresql.conf ×ÌÉÑÀÔ ÎÁ - ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ. ðÏÄÒÏÂÎÙÊ ÐÏÌÎÙÊ ÓÐÉÓÏË ÕÓÔÁÎÏ×ÏË ÓÍ. × +
Некоторые установки в postgresql.conf влияют на + производительность. Подробный полный список установок см. в Administration Guide/Server Run-time Environment/Run-time Configuration, - Á ËÏÍÍÅÎÔÁÒÉÉ ÓÍ. × + а комментарии см. в http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html - É + и http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html.

-
÷ÙÂÏÒ "ÖÅÌÅÚÁ" - ÁÐÐÁÒÁÔÎÏÇÏ ÏÂÅÓÐÅÞÅÎÉÑ
+
Выбор "железа" - аппаратного обеспечения
-
÷ÌÉÑÎÉÅ "ÖÅÌÅÚÁ" ÎÁ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ ÐÏÄÒÏÂÎÏ ÏÐÉÓÁÎÏ × +
Влияние "железа" на производительность подробно описано в - http://www.powerpostgresql.com/PerfList/ É + http://www.powerpostgresql.com/PerfList/ и http://momjian.us/main/writings/pgsql/hw_performance/index.html.
@@ -605,59 +605,59 @@
-

3.4) ëÁËÉÅ ×ÏÚÍÏÖÎÏÓÔÉ ÄÌÑ ÏÔÌÁÄËÉ ÅÓÔØ × - ÎÁÌÉÞÉÉ?

+

3.4) Какие возможности для отладки есть в + наличии?

-

åÓÔØ ÍÎÏÖÅÓÔ×Ï ÕÓÔÁÎÏ×ÏË × ÎÁÓÔÒÏÊËÁÈ ÓÅÒ×ÅÒÁ, ÎÁÞÉÎÁÀÝÉÈÓÑ - ÎÁ log_* ÎÁ Есть множество установок в настройках сервера, начинающихся + на log_* на http://www.postgresql.org/docs/current/interactive/runtime-config-logging.html, - ÐÏÚ×ÏÌÑÀÝÉÈ ÐÒÏÔÏËÏÌÉÒÏ×ÁÔØ ÚÁÐÒÏÓÙ É ÓÔÁÔÉÓÔÉËÕ ÒÁÂÏÔÙ ÐÒÏÃÅÓÓÁ, - ËÏÔÏÒÁÑ ÏÞÅÎØ ÐÏÌÅÚÎÁ ÄÌÑ ÏÔÌÁÄËÉ É ÉÚÍÅÒÅÎÉÑ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ.

+ позволяющих протоколировать запросы и статистику работы процесса, + которая очень полезна для отладки и измерения производительности.

-

3.5) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÓÏÏÂÝÅÎÉÅ "Sorry, too - many clients" ËÏÇÄÁ ÐÙÔÁÀÓØ ÐÏÄËÌÀÞÉÔØÓÑ Ë ÂÁÚÅ?

+

3.5) Почему я получаю сообщение "Sorry, too + many clients" когда пытаюсь подключиться к базе?

-

÷Ù ÄÏÓÔÉÇÌÉ ÕÓÔÁÎÏ×ÌÅÎÎÏÇÏ ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÇÒÁÎÉÞÅÎÉÑ × 100 ÓÅÓÓÉÊ - ÐÏÄËÌÀÞÅÎÉÑ Ë ÂÁÚÅ ÄÁÎÎÙÈ. ÷ÁÍ ÎÅÏÂÈÏÄÉÍÏ Õ×ÅÌÉÞÉÔØ ÌÉÍÉÔ ÎÁ ËÏÌÉÞÅÓÔ×Ï - ËÏÎËÕÒÅÎÔÎÙÈ backend ÐÒÏÃÅÓÓÏ× ÄÌÑ ×ÁÛÅÇÏ ÓÅÒ×ÅÒÁ âä, - ÉÚÍÅÎÉ× ÚÎÁÞÅÎÉÅ max_connections × ÆÁÊÌÅ postgresql.conf - É ÐÅÒÅÓÔÁÒÔÏ×ÁÔØ ÓÅÒ×ÅÒ âä.

+

Вы достигли установленного по умолчанию ограничения в 100 сессий + подключения к базе данных. Вам необходимо увеличить лимит на количество + конкурентных backend процессов для вашего сервера БД, + изменив значение max_connections в файле postgresql.conf + и перестартовать сервер БД.

-

3.6) ëÁË ×ÙÐÏÌÎÉÔØ ÏÂÎÏ×ÌÅÎÉÅ PostgreSQL?

+

3.6) Как выполнить обновление PostgreSQL?

-

óÍ. ÉÎÆÏÒÍÁÃÉÀ Ï ÏÂÎÏ×ÌÅÎÉÉ × Ð¡Ð¼. информацию об обновлении в http://www.postgresql.org/support/versioning - É ÓÐÅÃÉÁÌØÎÙÅ ÉÎÓÔÒÕËÃÉÉ × + и специальные инструкции в http://www.postgresql.org/docs/current/static/install-upgrading.html.

-

3.7) ëÁËÏÅ ËÏÍÐØÀÔÅÒÎÏÅ "ÖÅÌÅÚÏ" Ñ ÄÏÌÖÅÎ - ÉÓÐÏÌØÚÏ×ÁÔØ?

+

3.7) Какое компьютерное "железо" я должен + использовать?

-

ðÏÓËÏÌØËÕ "ÖÅÌÅÚÏ" ÐÅÒÓÏÎÁÌØÎÙÈ ËÏÍÐØÀÔÅÒÏ× Ñ×ÌÑÅÔÓÑ ÎÁÉÂÏÌÅÅ - ÓÏ×ÍÅÓÔÉÍÙÍ, ÌÀÄÉ ÓËÌÏÎÎÙ ×ÅÒÉÔØ, ÞÔÏ ÔÁËÏÅ "ÖÅÌÅÚÏ" ÉÍÅÅÔ ÏÄÉÎÁËÏ×ÏÅ - ËÁÞÅÓÔ×Ï. üÔÏ ÎÅ ÔÁË. ðÁÍÑÔØ ECC, SCSI É ËÁÞÅÓÔ×ÅÎÎÙÅ ÍÁÔÅÒÉÎÓËÉÅ ÐÌÁÔÙ - Ñ×ÌÑÀÔÓÑ ÂÏÌÅÅ ÎÁÄ£ÖÎÙÍÉ É ÉÍÅÀÔ ÂÏÌÅÅ ÌÕÞÛÕÀ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ, ÞÅÍ - ÍÅÎÅÅ ÄÏÒÏÇÏÅ "ÖÅÌÅÚÏ". PostgreSQL ÂÕÄÅÔ ÒÁÂÏÔÁÔØ ÎÁ ÌÀÂÏÍ "ÖÅÌÅÚÅ", - ÎÏ ÅÓÌÉ ÄÌÑ ×ÁÓ ×ÁÖÎÙ ÎÁÄ£ÖÎÏÓÔØ É ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ, ÔÏ Ó ×ÁÛÅÊ ÓÔÏÒÏÎÙ - ÂÕÄÅÔ ÍÕÄÒÏ ÐÏÓÔÁ×ÉÔØ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÅ "ÖÅÌÅÚÏ". ïÂÓÕÄÉÔØ ÒÁÚÎÏÅ "ÖÅÌÅÚÏ" - ÍÏÖÎÏ × ÎÁÛÉÈ ÓÐÉÓËÁÈ ÒÁÓÓÙÌËÉ.

+

Поскольку "железо" персональных компьютеров является наиболее + совместимым, люди склонны верить, что такое "железо" имеет одинаковое + качество. Это не так. Память ECC, SCSI и качественные материнские платы + являются более надёжными и имеют более лучшую производительность, чем + менее дорогое "железо". PostgreSQL будет работать на любом "железе", + но если для вас важны надёжность и производительность, то с вашей стороны + будет мудро поставить соответствующее "железо". Обсудить разное "железо" + можно в наших списках рассылки.


-

÷ÏÐÒÏÓÙ ÜËÓÐÌÕÁÔÁÃÉÉ

+

Вопросы эксплуатации

-

4.1) ëÁË ×ÙÐÏÌÎÉÔØ SELECT ÔÏÌØËÏ - ÄÌÑ ÎÅÓËÏÌØËÉÈ ÐÅÒ×ÙÈ ÓÔÒÏÞÅË ÚÁÐÒÏÓÁ? ðÒÏÉÚ×ÏÌØÎÏÊ ÓÔÒÏËÉ?

+

4.1) Как выполнить SELECT только + для нескольких первых строчек запроса? Произвольной строки?

-

äÌÑ ÐÏÌÕÞÅÎÉÑ ÔÏÌØËÏ ÎÅÓËÏÌØËÉÈ ÓÔÒÏË, ÅÓÌÉ ×Ù ÚÎÁÅÔÅ ÉÈ ËÏÌÉÞÅÓÔ×Ï - ÎÁ ÍÏÍÅÎÔ ×ÙÐÏÌÎÅÎÉÑ SELECT ÉÓÐÏÌØÚÕÊÔÅ LIMIT.

- åÓÌÉ ÅÓÔØ ËÁËÏÊ-ÌÉÂÏ ÉÎÄÅËÓ, ËÏÔÏÒÙÊ ÓÏ×ÐÁÄÁÅÔ Ó ORDER BY, - ÔÏ ×ÏÚÍÏÖÎÏ, ÞÔÏ ×ÅÓØ ÚÁÐÒÏÓ ×ÙÐÏÌÎÅÎ É ÎÅ ÂÕÄÅÔ. åÓÌÉ ×Ù ÎÅ ÚÎÁÅÔÅ - ËÏÌÉÞÅÓÔ×Á ÎÅÏÂÈÏÄÉÍÙÈ ÓÔÒÏË ÎÁ ÍÏÍÅÎÔ ×ÙÐÏÌÎÅÎÉÑ SELECT, - ÉÓÐÏÌØÚÕÊÔÅ ËÕÒÓÏÒ É FETCH.

+

Для получения только нескольких строк, если вы знаете их количество + на момент выполнения SELECT используйте LIMIT.

+ Если есть какой-либо индекс, который совпадает с ORDER BY, + то возможно, что весь запрос выполнен и не будет. Если вы не знаете + количества необходимых строк на момент выполнения SELECT, + используйте курсор и FETCH.

To SELECT a random row, use:

    SELECT col
@@ -667,37 +667,37 @@
 
-

4.2) ëÁË ÍÎÅ ÎÁÊÔÉ ËÁËÉÅ ÔÁÂÌÉÃÙ, ÉÎÄÅËÓÙ, - ÂÁÚÙ ÄÁÎÎÙÈ É ÐÏÌØÚÏ×ÁÔÅÌÉ ÓÕÝÅÓÔ×ÕÀÔ? ëÁË ÍÎÅ Õ×ÉÄÅÔØ ÚÁÐÒÏÓÙ, - ËÏÔÏÒÙÅ ÉÓÐÏÌØÚÕÅÔ psql ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÜÔÏÊ ÉÎÆÏÒÍÁÃÉÉ?

- -

þÔÏÂÙ ÐÒÏÓÍÁÔÒÉ×ÁÔØ ÔÁÂÌÉÃÙ × psql, ÉÓÐÏÌØÚÕÊÔÅ ËÏÍÁÎÄÕ \dt. - ðÏÌÎÙÊ ÓÐÉÓÏË ËÏÍÁÎÄ × psql ×Ù ÍÏÖÅÔÅ ÐÏÌÕÞÉÔØ, ÉÓÐÏÌØÚÕÑ \?. - ëÒÏÍÅ ÔÏÇÏ, ×Ù ÍÏÖÅÔÅ ÐÏÓÍÏÔÒÅÔØ ÉÓÈÏÄÎÙÊ ËÏÄ psql × ÆÁÊÌÅ - pgsql/src/bin/psql/describe.c. ïÎ ÓÏÄÅÒÖÉÔ ËÏÍÁÎÄÙ - SQL ËÏÔÏÒÙÅ ÇÅÎÅÒÉÒÕÀÔÓÑ ÐÒÉ ××ÏÄÅ × psql ËÏÍÁÎÄ, - ÎÁÞÉÎÁÀÝÉÈÓÑ Ó ÏÂÒÁÔÎÏÊ ËÏÓÏÊ ÞÅÒÔÙ. ÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÚÁÐÕÓÔÉÔØ - psql Ó ÏÐÃÉÅÊ -E ÔÁË, ÞÔÏÂÙ ÜÔÁ ÐÒÏÇÒÁÍÍÁ ×ÙÄÁ×ÁÌÁ - ÚÁÐÒÏÓÙ, ËÏÔÏÒÙÅ ÏÎÁ ÉÓÐÏÌØÚÕÅÔ ÄÌÑ ×ÙÐÏÌÎÅÎÉÑ ÚÁÄÁÎÎÙÈ ×ÁÍÉ - ËÏÍÁÎÄ. PostgreSQL ÔÁËÖÅ ÐÒÅÄÏÓÔÁ×ÌÑÅÔ SQL - ÓÏ×ÍÅÓÔÉÍÙÊ Ó INFORMATION SCHEMA ÉÎÔÅÒÆÅÊÓ, Ó ÐÏÍÏÝØÀ ËÏÔÏÒÏÇÏ, ×Ù - ÍÏÖÅÔÅ ÓÆÏÒÍÉÒÏ×ÁÔØ ÚÁÐÒÏÓ ÎÁ ÐÏÌÕÞÅÎÉÅ ÉÎÆÏÒÍÁÃÉÉ Ï ÂÁÚÅ ÄÁÎÎÙÈ.

+

4.2) Как мне найти какие таблицы, индексы, + базы данных и пользователи существуют? Как мне увидеть запросы, + которые использует psql для получения этой информации?

+ +

Чтобы просматривать таблицы в psql, используйте команду \dt. + Полный список команд в psql вы можете получить, используя \?. + Кроме того, вы можете посмотреть исходный код psql в файле + pgsql/src/bin/psql/describe.c. Он содержит команды + SQL которые генерируются при вводе в psql команд, + начинающихся с обратной косой черты. Вы также можете запустить + psql с опцией -E так, чтобы эта программа выдавала + запросы, которые она использует для выполнения заданных вами + команд. PostgreSQL также предоставляет SQL + совместимый с INFORMATION SCHEMA интерфейс, с помощью которого, вы + можете сформировать запрос на получение информации о базе данных.

-

ôÁËÖÅ ÓÕÝÅÓÔ×ÕÀÔ ÓÉÓÔÅÍÎÙÅ ÔÁÂÌÉÃÙ, ÎÁÞÉÎÁÀÝÉÅÓÑ Ó pg_.

+

Также существуют системные таблицы, начинающиеся с pg_.

-

éÓÐÏÌØÚÕÊÔÅ psql -l ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÓÐÉÓËÁ ×ÓÅÈ ÂÁÚ ÄÁÎÎÙÈ.

+

Используйте psql -l для получения списка всех баз данных.

-

ôÁËÖÅ ÐÏÓÍÏÔÒÉÔÅ ÆÁÊÌ pgsql/src/tutorial/syscat.source. - ïÎ ÐÏËÁÚÙ×ÁÅÔ ÍÎÏÇÉÅ ÉÚ ÏÐÅÒÁÔÏÒÏ× SELECT ÎÅÏÂÈÏÄÉÍÙÈ - ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÉÎÆÏÒÍÁÃÉÉ ÉÚ ÓÉÓÔÅÍÎÙÈ ÔÁÂÌÉà ÂÁÚÙ ÄÁÎÎÙÈ.

+

Также посмотрите файл pgsql/src/tutorial/syscat.source. + Он показывает многие из операторов SELECT необходимых + для получения информации из системных таблиц базы данных.

-

4.3) ëÁË ÉÚÍÅÎÉÔØ ÔÉÐ ÄÁÎÎÙÈ ËÏÌÏÎËÉ?

+

4.3) Как изменить тип данных колонки?

-

÷ 8.0 É ÂÏÌÅÅ ÐÏÚÄÎÉÈ ×ÅÒÓÉÑÈ, ÉÚÍÅÎÅÎÉÅ ÔÉÐÁ ËÏÌÏÎËÉ ×ÙÐÏÌÎÑÅÔÓÑ - ÏÞÅÎØ ÌÅÇËÏ ÞÅÒÅÚ ALTER TABLE ALTER COLUMN TYPE.

+

В 8.0 и более поздних версиях, изменение типа колонки выполняется + очень легко через ALTER TABLE ALTER COLUMN TYPE.

-

÷ ÂÏÌÅÅ ÒÁÎÎÉÈ ×ÅÒÓÉÑÈ ÓÄÅÌÁÊÔÅ ÔÁË:

+

В более ранних версиях сделайте так:

     BEGIN;
     ALTER TABLE tab ADD COLUMN new_col new_data_type;
@@ -706,212 +706,212 @@
     COMMIT;
 
-

4.4) ëÁËÏ×Ù ÍÁËÓÉÍÁÌØÎÙÅ ÒÁÚÍÅÒÙ ÄÌÑ ÓÔÒÏË × ÔÁÂÌÉÃÅ, - ÔÁÂÌÉÃ É ÂÁÚÙ ÄÁÎÎÙÈ?

+

4.4) Каковы максимальные размеры для строк в таблице, + таблиц и базы данных?

-

óÕÝÅÓÔ×ÕÀÔ ÓÌÅÄÕÀÝÉÅ ÏÇÒÁÎÉÞÅÎÉÑ:

+

Существуют следующие ограничения:

- - + + - + - + - + - - + + - - + + - - + +
íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÂÁÚÙ?ÎÅÏÇÒÁÎÉÞÅÎ (ÓÕÝÅÓÔ×ÕÀÔ ÂÁÚÙ ÎÁ 32 TB)Максимальный размер базы?неограничен (существуют базы на 32 TB)
íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÔÁÂÌÉÃÙ?Максимальный размер таблицы? 32 TB
íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÓÔÒÏËÉ?Максимальный размер строки? 400 Gb
íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÐÏÌÑ?Максимальный размер поля? 1 GB
íÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÓÔÒÏË × ÔÁÂÌÉÃÅ?ÎÅÏÇÒÁÎÉÞÅÎÏМаксимальное количество строк в таблице?неограничено
íÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ËÏÌÏÎÏË × ÔÁÂÌÉÃÅ?250-1600 × ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÔÉÐÁМаксимальное количество колонок в таблице?250-1600 в зависимости от типа
íÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÉÎÄÅËÓÏ× × ÔÁÂÌÉÃÅ?ÎÅÏÇÒÁÎÉÞÅÎÏМаксимальное количество индексов в таблице?неограничено

-

òÁÚÕÍÅÅÔÓÑ, ÐÏÎÑÔÉÅ "ÎÅÏÇÒÁÎÉÞÅÎÏ" ÎÁ ÓÁÍÏÍ ÄÅÌÅ ÏÇÒÁÎÉÞÉ×ÁÅÔÓÑ - ÄÏÓÔÕÐÎÙÍ ÄÉÓËÏ×ÙÍ ÐÒÏÓÔÒÁÎÉÓÔ×ÏÍ É ÒÁÚÍÅÒÁÍÉ ÐÁÍÑÔÉ/Ó×ÏÐÐÉÎÇÁ. - ëÏÇÄÁ ÚÎÁÞÅÎÉÑ ÐÅÒÅÞÉÓÌÅÎÎÙÅ ×ÙÛÅ ÎÅÏÐÒÁ×ÄÁÎÏ ÂÏÌØÛÉÅ, ÍÏÖÅÔ - ÐÏÓÔÒÁÄÁÔØ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ.

- -

íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÔÁÂÌÉÃÙ × 32 TB ÎÅ ÔÒÅÂÕÅÔ ÞÔÏÂÙ ÏÐÅÒÁÃÉÏÎÎÁÑ - ÓÉÓÔÅÍÁ ÐÏÄÄÅÒÖÉ×ÁÌÁ ÆÁÊÌÙ ÂÏÌØÛÉÈ ÒÁÚÍÅÒÏ×. âÏÌØÛÉÅ ÔÁÂÌÉÃÙ ÈÒÁÎÑÔÓÑ - ËÁË ÍÎÏÖÅÓÔ×Ï ÆÁÊÌÏ× ÒÁÚÍÅÒÏÍ × 1 GB, ÔÁË ÞÔÏ ÏÇÒÁÎÉÞÅÎÉÑ, ËÏÔÏÒÙÅ - ÎÁËÌÁÄÙ×ÁÅÔ ÆÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ ÎÅ ×ÁÖÎÙ.

- -

íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÔÁÂÌÉÃÙ É ÍÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ËÏÌÏÎÏË - ÍÏÇÕÔ ÂÙÔØ Õ×ÅÌÉÞÅÎÙ × ÞÅÔÙÒÅ ÒÁÚÁ, ÅÓÌÉ ÒÁÚÍÅÒ ÂÌÏËÁ ÐÏ ÕÍÏÌÞÁÎÉÀ ÂÕÄÅÔ - Õ×ÅÌÉÞÅÎ ÄÏ 32k.

+

Разумеется, понятие "неограничено" на самом деле ограничивается + доступным дисковым пространиством и размерами памяти/своппинга. + Когда значения перечисленные выше неоправдано большие, может + пострадать производительность.

+ +

Максимальный размер таблицы в 32 TB не требует чтобы операционная + система поддерживала файлы больших размеров. Большие таблицы хранятся + как множество файлов размером в 1 GB, так что ограничения, которые + накладывает файловая система не важны.

+ +

Максимальный размер таблицы и максимальное количество колонок + могут быть увеличены в четыре раза, если размер блока по умолчанию будет + увеличен до 32k.

-

óÕÝÅÓÔ×ÕÅÔ ÏÇÒÁÎÉÞÅÎÉÅ, ÐÏ ËÏÔÏÒÏÍÕ ÉÎÄÅËÓÙ ÎÅ ÍÏÇÕÔ ÓÏÚÄÁ×ÁÔØÓÑ ÄÌÑ - ËÏÌÏÎÏË ÄÌÉÎÎÅÅ ÞÅÍ 2,000 ÓÉÍ×ÏÌÏ×. ë ÓÞÁÓÔØÀ ÔÁËÉÅ ÉÎÄÅËÓÙ ×ÒÑÄ ÌÉ - ÄÅÊÓÔ×ÉÔÅÌØÎÏ ËÏÍÕ-ÔÏ ÎÕÖÎÙ. õÎÉËÁÌØÎÏÓÔØ ÇÁÒÁÎÔÉÒÕÅÔÓÑ ÎÁÉÌÕÞÉÍ ÏÂÒÁÚÏÍ, - Ó ÐÏÍÏÝØÀ ÆÕÎËÃÉÏÎÁÌØÎÏÇÏ ÉÎÄÅËÓÁ ÉÚ ÈÜÛÁ MD5 ÄÌÉÎÎÏÊ ËÏÌÏÎËÉ, Á - ÐÏÌÎÏÔÅËÓÔÏ×ÏÅ ÉÎÄÅËÓÉÒÏ×ÁÎÉÅ ÐÏÚ×ÏÌÑÅÔ ÉÓËÁÔØ ÓÌÏ×Á ×ÎÕÔÒÉ ËÏÌÏÎËÉ.

- -

4.5) ëÁË ÍÎÏÇÏ ÄÉÓËÏ×ÏÇÏ ÐÒÏÓÔÒÁÎÓÔ×Á × ÂÁÚÅ ÄÁÎÎÙÈ - ÎÕÖÎÏ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÄÁÎÎÙÈ ÉÚ ÏÂÙÞÎÏÇÏ ÔÅËÓÔÏ×ÏÇÏ ÆÁÊÌÁ?

- -

óõâä PostgreSQL ÍÏÖÅÔ ÐÏÔÒÅÂÏ×ÁÔØÓÑ ÄÉÓËÏ×ÏÇÏ ÐÒÏÓÔÒÁÎÓÔ×Á ÄÏ 5 ÒÁÚ - ÂÏÌØÛÅ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÄÁÎÎÙÈ ÉÚ ÐÒÏÓÔÏÇÏ ÔÅËÓÔÏ×ÏÇÏ ÆÁÊÌÁ.

- -

÷ ËÁÞÅÓÔ×Å ÐÒÉÍÅÒÁ, ÒÁÓÓÍÏÔÒÉÍ ÆÁÊÌ × 100,000 ÓÔÒÏË × ËÁÖÄÏÊ, ÉÚ - ËÏÔÏÒÙÈ ÃÅÌÏÅ ÞÉÓÌÏ É ÔÅËÓÔÏ×ÏÅ ÏÐÉÓÁÎÉÅ. ðÒÉ ÜÔÏÍ ÄÌÉÎÁ ÔÅËÓÔÁ, - × ÓÒÅÄÎÅÍ, ÓÏÓÔÁ×ÌÑÅÔ 20 ÂÁÊÔ. òÁÚÍÅÒ ÐÒÏÓÔÏÇÏ ÆÁÊÌÁ ÓÏÓÔÁ×ÉÔ 2.8 MB. - òÁÚÍÅÒ ÂÁÚÙ PostgreSQL, ÓÏÄÅÒÖÁÝÅÊ ÜÔÉ ÖÅ ÄÁÎÎÙÅ ÓÏÓÔÁ×ÉÔ ÐÒÉÂÌÉÚÉÔÅÌØÎÏ - 5.2 MB ÉÚ ËÏÔÏÒÙÈ:

+

Существует ограничение, по которому индексы не могут создаваться для + колонок длиннее чем 2,000 символов. К счастью такие индексы вряд ли + действительно кому-то нужны. Уникальность гарантируется наилучим образом, + с помощью функционального индекса из хэша MD5 длинной колонки, а + полнотекстовое индексирование позволяет искать слова внутри колонки.

+ +

4.5) Как много дискового пространства в базе данных + нужно для сохранения данных из обычного текстового файла?

+ +

СУБД PostgreSQL может потребоваться дискового пространства до 5 раз + больше для сохранения данных из простого текстового файла.

+ +

В качестве примера, рассмотрим файл в 100,000 строк в каждой, из + которых целое число и текстовое описание. При этом длина текста, + в среднем, составляет 20 байт. Размер простого файла составит 2.8 MB. + Размер базы PostgreSQL, содержащей эти же данные составит приблизительно + 5.2 MB из которых:

-    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)
 
-

éÎÄÅËÓÙ ÎÅ ÔÒÅÂÕÀÔ ÔÁË ÍÎÏÇÏ, ÎÏ ÐÏÓËÏÌØËÕ ÏÎÉ ÓÏÚÄÁÀÔÓÑ ÄÌÑ - ÂÏÌØÛÏÇÏ ËÏÌÉÞÅÓÔ×Á ÄÁÎÎÙÈ, ÏÎÉ ÔÁËÖÅ ÍÏÇÕÔ ÂÙÔØ ×ÅÌÉËÉ.

+

Индексы не требуют так много, но поскольку они создаются для + большого количества данных, они также могут быть велики.

-

úÎÁÞÅÎÉÑ NULL ÈÒÁÎÑÔÓÑ ËÁË ÂÉÔÏ×ÙÅ ËÁÒÔÙ É ÐÏÜÔÏÍÕ ÏÎÉ - ÚÁÎÉÍÁÀÔ ÏÞÅÎØ ÍÁÌÏ ÍÅÓÔÁ. +

Значения NULL хранятся как битовые карты и поэтому они + занимают очень мало места.

-

4.6) ðÏÞÅÍÕ ÍÏÉ ÚÁÐÒÏÓÙ ÒÁÂÏÔÁÀÔ ÍÅÄÌÅÎÏ? ðÏÞÅÍÕ - ÏÎÉ ÎÅ ÉÓÐÏÌØÚÕÀÔ ÍÏÉ ÉÎÄÅËÓÙ?

+

4.6) Почему мои запросы работают медлено? Почему + они не используют мои индексы?

-

éÎÄÅËÓÙ ÎÅ ÉÓÐÏÌØÚÕÀÔÓÑ ÄÌÑ ËÁÖÄÏÇÏ ÚÁÐÒÏÓÁ. ïÎÉ - ÉÓÐÏÌØÚÕÀÔÓÑ ÔÏÌØËÏ ÅÓÌÉ ÔÁÂÌÉÃÁ ÂÏÌØÛÅ ÍÉÎÉÍÁÌØÎÏÇÏ ÒÁÚÍÅÒÁ É ÚÁÐÒÏÓ - ×ÙÂÉÒÁÅÔ ÔÏÌØËÏ ÍÁÌÅÎØËÉÊ ÐÒÏÃÅÎÔ ÓÔÒÏË × ÔÁÂÌÉÃÅ. ôÁË ÕÓÔÒÏÅÎÏ, - ÐÏÔÏÍÕ ÞÔÏ ÄÏÓÔÕÐ Ë ÄÉÓËÕ Ó ÐÒÉÍÅÎÅÎÉÅÍ ÒÁÎÄÏÍÉÚÁÃÉÉ ÐÒÉ ÓËÁÎÉÒÏ×ÁÎÉÉ - ÉÎÄÅËÓÏ× ÍÏÖÅÔ ÂÙÔØ ÍÅÄÌÅÎÎÅÅ, ÞÅÍ ÐÒÏÓÔÏÅ ÞÔÅÎÉÅ ÔÁÂÌÉÃÙ ÉÌÉ ÅÅ - ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÅ ÓËÁÎÉÒÏ×ÁÎÉÅ.

+

Индексы не используются для каждого запроса. Они + используются только если таблица больше минимального размера и запрос + выбирает только маленький процент строк в таблице. Так устроено, + потому что доступ к диску с применением рандомизации при сканировании + индексов может быть медленнее, чем простое чтение таблицы или ее + последовательное сканирование.

-

þÔÏÂÙ ÏÐÒÅÄÅÌÉÔØ ÎÅÏÂÈÏÄÉÍÏÓÔØ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÉÎÄÅËÓÁ ÄÌÑ ËÁËÏÊ-ÌÉÂÏ - ÔÁÂÌÉÃÙ, PostgreSQL ÄÏÌÖÅÎ ÉÍÅÔØ ÓÔÁÔÉÓÔÉËÕ ÐÏ ÜÔÏÊ ÔÁÂÌÉÃÅ. üÔÁ - ÓÔÁÔÉÓÔÉËÁ ÓÏÂÉÒÁÅÔÓÑ ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ VACUUM ANALYZE - ÉÌÉ ÐÒÏÓÔÏ ANALYZE. éÓÐÏÌØÚÕÑ ÓÔÁÔÉÓÔÉËÕ, ÏÐÔÉÍÉÚÁÔÏÒ - ÕÚÎÁÅÔ Ï ÔÏÍ ËÁË ÍÎÏÇÏ ÓÔÒÏË × ÔÁÂÌÉÃÅ É ÅÓÌÉ ÏÎ ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØ - ÉÎÄÅËÓÙ, ÔÏ ÏÎ ÍÏÖÅÔ ÐÒÉÎÉÍÁÔØ ÌÕÞÛÉÅ ÒÅÛÅÎÉÑ. óÔÁÔÉÓÔÉËÁ ÔÁËÖÅ - ×ÌÉÑÅÔ ÎÁ ÏÐÒÅÄÅÌÅÎÉÅ ÏÐÔÉÍÁÌØÎÏÇÏ ÐÏÒÑÄËÁ Ó×ÑÚÙ×ÁÎÉÑ É ÍÅÔÏÄÁ Ó×ÑÚÙ×ÁÎÉÑ. - ðÒÉ ÉÚÍÅÎÅÎÉÉ ÓÏÄÅÒÖÉÍÏÇÏ ÔÁÂÌÉÃÙ ÄÏÌÖÅÎ ÐÅÒÉÏÄÉÞÅÓËÉ ×ÙÐÏÌÎÑÔÓÑ - ÓÂÏÒ ÓÔÁÔÉÓÔÉËÉ.

+

Чтобы определить необходимость использования индекса для какой-либо + таблицы, PostgreSQL должен иметь статистику по этой таблице. Эта + статистика собирается при использовании VACUUM ANALYZE + или просто ANALYZE. Используя статистику, оптимизатор + узнает о том как много строк в таблице и если он должен использовать + индексы, то он может принимать лучшие решения. Статистика также + влияет на определение оптимального порядка связывания и метода связывания. + При изменении содержимого таблицы должен периодически выполнятся + сбор статистики.

-

ïÂÙÞÎÏ ÉÎÄÅËÓÙ ÎÅ ÉÓÐÏÌØÚÕÀÔÓÑ ÄÌÑ ORDER BY ÉÌÉ ÄÌÑ - ×ÙÐÏÌÎÅÎÉÑ Ó×ÑÚÙ×ÁÎÉÊ. ðÏÓÌÅÄÏ×ÁÔÅÌØÎÙÊ ÐÅÒÅÂÏÒ ÓÌÅÄÕÀÝÉÊ ÚÁ Ñ×ÎÏÊ - ÓÏÒÔÉÒÏ×ËÏÊ ÏÂÙÞÎÏ ÂÙÓÔÒÅÅ, ÞÅÍ ÐÏÉÓË ÐÏ ÉÎÄÅËÓÁÍ × ÂÏÌØÛÏÊ ÔÁÂÌÉÃÅ. - ïÄÎÁËÏ, ORDER BY ÞÁÓÔÏ ËÏÍÂÉÎÉÒÕÅÔÓÑ Ó LIMIT - É × ÜÔÏÍ ÓÌÕÞÁÅ ÉÎÄÅËÓ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ, ÐÏÓËÏÌØËÕ ÐÒÉ ×ÙÐÏÌÎÅÎÉÉ - ÂÕÄÅÔ ×ÏÚ×ÒÁÝÁÔØÓÑ ÎÅÂÏÌØÛÁÑ ÞÁÓÔØ ÔÁÂÌÉÃÙ.

- -

åÓÌÉ ×ÁÍ ËÁÖÅÔÓÑ, ÞÔÏ ÏÐÔÉÍÉÚÁÔÏÒ ÎÅËÏÒÒÅËÔÎÏ ×ÙÂÉÒÁÅÔ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÙÊ - ÐÅÒÅÂÏÒ, ÉÓÐÏÌØÚÕÊÔÅ SET enable_seqscan TO 'off' É - ÚÁÐÕÓÔÉÔÅ ÚÁÐÒÏÓ ÓÎÏ×Á, ÞÔÏÂÙ Õ×ÉÄÅÔØ, ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÌÉ ÓËÁÎÉÒÏ×ÁÎÉÅ - ÉÎÄÅËÓÏ× ÂÙÓÔÒÅÅ. +

Обычно индексы не используются для ORDER BY или для + выполнения связываний. Последовательный перебор следующий за явной + сортировкой обычно быстрее, чем поиск по индексам в большой таблице. + Однако, ORDER BY часто комбинируется с LIMIT + и в этом случае индекс будет использоваться, поскольку при выполнении + будет возвращаться небольшая часть таблицы.

+ +

Если вам кажется, что оптимизатор некорректно выбирает последовательный + перебор, используйте SET enable_seqscan TO 'off' и + запустите запрос снова, чтобы увидеть, действительно ли сканирование + индексов быстрее.

-

ëÏÇÄÁ ÉÓÐÏÌØÚÕÀÔÓÑ ÏÐÅÒÁÃÉÉ Ó ÛÁÂÌÏÎÁÍÉ, ÎÁÐÒÉÍÅÒ LIKE - ÉÌÉ ~, ÉÎÄÅËÓÙ ÍÏÇÕÔ ÂÙÔØ ÉÓÐÏÌØÚÏ×ÁÎÙ × ÓÌÅÄÕÀÝÉÈ ÓÌÕÞÁÑÈ:

+

Когда используются операции с шаблонами, например LIKE + или ~, индексы могут быть использованы в следующих случаях:

    -
  • îÁÞÁÌÏ ÓÔÒÏËÉ ÐÏÉÓËÁ ÄÏÌÖÎÏ ÓÏ×ÐÁÄÁÔØ Ó ÎÁÞÁÌÏÍ ÉÓËÏÍÏÊ ÓÔÒÏËÉ, Ô.Å.: +
  • Начало строки поиска должно совпадать с началом искомой строки, т.е.:
      -
    • LIKE ÛÁÂÌÏÎÙ ÎÅ ÄÏÌÖÎÙ ÎÁÞÉÎÁÔØÓÑ Ó %..
    • -
    • ~ ÛÁÂÌÏÎÙ ÒÅÇÕÌÑÒÎÙÈ ×ÙÒÁÖÅÎÉÊ ÄÏÌÖÎÁ ÎÁÞÉÎÁÔØÓÑ ÎÁ ^.
    • +
    • LIKE шаблоны не должны начинаться с %..
    • +
    • ~ шаблоны регулярных выражений должна начинаться на ^.
  • -
  • óÔÒÏËÁ ÐÏÉÓËÁ ÎÅ ÄÏÌÖÎÁ ÎÁÞÉÎÁÔØÓÑ Ó ÓÉÍ×ÏÌÁ ËÌÁÓÓÁ, Ô.Å. [a-e].
  • -
  • ðÏÉÓË ÎÅÚÁ×ÉÓÉÍÙÊ ÏÔ ÒÅÇÉÓÔÒÁ, ÔÁËÏÊ ËÁË ILIKE É - ~* ÎÅ ÉÓÐÏÌØÚÕÅÔ ÉÎÄÅËÓÙ. ÷ÍÅÓÔÏ ÎÅÇÏ, ÉÓÐÏÌØÚÕÊÔÅ ÉÎÄÅËÓÙ - ×ÙÒÁÖÅÎÉÊ, ËÏÔÏÒÙÅ ÏÐÉÓÙ×ÁÀÔÓÑ × ÓÅËÃÉÉ 4.8.
  • -
  • ÷Ï ×ÒÅÍÑ initdb ÄÏÌÖÎÁ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÌÏËÁÌØ ÐÏ ÕÍÏÌÞÁÎÉÀ - C, ÐÏÔÏÍÕ ÞÔÏ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ ×ÏÚÍÏÖÎÏÓÔÉ ÕÚÎÁÔØ ÓÌÅÄÕÀÝÉÊ ÎÁÉÂÏÌØÛÉÊ - ÓÉÍ×ÏÌ ÄÌÑ ÎÅ-C ÌÏËÁÌÉ. ÷Ù ÍÏÖÅÔÅ ÄÌÑ ÔÁËÉÈ ÓÌÕÞÁÅ× ÓÏÚÄÁÔØ ÓÐÅÃÉÁÌØÎÙÊ - ÉÎÄÅËÓ text_pattern_ops ËÏÔÏÒÙÊ ÒÁÂÏÔÁÅÔ ÔÏÌØËÏ ÄÌÑ - LIKE ÉÎÄÅËÓÉÒÏ×ÁÎÉÑ. äÌÑ ÐÏÉÓËÁ ÓÌÏ× ÔÁËÖÅ ÍÏÖÎÏ - ÉÓÐÏÌØÚÏ×ÁÔØ ÐÏÌÎÏÔÅËÓÔÏ×ÙÊ ÉÎÄÅËÓ.
  • +
  • Строка поиска не должна начинаться с символа класса, т.е. [a-e].
  • +
  • Поиск независимый от регистра, такой как ILIKE и + ~* не использует индексы. Вместо него, используйте индексы + выражений, которые описываются в секции 4.8.
  • +
  • Во время initdb должна использоваться локаль по умолчанию + C, потому что не существует возможности узнать следующий наибольший + символ для не-C локали. Вы можете для таких случаев создать специальный + индекс text_pattern_ops который работает только для + LIKE индексирования. Для поиска слов также можно + использовать полнотекстовый индекс.
-

4.7) ëÁË ÐÏÓÍÏÔÒÅÔØ ÎÁ ÔÏ, ËÁË ÏÐÔÉÍÉÚÁÔÏÒ ×ÙÐÏÌÎÑÅÔ - ÍÏÊ ÚÁÐÒÏÓ?

+

4.7) Как посмотреть на то, как оптимизатор выполняет + мой запрос?

-

óÍÏÔÒÉÔÅ ÓÔÒÁÎÉÃÕ ÒÕËÏ×ÏÄÓÔ×Á ÐÏÓ×ÑÝÅÎÎÕÀ EXPLAIN.

+

Смотрите страницу руководства посвященную EXPLAIN.

-

4.8) ëÁË ÍÎÅ ×ÙÐÏÌÎÉÔØ ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ - É ÐÏÉÓË ÎÅÚÁ×ÉÓÉÍÙÊ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË× ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ? - ëÁË ÍÎÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÉÎÄÅËÓ ÄÌÑ ÐÏÉÓËÁ ÎÅÚÁ×ÉÓÉÍÏÇÏ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË×?

+

4.8) Как мне выполнить поиск регулярного выражения + и поиск независимый от регистра букв поиск регулярного выражения? + Как мне использовать индекс для поиска независимого от регистра букв?

-

ïÐÅÒÁÔÏÒ ~ ÐÒÏÉÚ×ÏÄÉÔ ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ, Á ÏÐÅÒÁÔÏÒ - ~* ÐÒÏÉÚ×ÏÄÉÔ ÎÅÚÁ×ÉÓÉÍÙÊ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË× ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ - ×ÙÒÁÖÅÎÉÑ. îÅÚÁ×ÉÓÉÍÙÊ ÏÔ ÒÅÇÉÓÔÒÁ ×ÁÒÉÁÎÔ LIKE ÎÁÚÙ×ÁÅÔÓÑ +

Оператор ~ производит поиск регулярного выражения, а оператор + ~* производит независимый от регистра букв поиск регулярного + выражения. Независимый от регистра вариант LIKE называется ILIKE.

-

îÅÚÁ×ÉÓÉÍÏÅ ÏÔ ÒÅÇÉÓÔÒÁ ÓÒÁ×ÎÅÎÉÅ ÏÂÙÞÎÏ ×ÙÒÁÖÁÅÔÓÑ ÔÁË:

+

Независимое от регистра сравнение обычно выражается так:

     SELECT *
     FROM tab
     WHERE lower(col) = 'abc';
 
- üÔÁ ËÏÎÓÔÒÕËÃÉÑ ÎÅ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÓÔÁÎÄÁÒÔÎÙÊ ÉÎÄÅËÓ. ïÄÎÁËÏ, ÅÓÌÉ - ×Ù ÓÏÚÄÁÄÉÔÅ ÉÎÄÅËÓ ×ÙÒÁÖÅÎÉÑ, ÏÎ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÎ: + Эта конструкция не будет использовать стандартный индекс. Однако, если + вы создадите индекс выражения, он будет использован:
     CREATE INDEX tabindex ON tab (lower(col));
 
-

åÓÌÉ ×ÙÛÅÕËÁÚÁÎÎÙÊ ÉÎÄÅËÓ ÓÏÚÄÁ£ÔÓÑ ËÁË UNIQUE, ÔÏ - ËÏÌÏÎËÁ, ÄÌÑ ËÏÔÏÒÏÊ ÏÎ ÓÏÚÄÁ£ÔÓÑ ÍÏÖÅÔ ÈÒÁÎÉÔØ ÓÉÍ×ÏÌÙ É × ×ÅÒÈÎÅÍ, - É × ÎÉÖÎÅÍ ÒÅÇÉÓÔÒÅ, ÉÎÄÅÓ ÎÅ ÍÏÖÅÔ ÉÍÅÔØ ÉÄÅÎÔÉÞÎÙÈ ÚÎÁÞÅÎÉÊ, ËÏÔÏÒÙÅ - ÏÔÌÉÞÁÀÔÓÑ ÔÏÌØËÏ ÒÅÇÉÓÔÒÏÍ. þÔÏÂÙ × ËÏÌÏÎËÅ ÍÏÖÎÏ ÂÙÌÏ ÈÒÁÎÉÔØ ÓÉÍ×ÏÌÙ - ÔÏÌØËÏ × ÏÐÒÅÄÅÌ£ÎÎÏÍ ÒÅÇÉÓÔÒÅ, ÉÓÐÏÌØÚÕÊÔÅ ÏÇÒÁÎÉÞÅÎÉÅ - CHECK ÉÌÉ ÐÒÏ×ÅÒËÕ ÞÅÒÅÚ ÔÒÉÇÇÅÒ.

- -

4.9) ëÁË ÍÎÅ ÏÐÒÅÄÅÌÉÔØ, ÞÔÏ ÚÎÁÞÅÎÉÅ ÐÏÌÑ × ËÁËÏÍ-ÌÉÂÏ - ÚÁÐÒÏÓÅ ÒÁ×ÎÏ NULL? ëÁË ÍÎÅ ÓÏÅÄÉÎÉÔØ ×ÏÚÍÏÖÎÙÅ - NULL? íÏÇÕ Ñ ÓÏÒÔÉÒÏ×ÁÔØ ÐÏÌÑ NULL ÉÌÉ ÎÅÔ?

- -

÷Ù ÐÒÏÓÔÏ ÓÒÁ×ÎÉ×ÁÅÔÅ ÚÎÁÞÅÎÉÅ Ó IS NULL É - IS NOT NULL, ËÁË ÚÄÅÓØ:

+

Если вышеуказанный индекс создаётся как UNIQUE, то + колонка, для которой он создаётся может хранить символы и в верхнем, + и в нижнем регистре, индес не может иметь идентичных значений, которые + отличаются только регистром. Чтобы в колонке можно было хранить символы + только в определённом регистре, используйте ограничение + CHECK или проверку через триггер.

+ +

4.9) Как мне определить, что значение поля в каком-либо + запросе равно NULL? Как мне соединить возможные + NULL? Могу я сортировать поля NULL или нет?

+ +

Вы просто сравниваете значение с IS NULL и + IS NOT NULL, как здесь:

    SELECT *
    FROM tab
    WHERE col IS NULL;
 
-

þÔÏÂÙ ÓÏÅÄÉÎÉÔØ Ó ×ÏÚÍÏÖÎÙÍÉ ÚÎÁÞÅÎÉÑÍÉ NULL, ÉÓÐÏÌØÚÕÊÔÅ - COALESCE() ËÁË ÚÄÅÓØ:

+

Чтобы соединить с возможными значениями NULL, используйте + COALESCE() как здесь:

    SELECT COALESCE(col1, '') || COALESCE(col2, '')
    FROM tab
 
-

þÔÏÂÙ ÏÔÓÏÒÔÉÒÏ×ÁÔØ ÄÁÎÎÙÅ ÐÏ ÚÎÁÞÅÎÉÀ ÉÓÐÏÌØÚÕÊÔÅ ÍÏÄÉÆÉËÁÔÏÒÙ - IS NULL É IS NOT NULL × ×ÙÒÁÖÅÎÉÉ - ORDER BY. ëÏÇÄÁ ÏÎÉ ÂÕÄÕÔ ÇÅÎÅÒÉÒÏ×ÁÔØ ÚÎÁÞÅÎÉÑ - ÉÓÔÉÎÁ, ÔÏ ÐÒÉ ÓÏÒÔÉÒÏ×ËÅ ÏÎÉ ÂÕÄÕÔ ×ÙÛÅ, ÞÅÍ ÚÎÁÞÅÎÉÑ - ÌÏÖØ, ÔÁË ÞÔÏ ÚÁÐÉÓÉ Ó NULL ÂÕÄÕÔ × ÏÔÓÏÒÔÉÒÏ×ÁÎÎÏÍ ÓÐÉÓËÅ Ó×ÅÒÈÕ:

+

Чтобы отсортировать данные по значению используйте модификаторы + IS NULL и IS NOT NULL в выражении + ORDER BY. Когда они будут генерировать значения + истина, то при сортировке они будут выше, чем значения + ложь, так что записи с NULL будут в отсортированном списке сверху:

    SELECT *
@@ -919,70 +919,70 @@
    ORDER BY (col IS NOT NULL);
 
-

4.10) ëÁËÏ×Ù ÏÔÌÉÞÉÑ ÍÅÖÄÕ ÒÁÚÎÙÍÉ ÓÉÍ×ÏÌØÎÙÍÉ - ÔÉÐÁÍÉ?

+

4.10) Каковы отличия между разными символьными + типами?

- - - + + + - + - + - + - + - +
ôÉÐ÷ÎÕÔÒÅÎÎÅÅ ÉÍÑúÁÍÅÞÁÎÉÑТипВнутреннее имяЗамечания
VARCHAR(n) varcharÒÁÚÍÅÒ ÚÁÄÁÅÔ ÍÁËÓÉÍÁÌØÎÕÀ ÄÌÉÎÕ, ÎÅÔ ÚÁÐÏÌÎÅÎÉÑразмер задает максимальную длину, нет заполнения
CHAR(n) bpcharÚÁÐÏÌÎÑÅÔÓÑ ÐÕÓÔÏÔÏÊ ÄÏ ÆÉËÓÉÒÏ×ÁÎÎÏÊ ÄÌÉÎÙзаполняется пустотой до фиксированной длины
TEXT textÎÅÔ ÚÁÄÁ×ÁÅÍÏÇÏ ×ÅÒÈÎÅÇÏ ÏÇÒÁÎÉÞÅÎÉÑ ÉÌÉ ÄÌÉÎÙнет задаваемого верхнего ограничения или длины
BYTEA byteaÍÁÓÓÉ× ÂÁÊÔ ÐÅÒÅÍÅÎÎÏÊ ÄÌÉÎÙ (ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ null-ÂÁÊÔ ÂÅÚ ÏÐÁÓËÉ)массив байт переменной длины (можно использовать null-байт без опаски)
"char" charÏÄÉÎ ÓÉÍ×ÏÌодин символ
-

÷ÎÕÔÒÅÎÎÅÅ ÉÍÑ ×Ù ÍÏÖÅÔÅ Õ×ÉÄÅÔØ, ËÏÇÄÁ ÓÍÏÔÒÉÔÅ ÓÉÓÔÅÍÎÙÅ ËÁÔÁÌÏÇÉ - É × ÎÅËÏÔÏÒÙÈ ÓÏÏÂÝÅÎÉÑÈ Ï ÏÛÉÂËÁÈ.

- -

ðÅÒ×ÙÅ ÞÅÔÙÒÅ ÔÉÐÁ Ñ×ÌÑÀÔÓÑ "varlena" ÔÉÐÁÍÉ (Ô.Å., ÐÅÒ×ÙÅ - ÞÅÔÙÒÅ ÂÁÊÔÁ ÎÁ ÄÉÓËÅ Ñ×ÌÑÀÔÓÑ ÄÌÉÎÎÏÊ, ÚÁ ËÏÔÏÒÏÊ ÓÌÅÄÕÀÔ ÄÁÎÎÙÅ). - ôÁËÉÍ ÏÂÒÁÚÏÍ, ÆÁËÔÉÞÅÓËÉ ÉÓÐÏÌØÚÕÅÍÏÅ ÐÒÏÓÔÒÁÎÓÔ×Ï ÂÏÌØÛÅ, ÞÅÍ - ÏÂÏÚÎÁÞÅÎÎÙÊ ÒÁÚÍÅÒ. ïÄÎÁËÏ, ÄÌÉÎÎÙÅ ÚÎÁÞÅÎÉÑ ÔÁËÖÅ ÓÖÉÍÁÀÔÓÑ, - ÔÁË ÞÔÏ ÚÁÎÉÍÁÅÍÏÅ ÄÉÓËÏ×ÏÅ ÐÒÏÓÔÒÁÎÓÔ×Ï ÍÏÖÅÔ ÔÁËÖÅ ÂÙÔØ É ÍÅÎØÛÅ, - ÞÅÍ ÏÖÉÄÁÌÏÓØ.

- - VARCHAR(n) - ÜÔÏ ÌÕÞÛÅÅ ÒÅÛÅÎÉÅ, ËÏÇÄÁ ÎÕÖÎÏ ÈÒÁÎÉÔØ - ÓÔÒÏËÉ ÐÅÒÅÍÅÎÎÏÊ ÄÌÉÎÙ, ÎÅ ÐÒÅ×ÙÛÁÀÝÉÅ ÏÐÒÅÄÅÌÅÎÎÏÇÏ ÒÁÚÍÅÒÁ. - TEXT - ÜÔÏ ÌÕÞÛÅÅ ÒÅÛÅÎÉÅ ÄÌÑ ÓÔÒÏË ÎÅÏÇÒÁÎÉÞÅÎÎÏÊ ÄÌÉÎÙ, - Ó ÍÁËÓÉÍÁÌØÎÏ ÄÏÐÕÓÔÉÍÏÊ ÄÌÉÎÏÊ × 1 ÇÉÇÁÂÁÊÔ. -

CHAR(n) - ÜÔÏ ÌÕÞÛÅÅ ÒÅÛÅÎÉÅ ÄÌÑ ÈÒÁÎÅÎÉÑ ÓÔÒÏË, ËÏÔÏÒÙÅ - ÏÂÙÞÎÏ ÉÍÅÀÔ ÏÄÉÎÁËÏ×ÕÀ ÄÌÉÎÕ. CHAR(n) ÚÁÐÏÌÎÑÅÔÓÑ - ÐÕÓÔÏÔÏÊ ÄÏ ÚÁÄÁÎÎÏÊ ÄÌÉÎÙ, × ÔÏ ×ÒÅÍÑ ËÁË VARCHAR(n) - ÈÒÁÎÉÔ ÔÏÌØËÏ ÓÉÍ×ÏÌÙ, ÉÚ ËÏÔÏÒÙÈ ÓÏÓÔÏÉÔ ÓÔÒÏËÁ. - BYTEA ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÈÒÁÎÅÎÉÑ ÂÉÎÁÒÎÙÈ ÄÁÎÎÙÈ, ÚÎÁÞÅÎÉÑ - ËÏÔÏÒÙÈ ÍÏÇÕÔ ×ËÌÀÞÁÔØ NULL ÂÁÊÔÙ. ÷ÓÅ ÔÉÐÙ ÏÐÉÓÁÎÎÙÅ - ÚÄÅÓØ, ÉÍÅÀÔ ÓÈÏÄÎÙÅ ÈÁÒÁËÔÅÒÉÓÔÉËÉ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ.

- -

4.11.1) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ÐÏÌÅ - serial/Ó-Á×ÔÏ-Õ×ÅÌÉÞÅÎÉÅÍ?

- -

PostgreSQL ÐÏÄÄÅÒÖÉ×ÁÅÔ ÔÉÐ ÄÁÎÎÙÈ SERIAL. ïÎ - Á×ÔÏÍÁÔÉÞÅÓËÉ ÓÏÚÄÁÅÔ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ. îÁÐÒÉÍÅÒ:

+

Внутреннее имя вы можете увидеть, когда смотрите системные каталоги + и в некоторых сообщениях об ошибках.

+ +

Первые четыре типа являются "varlena" типами (т.е., первые + четыре байта на диске являются длинной, за которой следуют данные). + Таким образом, фактически используемое пространство больше, чем + обозначенный размер. Однако, длинные значения также сжимаются, + так что занимаемое дисковое пространство может также быть и меньше, + чем ожидалось.

+ + VARCHAR(n) - это лучшее решение, когда нужно хранить + строки переменной длины, не превышающие определенного размера. + TEXT - это лучшее решение для строк неограниченной длины, + с максимально допустимой длиной в 1 гигабайт. +

CHAR(n) - это лучшее решение для хранения строк, которые + обычно имеют одинаковую длину. CHAR(n) заполняется + пустотой до заданной длины, в то время как VARCHAR(n) + хранит только символы, из которых состоит строка. + BYTEA используется для хранения бинарных данных, значения + которых могут включать NULL байты. Все типы описанные + здесь, имеют сходные характеристики производительности.

+ +

4.11.1) Как мне создать поле + serial/с-авто-увеличением?

+ +

PostgreSQL поддерживает тип данных SERIAL. Он + автоматически создает последовательность. Например:

     CREATE TABLE person ( 
         id   SERIAL, 
@@ -990,7 +990,7 @@
     );
 
- Á×ÔÏÍÁÔÉÞÅÓËÉ ÔÒÁÎÓÌÉÒÕÅÔÓÑ ×: + автоматически транслируется в:
     CREATE SEQUENCE person_id_seq;
     CREATE TABLE person ( 
@@ -999,198 +999,198 @@
     );
 
-

á×ÔÏÍÁÔÉÞÅÓËÉ ÓÏÚÄÁÎÎÁÑ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ ÉÍÅÅÔ ÉÍÑ ×ÉÄÁ - <ÔÁÂÌÉÃÁ>_<ËÏÌÏÎËÁ_serial>_seq, ÇÄÅ - ÔÁÂÌÉÃÁ É ËÏÌÏÎËÁ_serial - ÜÔÏ ÓÏÏÔ×ÅÔÓÔ×ÅÎÎÏ ÉÍÅÎÁ - ÔÁÂÌÉÃÙ É ËÏÌÏÎËÉ Ó ÔÉÐÏÍ SERIAL. - óÍÏÔÒÉÔÅ ÐÏÄÒÏÂÎÏÓÔÉ Ï ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÑÈ ÎÁ ÓÔÒÁÎÉÃÅ ÒÕËÏ×ÏÄÓÔ×Á - ÐÏÓ×ÑÝÅÎÎÏÊ create_sequence.

+

Автоматически созданная последовательность имеет имя вида + <таблица>_<колонка_serial>_seq, где + таблица и колонка_serial - это соответственно имена + таблицы и колонки с типом SERIAL. + Смотрите подробности о последовательностях на странице руководства + посвященной create_sequence.

-

4.11.2) ëÁË ÍÎÅ ÐÏÌÕÞÉÔØ ÚÎÁÞÅÎÉÅ ÐÒÉ ×ÓÔÁ×ËÅ +

4.11.2) Как мне получить значение при вставке SERIAL?

-

ðÒÏÓÔÅÊÛÉÊ ÓÐÏÓÏ ÐÏÌÕÞÉÔØ ÎÁÚÎÁÞÅÎÎÏÅ ÚÎÁÞÅÎÉÅ SERIAL - ÜÔÏ ÉÓÐÏÌØÚÏ×ÁÔØ RETURNING. éÓÐÏÌØÚÕÑ ÄÌÑ ÐÒÉÍÅÒÁ ÔÁÂÌÉÃÕ × 4.11.1, ÜÔÏ ÍÏÖÅÔ ×ÙÇÌÑÄÅÔØ ÔÁË:

+

Простейший способ получить назначенное значение SERIAL + это использовать RETURNING. Используя для примера таблицу в 4.11.1, это может выглядеть так:

     INSERT INTO person (name) VALUES ('Blaise Pascal') RETURNING id;
 
- ÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ×ÙÚ×ÁÔØ nextval() É ÉÓÐÏÌØÚÏ×ÁÔØ ÜÔÏ ÚÎÁÞÅÎÉÅ × - INSERT ÉÌÉ ×ÙÚ×ÁÔØ currval() ÐÏÓÌÅ + Вы также можете вызвать nextval() и использовать это значение в + INSERT или вызвать currval() после INSERT. -

4.11.3) îÅ ÍÏÖÅÔ ÌÉ ÐÏÌÕÞÉÔØÓÑ ÔÁË, ÞÔÏ - ÉÓÐÏÌØÚÏ×ÁÎÉÅ currval() É nextval() ÐÒÉ×ÅÄÅÔ Ë - ÚÁÃÉËÌÉÒÏ×ÁÎÉÀ Ó ÄÒÕÇÉÍÉ ÐÏÌØÚÏ×ÁÔÅÌÑÍÉ?

+

4.11.3) Не может ли получиться так, что + использование currval() и nextval() приведет к + зациклированию с другими пользователями?

-

îÅÔ. currval() ×ÏÚ×ÒÁÝÁÅÔ ÔÅËÕÝÅÅ ÚÎÁÞÅÎÉÅ, ÎÁÚÎÁÞÅÎÎÏÅ ×ÁÛÅÊ - ÓÅÓÓÉÅÊ, Á ÎÅ ÄÒÕÇÉÍÉ ÓÅÓÓÉÑÍÉ.

+

Нет. currval() возвращает текущее значение, назначенное вашей + сессией, а не другими сессиями.

-

4.11.4) ðÏÞÅÍÕ ÞÉÓÌÁ ÉÚ ÍÏÅÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ - ÎÅ ÉÓÐÏÌØÚÕÀÔÓÑ ÓÎÏ×Á ÐÒÉ ÏÔÍÅÎÅ ÔÒÁÎÚÁËÃÉÉ? ðÏÞÅÍÕ ÓÏÚÄÁÀÔÓÑ ÒÁÚÒÙ×Ù - ÐÒÉ ÎÕÍÅÒÁÃÉÉ × ËÏÌÏÎËÅ, ÇÄÅ Ñ ÉÓÐÏÌØÚÕÀ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ/SERIAL?

+

4.11.4) Почему числа из моей последовательности + не используются снова при отмене транзакции? Почему создаются разрывы + при нумерации в колонке, где я использую последовательность/SERIAL?

-

äÌÑ ÒÅÁÌÉÚÁÃÉÉ ËÏÎËÕÒÅÔÎÏÓÔÉ, ÚÎÁÞÅÎÉÑ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÅÊ, ÐÒÉ - ÎÅÏÂÈÏÄÉÍÏÓÔÉ ×ÙÄÁÀÔÓÑ ×Ï ×ÒÅÍÑ ÚÁÐÕÓËÁ ÔÒÁÎÚÁËÃÉÊ É ÎÅ ÂÌÏËÉÒÕÀÔÓÑ - ÄÏ ÐÏÌÎÏÇÏ ×ÙÐÏÌÎÅÎÉÑ ÔÒÁÎÚÁËÃÉÊ. üÔÏ ÍÏÖÅÔ ×ÙÚÙ×ÁÔØ ÒÁÚÒÙ×Ù × - ÎÕÍÅÒÁÃÉÉ ÐÒÉ ÏÔÍÅÎÅ ÔÒÁÎÚÁËÃÉÊ.

+

Для реализации конкуретности, значения последовательностей, при + необходимости выдаются во время запуска транзакций и не блокируются + до полного выполнения транзакций. Это может вызывать разрывы в + нумерации при отмене транзакций.

-

4.12) þÔÏ ÔÁËÏÅ OID? þÔÏ ÔÁËÏÅ +

4.12) Что такое OID? Что такое CTID?

-

åÓÌÉ ÔÁÂÌÉÃÁ ÓÏÚÄÁÎÁ Ó WITH OIDS, ÔÏ ËÁÖÄÁÑ ÓÔÒÏËÁ - ÐÏÌÕÞÁÅÔ ÕÎÉËÁÌØÎÙÊ ÉÎÄÅÎÔÉÆÉËÁÔÏÒ OID. - OID - ÜÔÏ Á×ÔÏÍÁÔÉÞÅÓËÉ ÎÁÚÎÁÞÁÅÍÏÅ ÕÎÉËÁÌØÎÏÅ 4-È - ÂÁÊÔÏ×ÏÅ ÃÅÌÏÅ ÞÉÓÌÏ, ËÏÔÏÒÏÅ ÕÎÉËÁÌØÎÏ ÄÌÑ ×ÓÅÊ ÕÓÔÁÎÏ×ÌÅÎÎÏÊ óõâä. - ïÄÎÁËÏ, ÐÏÓÌÅ ÔÏÇÏ ËÁË ÅÇÏ ÚÎÁÞÅÎÉÅ ÐÒÅ×ÙÓÉÔ 4 ÍÉÌÌÉÁÒÄÁ, ÚÎÁÞÅÎÉÑ - OID ÎÁÞÉÎÁÀÔ ÄÕÂÌÉÒÏ×ÁÔØÓÑ. PostgreSQL ÉÓÐÏÌØÚÕÅÔ - OID ÄÌÑ Ó×ÑÚÙ×ÁÎÉÑ Ó×ÏÉÈ ×ÎÕÔÒÅÎÎÉÈ ÔÁÂÌÉÃ.

- -

äÌÑ ÕÎÉËÁÌØÎÏÇÏ ÚÎÁÞÅÎÉÑ × ÓÔÒÏËÁÈ ÔÁÂÌÉÃÙ ÐÏÌØÚÏ×ÁÔÅÌÑ, ÌÕÞÛÉÍ - ÓÐÏÓÏÂÏÍ Ñ×ÌÑÅÔÓÑ ÉÓÐÏÌØÚÏ×ÁÎÉÅ SERIAL ×ÍÅÓÔÏ - OID, ÐÏÔÏÍÕ ÞÔÏ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ SERIAL - ÕÎÉËÁÌØÎÙ ÔÏÌØËÏ ×ÎÕÔÒÉ ÔÁÂÌÉÃÙ É ÔÁËÉÍ ÏÂÒÁÚÏÍ ÍÅÎØÛÅ ÐÏÄ×ÅÒÖÅÎÙ - ÐÅÒÅÐÏÌÎÅÎÉÀ. äÌÑ ÈÒÁÎÅÎÉÑ ÚÎÁÞÅÎÉÊ 8-ÍÉ ÂÁÊÔÎÏÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ - ÄÏÓÔÕÐÅÎ ÔÉÐ SERIAL8. - -

CTID ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÉÄÅÎÔÉÆÉËÁÃÉÉ ÓÐÅÃÉÁÌØÎÙÈ - ÆÉÚÉÞÅÓËÉÈ ÚÁÐÉÓÅÊ Ó ÂÌÏÞÎÙÍÉ É offset ÚÎÁÞÅÎÉÑÍÉ. CTID - ÉÚÍÅÎÑÅÔÓÑ ÐÏÓÌÅ ÔÏÇÏ ËÁË ÓÔÒÏËÉ × ÔÁÂÌÉÃÅ ÂÙÌÉ ÉÚÍÅÎÅÎÙ ÉÌÉ ÐÅÒÅÇÒÕÖÅÎÙ. -

TID ÉÓÐÏÌØÚÕÅÔÓÑ ÉÎÄÅËÓÎÙÍÉ ÚÁÐÉÓÑÍÉ × ËÁÞÅÓÔ×Å - ÕËÁÚÁÔÅÌÑ ÎÁ ÆÉÚÉÞÅÓËÉÅ ÚÁÐÉÓÉ.

- - -

4.13) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ "ERROR: Memory +

Если таблица создана с WITH OIDS, то каждая строка + получает уникальный индентификатор OID. + OID - это автоматически назначаемое уникальное 4-х + байтовое целое число, которое уникально для всей установленной СУБД. + Однако, после того как его значение превысит 4 миллиарда, значения + OID начинают дублироваться. PostgreSQL использует + OID для связывания своих внутренних таблиц.

+ +

Для уникального значения в строках таблицы пользователя, лучшим + способом является использование SERIAL вместо + OID, потому что последовательности SERIAL + уникальны только внутри таблицы и таким образом меньше подвержены + переполнению. Для хранения значений 8-ми байтной последовательности + доступен тип SERIAL8. + +

CTID используется для идентификации специальных + физических записей с блочными и offset значениями. CTID + изменяется после того как строки в таблице были изменены или перегружены. +

TID используется индексными записями в качестве + указателя на физические записи.

+ + +

4.13) Почему я получаю ошибку "ERROR: Memory exhausted in AllocSetAlloc()"?

-

ðÒÅÄÐÏÌÏÖÉÔÅÌØÎÏ Õ ×ÁÓ ÚÁËÏÎÞÉÌÁÓØ ×ÉÒÔÕÁÌØÎÁÑ ÐÁÍÑÔØ - ÉÌÉ ÞÔÏ ×ÁÛÅ ÑÄÒÏ ÉÍÅÅÔ ÍÁÌÅÎØËÉÊ ÌÉÍÉÔ ÎÁ ÏÐÒÅÄÅÌÅÎÎÙÅ ÒÅÓÕÒÓÙ. - ðÏÐÙÔÁÊÔÅÓØ ÐÅÒÅÄ ÚÁÐÕÓËÏÍ ÓÅÒ×ÅÒÁ âä ×ÙÐÏÌÎÉÔØ ÓÌÅÄÕÀÝÉÅ - ËÏÍÁÎÄÙ:

+

Предположительно у вас закончилась виртуальная память + или что ваше ядро имеет маленький лимит на определенные ресурсы. + Попытайтесь перед запуском сервера БД выполнить следующие + команды:

     ulimit -d 262144
     limit datasize 256m
 
- ÷ ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ËÏÍÁÎÄÎÏÇÏ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ shell, ÔÏÌØËÏ ÏÄÎÁ ÉÚ ÄÁÎÎÙÈ - ËÏÍÁÎÄ ×ÙÐÏÌÎÉÔÓÑ ÕÓÐÅÛÎÏ, ÎÏ ÏÎÁ ÐÏÚ×ÏÌÉÔ ×ÁÍ ÕÓÔÁÎÏ×ÉÔØ ÂÏÌØÛÉÊ - ÓÅÇÍÅÎÔ ÄÁÎÎÙÈ ÐÒÏÃÅÓÓÁ É ×ÏÚÍÏÖÎÏ ÒÅÛÉÔ ÐÒÏÂÌÅÍÕ. üÔÁ ËÏÍÁÎÄÁ - ÉÚÍÅÎÑÅÔ ÐÁÒÁÍÅÔÒÙ ÔÅËÕÝÅÇÏ ÐÒÏÃÅÓÓÁ É ×ÓÅÈ ÅÇÏ ÐÏÔÏÍËÏ×, ÓÏÚÄÁÎÎÙÈ - ÐÏÓÌŠţ ÚÁÐÕÓËÁ. åÓÌÉ Õ ×ÁÓ ×ÏÚÎÉËÌÁ ÐÒÏÂÌÅÍÁ Ó SQL - ËÌÉÅÎÔÏÍ, ÐÏÔÏÍÕ ÞÔÏ backend ×ÏÚ×ÒÁÝÁÅÔ ÓÌÉÛËÏÍ ÂÏÌØÛÏÊ ÏÂßÅÍ ÄÁÎÎÙÈ, - ÐÏÐÙÔÁÊÔÅÓØ ×ÙÐÏÌÎÉÔØ ÜÔÕ ËÏÍÁÎÄÕ ÐÅÒÅÄ ÚÁÐÕÓËÏÍ ËÌÉÅÎÔÁ. + В зависимости от командного интерпретатора shell, только одна из данных + команд выполнится успешно, но она позволит вам установить больший + сегмент данных процесса и возможно решит проблему. Эта команда + изменяет параметры текущего процесса и всех его потомков, созданных + после её запуска. Если у вас возникла проблема с SQL + клиентом, потому что backend возвращает слишком большой объем данных, + попытайтесь выполнить эту команду перед запуском клиента. -

4.14) ëÁË ÍÎÅ ÕÚÎÁÔØ, ËÁËÁÑ ×ÅÒÓÉÑ PostgreSQL - ÚÁÐÕÝÅÎÁ?

+

4.14) Как мне узнать, какая версия PostgreSQL + запущена?

-

éÚ psql, ÎÁÂÅÒÉÔÅ SELECT version();

+

Из psql, наберите SELECT version();

-

4.15) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ËÏÌÏÎËÕ ËÏÔÏÒÁÑ ÐÏ ÕÍÏÌÞÁÎÉÀ - ÂÕÄÅÔ ÓÏÄÅÒÖÁÔØ ÔÅËÕÝÅÅ ×ÒÅÍÑ?

+

4.15) Как мне создать колонку которая по умолчанию + будет содержать текущее время?

-

éÓÐÏÌØÚÕÊÔÅ CURRENT_TIMESTAMP:

+

Используйте CURRENT_TIMESTAMP:

 CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
 
-

4.16) ëÁË ÍÎÅ ×ÙÐÏÌÎÉÔØ ×ÎÅÛÎÅÅ Ó×ÑÚÙ×ÁÎÉÅ?

+

4.16) Как мне выполнить внешнее связывание?

-

PostgreSQL ÐÏÄÄÅÒÖÉ×ÁÅÔ ×ÎÅÛÎÅÅ Ó×ÑÚÙ×ÁÎÉÅ, - ÉÓÐÏÌØÚÕÑ ÓÔÁÎÄÁÒÔÎÙÊ ÓÉÎÔÁËÓÉÓ SQL. ÷ÏÔ Ä×Á ÐÒÉÍÅÒÁ:

+

PostgreSQL поддерживает внешнее связывание, + используя стандартный синтаксис SQL. Вот два примера:

     SELECT *
     FROM t1 LEFT OUTER JOIN t2 ON (t1.col = t2.col);
 
- ÉÌÉ + или
     SELECT *
     FROM t1 LEFT OUTER JOIN t2 USING (col);
 
-

üÔÏ ÉÄÅÎÔÉÞÎÙÅ ÚÁÐÒÏÓÙ Ó×ÑÚÙ×ÁÎÉÑ t1.col É t2.col, ÔÁËÖÅ ×ÏÚ×ÒÁÝÁÀÔ - ÌÀÂÙÅ ÎÅÓ×ÑÚÁÎÎÙÅ ÓÔÒÏËÉ × t1 (ËÏÔÏÒÙÅ ÎÅ ÓÏ×ÐÁÄÁÀÔ Ó t2). - RIGHT Ó×ÑÚÙ×ÁÎÉÅ ÄÏÌÖÎÏ ÄÏÂÁ×ÉÔØ ÎÅÓ×ÑÚÁÎÎÙÅ ÓÔÒÏËÉ - t2. FULL Ó×ÑÚÙ×ÁÎÉÅ ÄÏÌÖÎÏ ×ÏÚ×ÒÁÔÉÔØ ÓÏ×ÐÁ×ÛÉÅ - ÓÔÒÏËÉ ÐÌÀÓ ×ÓÅ ÎÅÓ×ÑÚÁÎÎÙÅ ÓÔÒÏËÉ ÉÚ t1 É t2. óÌÏ×Ï OUTER - Ñ×ÌÑÅÔÓÑ ÎÅÏÂÑÚÁÔÅÌØÎÙÍ É ÎÁÚÎÁÞÁÅÔÓÑ × LEFT, - RIGHT É FULL Ó×ÑÚÙ×ÁÎÉÑÈ. ïÂÙÞÎÙÅ - Ó×ÑÚÙ×ÁÎÉÑ ÎÁÚÙ×ÁÀÔÓÑ INNER Ó×ÑÚÙ×ÁÎÉÑ.

+

Это идентичные запросы связывания t1.col и t2.col, также возвращают + любые несвязанные строки в t1 (которые не совпадают с t2). + RIGHT связывание должно добавить несвязанные строки + t2. FULL связывание должно возвратить совпавшие + строки плюс все несвязанные строки из t1 и t2. Слово OUTER + является необязательным и назначается в LEFT, + RIGHT и FULL связываниях. Обычные + связывания называются INNER связывания.

-

4.17) ëÁË ×ÙÐÏÌÎÑÔØ ÚÁÐÒÏÓÙ, ÉÓÐÏÌØÚÕÀÝÉÅ ÎÅÓËÏÌØËÏ - ÂÁÚ ÄÁÎÎÙÈ?

+

4.17) Как выполнять запросы, использующие несколько + баз данных?

-

îÅ ÓÕÝÅÓÔ×ÕÅÔ ÓÐÏÓÏÂÁ ÓÏÚÄÁÔØ ÚÁÐÒÏÓ Ë ÂÁÚÁÍ ÄÁÎÎÙÈ ÏÔÌÉÞÎÙÍ ÏÔ ÔÅËÕÝÅÊ. - ðÏÓËÏÌØËÕ PostgreSQL ÚÁÇÒÕÖÁÅÔ ÓÉÓÔÅÍÎÙÅ ËÁÔÁÌÏÇÉ ÓÐÅÃÉÆÉÞÎÙÅ ÄÌÑ ÂÁÚÙ - ÄÁÎÎÙÈ, ÎÅÐÏÎÑÔÎÏ ÄÁÖÅ, ËÁË ÄÏÌÖÅÎ ÓÅÂÑ ×ÅÓÔÉ ÔÁËÏÊ ÍÅÖÂÁÚÏ×ÙÊ ÚÁÐÒÏÓ.

+

Не существует способа создать запрос к базам данных отличным от текущей. + Поскольку PostgreSQL загружает системные каталоги специфичные для базы + данных, непонятно даже, как должен себя вести такой межбазовый запрос.

-

contrib/dblink ÐÏÚ×ÏÌÑÅÔ ÚÁÐÒÏÓÙ ÍÅÖÄÕ ÂÁÚÁÍÉ, ÉÓÐÏÌØÚÕÑ - ×ÙÚÏ×Ù ÆÕÎËÃÉÊ. òÁÚÕÍÅÅÔÓÑ, ËÌÉÅÎÔ ÍÏÖÅÔ ÏÄÎÏ×ÒÅÍÅÎÎÏ ÔÁËÖÅ ÕÓÔÁÎÁ×ÌÉ×ÁÔØ - ÓÏÅÄÉÅÎÅÎÉÑ Ó ÒÁÚÌÉÞÎÙÍÉ ÂÁÚÁÍÉ ÄÁÎÎÙÈ É ÔÁËÉÈ ÏÂÒÁÚÏÍ ÏÂßÅÄÉÎÑÔØ - ÉÎÆÏÒÍÁÃÉÀ ÉÚ ÎÉÈ.

+

contrib/dblink позволяет запросы между базами, используя + вызовы функций. Разумеется, клиент может одновременно также устанавливать + соедиенения с различными базами данных и таких образом объединять + информацию из них.

-

4.18) ëÁË ÍÎÅ ×ÅÒÎÕÔØ ÉÚ ÆÕÎËÃÉÉ ÎÅÓËÏÌØËÏ ÓÔÒÏË ÔÁÂÌÉÃÙ?

+

4.18) Как мне вернуть из функции несколько строк таблицы?

-

÷Ù ÍÏÖÅÔÅ ÌÅÇËÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÆÕÎËÃÉÉ, ×ÏÚ×ÒÁÝÁÀÝÉÅ ÓÐÉÓÏË, +

Вы можете легко использовать функции, возвращающие список, http://wiki.postgresql.org/wiki/Return_more_than_one_row_of_data_from_PL/pgSQL_functions.

-

4.19) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ "relation with OID #### - ÎÅ ÓÕÝÅÓÔ×ÕÅÔ", ËÏÇÄÁ ÏÂÒÁÝÁÀÔÓØ Ë ×ÒÅÍÅÎÎÙÍ ÔÁÂÌÉÃÁÍ × ÆÕÎËÃÉÑÈ PL/PgSQL?

+

4.19) Почему я получаю ошибку "relation with OID #### + не существует", когда обращаютсь к временным таблицам в функциях PL/PgSQL?

-

÷ PostgreSQL ÄÏ ×ÅÒÓÉÉ 8.3, PL/PgSQL ËÜÛÉÒÕÅÔ ÓÃÅÎÁÒÉÉ ÆÕÎËÃÉÉ É ÏÄÉÎ ÉÚ - ÎÅÇÁÔÉ×ÎÙÈ ÜÆÆÅËÔÏ× ÜÔÏÇÏ ÓÏÓÔÏÉÔ × ÔÏÍ, ÞÔÏ ÅÓÌÉ ÆÕÎËÃÉÑ PL/PgSQL ÏÂÒÁÝÁÅÔÓÑ - Ë ×ÒÅÍÅÎÎÏÊ ÔÁÂÌÉÃÅ É ÜÔÁ ÔÁÂÌÉÃÁ ÐÏÚÄÎÅÅ ÕÄÁÌÑÅÔÓÑ É ÐÅÒÅÓÏÚÄÁÅÔÓÑ, Á ÆÕÎËÃÉÑ - ÚÁÔÅÍ ×ÙÚÙ×ÁÅÔÓÑ ÓÎÏ×Á, ÔÏ ÅÅ ×ÙÚÏ× ÐÒÉ×ÅÄÅÔ Ë ÏÛÉÂËÅ, ÐÏÔÏÍÕ ÞÔÏ ÓËÜÛÉÒÏ×ÁÎÎÏÅ - ÓÏÄÅÒÖÉÍÏÅ ÆÕÎËÃÉÉ ÓÏÄÅÒÖÉÔ ÕËÁÚÁÔÅÌØ ÎÁ ÓÔÁÒÕÀ ×ÒÅÍÅÎÎÕÀ ÔÁÂÌÉÃÕ. þÔÏÂÙ ÒÅÛÉÔØ - ÜÔÕ ÐÒÏÂÌÅÍÕ, ÉÓÐÏÌØÚÕÊÔÅ EXECUTE ÄÌÑ ÄÏÓÔÕÐÁ Ë ×ÒÅÍÅÎÎÙÍ - ÔÁÂÌÉÃÁÍ × PL/PgSQL. éÓÐÏÌØÚÏ×ÁÎÉÅ ÜÔÏÇÏ ÏÐÅÒÁÔÏÒÁ ÚÁÓÔÁ×ÉÔ ÚÁÐÒÏÓ - ÐÅÒÅÇÅÎÅÒÉÒÏ×ÁÔØÓÑ ËÁÖÄÙÊ ÒÁÚ.

- -

÷ PostgreSQL 8.3 É ÐÏÚÄÎÅÅ, ÜÔÏÊ ÐÒÏÂÌÅÍÙ ÎÅÔ.

+

В PostgreSQL до версии 8.3, PL/PgSQL кэширует сценарии функции и один из + негативных эффектов этого состоит в том, что если функция PL/PgSQL обращается + к временной таблице и эта таблица позднее удаляется и пересоздается, а функция + затем вызывается снова, то ее вызов приведет к ошибке, потому что скэшированное + содержимое функции содержит указатель на старую временную таблицу. Чтобы решить + эту проблему, используйте EXECUTE для доступа к временным + таблицам в PL/PgSQL. Использование этого оператора заставит запрос + перегенерироваться каждый раз.

+ +

В PostgreSQL 8.3 и позднее, этой проблемы нет.

-

4.20) ëÁËÉÅ ÅÓÔØ ÒÅÛÅÎÉÑ ÄÌÑ ÒÅÐÌÉËÁÃÉÉ?

+

4.20) Какие есть решения для репликации?

-

èÏÔÑ "ÒÅÐÌÉËÁÃÉÑ" -- ÜÔÏ ÅÄÉÎÙÊ ÔÅÒÍÉÎ, ÅÓÔØ ÎÅÓËÏÌØËÏ ÒÁÚÎÙÈ ÔÅÈÎÏÌÏÇÉÊ - ÄÌÑ ×ÙÐÏÌÎÅÎÉÑ ÒÅÐÌÉËÁÃÉÊ Ó ÒÁÚÎÙÍÉ ÏÓÏÂÅÎÎÏÓÔÑÍÉ ÄÌÑ ËÁÖÄÏÊ.

+

Хотя "репликация" -- это единый термин, есть несколько разных технологий + для выполнения репликаций с разными особенностями для каждой.

-

òÅÐÌÉËÁÃÉÑ Master/slave ÐÏÚ×ÏÌÑÅÔ ÉÍÅÔØ ÏÄÉÎ ÇÌÁ×ÎÙÊ (master) ÓÅÒ×ÅÒ - ÄÌÑ ×ÙÐÏÌÎÅÎÉÑ ÚÁÐÒÏÓÏ× ÞÔÅÎÉÑ/ÚÁÐÉÓÉ, × ÔÏ ×ÒÅÍÑ ËÁË ÐÏÄÞÉΣÎÎÙÅ - (slave) ÓÅÒ×ÅÒÁ ÍÏÇÕÔ ÐÒÏÉÚ×ÏÄÉÔØ ÔÏÌØËÏ ÚÁÐÒÏÓÙ - ÞÔÅÎÉÑ/SELECT. îÁÉÂÏÌÅÅ ÐÏÐÕÌÑÒÎÙÍ ÒÅÛÅÎÉÅÍ ÄÌÑ ÒÅÐÌÉËÁÃÉÉ - master-slave × PostgreSQL Ñ×ÌÑÅÔÓÑ +

Репликация Master/slave позволяет иметь один главный (master) сервер + для выполнения запросов чтения/записи, в то время как подчинённые + (slave) сервера могут производить только запросы + чтения/SELECT. Наиболее популярным решением для репликации + master-slave в PostgreSQL является Slony-I.

-

òÅÐÌÉËÁÃÉÑ Multi-master ÐÏÚ×ÏÌÑÅÔ ×ÙÐÏÌÎÑÔØ ÚÁÐÒÏÓÙ ÞÔÅÎÉÑ/ÚÁÐÉÓÉ - ÎÁ ÎÅÓËÏÌØËÉÈ, ÒÅÐÌÉÃÉÒÕÅÍÙÈ ÄÒÕÇ Ó ÄÒÕÇÏÍ ËÏÍÐØÀÅÔÒÁÈ. üÔÁ ÏÓÏÂÅÎÎÏÓÔØ - ÔÁËÖÅ ÐÒÉ×ÏÄÉÔ Ë ÐÏÔÅÒÅ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ, ÐÏÔÏÍÕ ÞÔÏ ÎÅÏÂÈÏÄÉÍÁ - ÓÉÎÈÒÏÎÉÚÁÃÉÑ ÉÚÍÅÎÅÎÉÊ ÍÅÖÄÕ ÎÅÓËÏÌØËÉÍÉ ÓÅÒ×ÅÒÁÍÉ. îÁÉÂÏÌÅÅ - ÐÏÐÕÌÑÒÎÙÍ ÒÅÛÅÎÉÅÍ ÄÌÑ ÔÁËÏÊ ÒÅÐÌÉËÁÃÉÉ × PostgreSQL Ñ×ÌÑÅÔÓÑ +

Репликация Multi-master позволяет выполнять запросы чтения/записи + на нескольких, реплицируемых друг с другом компьюетрах. Эта особенность + также приводит к потере производительности, потому что необходима + синхронизация изменений между несколькими серверами. Наиболее + популярным решением для такой репликации в PostgreSQL является PGcluster. -

4.21) ðÏÞÅÍÕ ÉÍÅÎÁ ÔÁÂÌÉÃÙ É ËÏÌÏÎÏË ÎÅ - ÒÁÓÐÏÚÎÁÀÔÓÑ × × ÍÏ£Í ÚÁÐÒÏÓÅ? ðÏÞÅÍÕ ÎÅ ÓÏÈÒÁÎÑÀÔÓÑ ÚÁÇÌÁ×ÎÙÅ ÂÕË×Ù?

+

4.21) Почему имена таблицы и колонок не + распознаются в в моём запросе? Почему не сохраняются заглавные буквы?

-

îÁÉÂÏÌÅÅ ÞÁÓÔÏ ÉÍÅÎÁ ÎÅÒÁÓÐÏÚÎÁÀÔÓÑ ÉÚ-ÚÁ ÉÓÐÏÌØÚÏ×ÁÎÉÑ Ä×ÏÊÎÙÈ ËÁ×ÙÞÅË × - ÉÍÅÎÉ ÔÁÂÌÉÃÙ ÉÌÉ ËÏÌÏÎËÉ ÐÒÉ ÓÏÚÄÁÎÉÉ ÔÁÂÌÉÃÙ. ðÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ Ä×ÏÊÎÙÈ - ËÁ×ÙÞÅË, ÉÍÑ ÔÁÂÌÉÃÙ É ËÏÌÏÎËÉ (ËÏÔÏÒÙÅ ÎÁÚÙ×ÁÀÔ ÉÄÅÎÔÉÆÉËÁÔÏÒÁÍÉ) - ÓÏÈÒÁÎÑÀÔÓÑ × - ÒÅÇÉÓÔÒÏ-ÚÁ×ÉÓÉÍÏÍ ×ÉÄÅ; ÜÔÏ ÏÚÎÁÞÁÅÔ, ÞÔÏ ×Ù ÄÏÌÖÎÙ ÉÓÐÏÌØÚÏ×ÁÔØ - Ä×ÏÊÎÙÅ ËÁ×ÙÞËÉ, ËÏÇÄÁ ÕËÁÚÙ×ÁÅÔÅ ÜÔÉ ÉÍÅÎÁ × ÚÁÐÒÏÓÅ. îÅËÏÔÏÒÙÅ - ÉÎÔÅÒÆÅÊÓÙ, ÔÁËÉÅ ËÁË pgAdmin, ×Ï ×ÒÅÍÑ ÓÏÚÄÁÎÉÑ ÔÁÂÌÉÃÙ ÄÏÂÁ×ÌÑÀÔ - Ä×ÏÊÎÙÅ ËÁ×ÙÞËÉ Á×ÔÏÍÁÔÉÞÅÓËÉ. ôÁËÉÍ ÏÂÒÁÚÏÍ, ÞÔÏÂÙ ÉÄÅÎÔÉÆÉËÁÔÏÒÙ - ÒÁÓÐÏÚÎÁ×ÁÌÉÓØ ×Ù ÄÏÌÖÎÙ ÓÌÅÄÏ×ÁÔØ ÏÄÎÏÍÕ ÉÚ ÓÌÅÄÕÀÝÉÈ ÐÒÁ×ÉÌ: +

Наиболее часто имена нераспознаются из-за использования двойных кавычек в + имени таблицы или колонки при создании таблицы. При использовании двойных + кавычек, имя таблицы и колонки (которые называют идентификаторами) + сохраняются в + регистро-зависимом виде; это означает, что вы должны использовать + двойные кавычки, когда указываете эти имена в запросе. Некоторые + интерфейсы, такие как pgAdmin, во время создания таблицы добавляют + двойные кавычки автоматически. Таким образом, чтобы идентификаторы + распознавались вы должны следовать одному из следующих правил:

    -
  • éÚÂÅÇÁÔØ ÉÓÐÏÌØÚÏ×ÁÎÉÑ Ä×ÏÊÎÙÈ ËÁ×ÙÞÅË ÐÒÉ ÓÏÚÄÁÎÉÉ ÔÁÂÌÉÃ
  • -
  • éÓÐÏÌØÚÏ×ÁÔØ × ÉÄÅÎÔÉÆÉËÁÔÏÒÁÈ ÔÏÌØËÏ ÓÉÍ×ÏÌÙ ÎÉÖÎÅÇÏ ÒÅÇÉÓÔÒÁ
  • -
  • éÓÐÏÌØÚÏ×ÁÔØ Ä×ÏÊÎÙÅ ËÁ×ÙÞËÉ ÄÌÑ ÉÄÅÎÔÉÆÉËÁÔÏÒÏ× × ÚÁÐÒÏÓÁÈ
  • +
  • Избегать использования двойных кавычек при создании таблиц
  • +
  • Использовать в идентификаторах только символы нижнего регистра
  • +
  • Использовать двойные кавычки для идентификаторов в запросах
-- 2.40.0