diff --git a/doc/src/FAQ/FAQ_russian.html b/doc/src/FAQ/FAQ_russian.html index 7c9db560d5c..e92ce71c062 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? - Как избежать получения дублирующихся сообщений?
+

п·п╠я┴п╦п╣ п╡п╬п©я─п╬я│я▀

+ 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 графический интерфейс - пользователя?
+

п▓п╬п©я─п╬я│я▀ п©п╬п╩я▄п╥п╬п╡п╟я┌п╣п╩п╣п╧ п©п╬ п╨п╩п╦п╣п╫я┌я│п╨п╬п╧ я┤п╟я│я┌п╦

+ 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?

+

1.4) п²п╟ п╨п╟п╨п╦я┘ п©п╩п╟я┌я└п╬я─п╪п╟я┘ я─п╟п╠п╬я┌п╟п╣я┌ PostgreSQL?

-

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

+

п·п╠я▀я┤п╫п╬, PostgreSQL п╪п╬п╤п╣я┌ я─п╟п╠п╬я┌п╟я┌я▄ п╫п╟ п╩я▌п╠п╬п╧ я│п╬п╡я─п╣п╪п╣п╫п╫п╬п╧ п©п╩п╟я┌я└п╬я─п╪п╣ + я│п╬п╡п╪п╣я│я┌п╦п╪п╬п╧ я│ Unix. п▓ п╦п╫я│я┌я─я┐п╨я├п╦п╦ п©п╬ я┐я│я┌п╟п╫п╬п╡п╨п╣, п╡я▀ п╫п╟п╧п╢п╣я┌п╣ я│п©п╦я│п╬п╨ + я┌п╣я┘ п©п╩п╟я┌я└п╬я─п╪, п╫п╟ п╨п╬я┌п╬я─я▀я┘ п╠я▀п╩п╦ п©я─п╬п╡п╣п╢п╣п╫я▀ я┌п╣я│я┌п╬п╡я▀п╣ п╥п╟п©я┐я│п╨п╦ PostgreSQL + п╨ п╪п╬п╪п╣п╫я┌я┐ п╡я▀я┘п╬п╢п╟ п╢п╟п╫п╫п╬п╧ п╡п╣я─я│п╦п╦.

-

PostgreSQL также работает на операционных системах Microsoft - Windows, основанных на NT, таких как Win2000 SP4, WinXP и Win2003. - Пакет инсталлятора доступен по адресу +

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 и вам лучше бы выбрать - для базы данных какое-либо другое облегченное решение.

+

PostgreSQL я─п╟п╥я─п╟п╠п╟я┌я▀п╡п╟п╣я┌я│я▐ п©п╬ п╟я─я┘п╦я┌п╣п╨я┌я┐я─п╣ п╨п╩п╦п╣п╫я┌/я│п╣я─п╡п╣я─, п╨п╬я┌п╬я─п╟я▐ + я┌я─п╣п╠я┐п╣я┌ п╬я┌п╢п╣п╩я▄п╫я▀я┘ п©я─п╬я├п╣я│я│п╬п╡ п╢п╩я▐ п╨п╟п╤п╢п╬пЁп╬ п╨п╩п╦п╣п╫я┌п╟ п╦ я│п╣я─п╡п╣я─п╟, п╟ я┌п╟п╨п╤п╣ + п╫п╣я│п╨п╬п╩я▄п╨п╬ п╡я│п©п╬п╪п╬пЁп╟я┌п╣п╩я▄п╫я▀я┘ п©я─п╬я├п╣я│я│п╬п╡. п°п╫п╬пЁп╦п╣ п╡я│я┌я─п╟п╦п╡п╟п╣п╪я▀п╣ п╟я─я┘п╦я┌п╣п╨я┌я┐я─я▀ + п╪п╬пЁя┐я┌ я│п╬п╬я┌п╡п╣я┌я│я┌п╡п╬п╡п╟я┌я▄ я┌п╟п╨п╦п╪ я┌я─п╣п╠п╬п╡п╟п╫п╦я▐п╪. п·п╢п╫п╟п╨п╬, п╣я│п╩п╦ п╡п╟я┬п╟ п╡я│я┌я─п╟п╦п╡п╟п╣п╪п╟я▐ + п╟я─я┘п╦я┌п╣п╨я┌я┐я─п╟ я┌я─п╣п╠я┐п╣я┌ я│п╣я─п╡п╣я─ п╠п╟п╥ п╢п╟п╫п╫я▀я┘ п╢п╩я▐ п╥п╟п©я┐я│п╨п╟ п╡п╫я┐я┌я─п╦ п©я─п╦п╨п╩п╟п╢п╫п╬пЁп╬ + п©я─п╬я├п╣я│я│п╟, п╡я▀ п╫п╣ п╪п╬п╤п╣я┌п╣ п╦я│п©п╬п╩я▄п╥п╬п╡п╟я┌я▄ Postgres п╦ п╡п╟п╪ п╩я┐я┤я┬п╣ п╠я▀ п╡я▀п╠я─п╟я┌я▄ + п╢п╩я▐ п╠п╟п╥я▀ п╢п╟п╫п╫я▀я┘ п╨п╟п╨п╬п╣-п╩п╦п╠п╬ п╢я─я┐пЁп╬п╣ п╬п╠п╩п╣пЁя┤п╣п╫п╫п╬п╣ я─п╣я┬п╣п╫п╦п╣.

-

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

+

1.14) п▒я┐п╢п╣я┌ п╩п╦ PostgreSQL я─п╟п╠п╬я┌п╟я┌я▄ я│ + п©п╬я│п╩п╣п╢п╫п╦п╪п╦ п╦п╥п╪п╣п╫п╣п╫п╦я▐п╪п╦, п╡ я─п╟п╥п╫я▀я┘ я│я┌я─п╟п╫я▀я┘, п╨п╟я│п╟я▌я┴п╦п╪п╦я│я▐ п╢п╫п╣п╡п╫п╬пЁп╬ п╡я─п╣п╪п╣п╫п╦?

-

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

+

п≤п╥п╪п╣п╫п╣п╫п╦я▐ п╡ я│п╬я┘я─п╟п╫п╣п╫п╦п╦ п╢п╫п╣п╡п╫п╬пЁп╬ п╡я─п╣п╪п╣п╫п╦ п╡ п║п╗п░ п╡п╨п╩я▌я┤п╣п╫я▀ п╡ 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 для получения этой информации?

+

4.2) п п╟п╨ п╪п╫п╣ п╫п╟п╧я┌п╦ п╨п╟п╨п╦п╣ я┌п╟п╠п╩п╦я├я▀, п╦п╫п╢п╣п╨я│я▀, + п╠п╟п╥я▀ п╢п╟п╫п╫я▀я┘ п╦ п©п╬п╩я▄п╥п╬п╡п╟я┌п╣п╩п╦ я│я┐я┴п╣я│я┌п╡я┐я▌я┌? п п╟п╨ п╪п╫п╣ я┐п╡п╦п╢п╣я┌я▄ п╥п╟п©я─п╬я│я▀, + п╨п╬я┌п╬я─я▀п╣ п╦я│п©п╬п╩я▄п╥я┐п╣я┌ psql п╢п╩я▐ п©п╬п╩я┐я┤п╣п╫п╦я▐ я█я┌п╬п╧ п╦п╫я└п╬я─п╪п╟я├п╦п╦?

-

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

+

п╖я┌п╬п╠я▀ п©я─п╬я│п╪п╟я┌я─п╦п╡п╟я┌я▄ я┌п╟п╠п╩п╦я├я▀ п╡ 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, так что ограничения, которые - накладывает файловая система не важны.

+

п°п╟п╨я│п╦п╪п╟п╩я▄п╫я▀п╧ я─п╟п╥п╪п╣я─ я┌п╟п╠п╩п╦я├я▀ п╡ 32 TB п╫п╣ я┌я─п╣п╠я┐п╣я┌ я┤я┌п╬п╠я▀ п╬п©п╣я─п╟я├п╦п╬п╫п╫п╟я▐ + я│п╦я│я┌п╣п╪п╟ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╩п╟ я└п╟п╧п╩я▀ п╠п╬п╩я▄я┬п╦я┘ я─п╟п╥п╪п╣я─п╬п╡. п▒п╬п╩я▄я┬п╦п╣ я┌п╟п╠п╩п╦я├я▀ я┘я─п╟п╫я▐я┌я│я▐ + п╨п╟п╨ п╪п╫п╬п╤п╣я│я┌п╡п╬ я└п╟п╧п╩п╬п╡ я─п╟п╥п╪п╣я─п╬п╪ п╡ 1 GB, я┌п╟п╨ я┤я┌п╬ п╬пЁя─п╟п╫п╦я┤п╣п╫п╦я▐, п╨п╬я┌п╬я─я▀п╣ + п╫п╟п╨п╩п╟п╢я▀п╡п╟п╣я┌ я└п╟п╧п╩п╬п╡п╟я▐ я│п╦я│я┌п╣п╪п╟ п╫п╣ п╡п╟п╤п╫я▀.

-

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

+

п°п╟п╨я│п╦п╪п╟п╩я▄п╫я▀п╧ я─п╟п╥п╪п╣я─ я┌п╟п╠п╩п╦я├я▀ п╦ п╪п╟п╨я│п╦п╪п╟п╩я▄п╫п╬п╣ п╨п╬п╩п╦я┤п╣я│я┌п╡п╬ п╨п╬п╩п╬п╫п╬п╨ + п╪п╬пЁя┐я┌ п╠я▀я┌я▄ я┐п╡п╣п╩п╦я┤п╣п╫я▀ п╡ я┤п╣я┌я▀я─п╣ я─п╟п╥п╟, п╣я│п╩п╦ я─п╟п╥п╪п╣я─ п╠п╩п╬п╨п╟ п©п╬ я┐п╪п╬п╩я┤п╟п╫п╦я▌ п╠я┐п╢п╣я┌ + я┐п╡п╣п╩п╦я┤п╣п╫ п╢п╬ 32k.

-

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

+

п║я┐я┴п╣я│я┌п╡я┐п╣я┌ п╬пЁя─п╟п╫п╦я┤п╣п╫п╦п╣, п©п╬ п╨п╬я┌п╬я─п╬п╪я┐ п╦п╫п╢п╣п╨я│я▀ п╫п╣ п╪п╬пЁя┐я┌ я│п╬п╥п╢п╟п╡п╟я┌я▄я│я▐ п╢п╩я▐ + п╨п╬п╩п╬п╫п╬п╨ п╢п╩п╦п╫п╫п╣п╣ я┤п╣п╪ 2,000 я│п╦п╪п╡п╬п╩п╬п╡. п  я│я┤п╟я│я┌я▄я▌ я┌п╟п╨п╦п╣ п╦п╫п╢п╣п╨я│я▀ п╡я─я▐п╢ п╩п╦ + п╢п╣п╧я│я┌п╡п╦я┌п╣п╩я▄п╫п╬ п╨п╬п╪я┐-я┌п╬ п╫я┐п╤п╫я▀. пёп╫п╦п╨п╟п╩я▄п╫п╬я│я┌я▄ пЁп╟я─п╟п╫я┌п╦я─я┐п╣я┌я│я▐ п╫п╟п╦п╩я┐я┤п╦п╪ п╬п╠я─п╟п╥п╬п╪, + я│ п©п╬п╪п╬я┴я▄я▌ я└я┐п╫п╨я├п╦п╬п╫п╟п╩я▄п╫п╬пЁп╬ п╦п╫п╢п╣п╨я│п╟ п╦п╥ я┘я█я┬п╟ MD5 п╢п╩п╦п╫п╫п╬п╧ п╨п╬п╩п╬п╫п╨п╦, п╟ + п©п╬п╩п╫п╬я┌п╣п╨я│я┌п╬п╡п╬п╣ п╦п╫п╢п╣п╨я│п╦я─п╬п╡п╟п╫п╦п╣ п©п╬п╥п╡п╬п╩я▐п╣я┌ п╦я│п╨п╟я┌я▄ я│п╩п╬п╡п╟ п╡п╫я┐я┌я─п╦ п╨п╬п╩п╬п╫п╨п╦.

-

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

+

4.5) п п╟п╨ п╪п╫п╬пЁп╬ п╢п╦я│п╨п╬п╡п╬пЁп╬ п©я─п╬я│я┌я─п╟п╫я│я┌п╡п╟ п╡ п╠п╟п╥п╣ п╢п╟п╫п╫я▀я┘ + п╫я┐п╤п╫п╬ п╢п╩я▐ я│п╬я┘я─п╟п╫п╣п╫п╦я▐ п╢п╟п╫п╫я▀я┘ п╦п╥ п╬п╠я▀я┤п╫п╬пЁп╬ я┌п╣п╨я│я┌п╬п╡п╬пЁп╬ я└п╟п╧п╩п╟?

-

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

+

п║пёп▒п■ PostgreSQL п╪п╬п╤п╣я┌ п©п╬я┌я─п╣п╠п╬п╡п╟я┌я▄я│я▐ п╢п╦я│п╨п╬п╡п╬пЁп╬ п©я─п╬я│я┌я─п╟п╫я│я┌п╡п╟ п╢п╬ 5 я─п╟п╥ + п╠п╬п╩я▄я┬п╣ п╢п╩я▐ я│п╬я┘я─п╟п╫п╣п╫п╦я▐ п╢п╟п╫п╫я▀я┘ п╦п╥ п©я─п╬я│я┌п╬пЁп╬ я┌п╣п╨я│я┌п╬п╡п╬пЁп╬ я└п╟п╧п╩п╟.

-

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

+

п▓ п╨п╟я┤п╣я│я┌п╡п╣ п©я─п╦п╪п╣я─п╟, я─п╟я│я│п╪п╬я┌я─п╦п╪ я└п╟п╧п╩ п╡ 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 - и в этом случае индекс будет использоваться, поскольку при выполнении - будет возвращаться небольшая часть таблицы.

+

п·п╠я▀я┤п╫п╬ п╦п╫п╢п╣п╨я│я▀ п╫п╣ п╦я│п©п╬п╩я▄п╥я┐я▌я┌я│я▐ п╢п╩я▐ ORDER BY п╦п╩п╦ п╢п╩я▐ + п╡я▀п©п╬п╩п╫п╣п╫п╦я▐ я│п╡я▐п╥я▀п╡п╟п╫п╦п╧. п÷п╬я│п╩п╣п╢п╬п╡п╟я┌п╣п╩я▄п╫я▀п╧ п©п╣я─п╣п╠п╬я─ я│п╩п╣п╢я┐я▌я┴п╦п╧ п╥п╟ я▐п╡п╫п╬п╧ + я│п╬я─я┌п╦я─п╬п╡п╨п╬п╧ п╬п╠я▀я┤п╫п╬ п╠я▀я│я┌я─п╣п╣, я┤п╣п╪ п©п╬п╦я│п╨ п©п╬ п╦п╫п╢п╣п╨я│п╟п╪ п╡ п╠п╬п╩я▄я┬п╬п╧ я┌п╟п╠п╩п╦я├п╣. + п·п╢п╫п╟п╨п╬, ORDER BY я┤п╟я│я┌п╬ п╨п╬п╪п╠п╦п╫п╦я─я┐п╣я┌я│я▐ я│ LIMIT + п╦ п╡ я█я┌п╬п╪ я│п╩я┐я┤п╟п╣ п╦п╫п╢п╣п╨я│ п╠я┐п╢п╣я┌ п╦я│п©п╬п╩я▄п╥п╬п╡п╟я┌я▄я│я▐, п©п╬я│п╨п╬п╩я▄п╨я┐ п©я─п╦ п╡я▀п©п╬п╩п╫п╣п╫п╦п╦ + п╠я┐п╢п╣я┌ п╡п╬п╥п╡я─п╟я┴п╟я┌я▄я│я▐ п╫п╣п╠п╬п╩я▄я┬п╟я▐ я┤п╟я│я┌я▄ я┌п╟п╠п╩п╦я├я▀.

-

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

п∙я│п╩п╦ п╡п╟п╪ п╨п╟п╤п╣я┌я│я▐, я┤я┌п╬ п╬п©я┌п╦п╪п╦п╥п╟я┌п╬я─ п╫п╣п╨п╬я─я─п╣п╨я┌п╫п╬ п╡я▀п╠п╦я─п╟п╣я┌ п©п╬я│п╩п╣п╢п╬п╡п╟я┌п╣п╩я▄п╫я▀п╧ + п©п╣я─п╣п╠п╬я─, п╦я│п©п╬п╩я▄п╥я┐п╧я┌п╣ SET enable_seqscan TO 'off' п╦ + п╥п╟п©я┐я│я┌п╦я┌п╣ п╥п╟п©я─п╬я│ я│п╫п╬п╡п╟, я┤я┌п╬п╠я▀ я┐п╡п╦п╢п╣я┌я▄, п╢п╣п╧я│я┌п╡п╦я┌п╣п╩я▄п╫п╬ п╩п╦ я│п╨п╟п╫п╦я─п╬п╡п╟п╫п╦п╣ + п╦п╫п╢п╣п╨я│п╬п╡ п╠я▀я│я┌я─п╣п╣.

-

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

+

п п╬пЁп╢п╟ п╦я│п©п╬п╩я▄п╥я┐я▌я┌я│я▐ п╬п©п╣я─п╟я├п╦п╦ я│ я┬п╟п╠п╩п╬п╫п╟п╪п╦, п╫п╟п©я─п╦п╪п╣я─ 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 или проверку через триггер.

+

п∙я│п╩п╦ п╡я▀я┬п╣я┐п╨п╟п╥п╟п╫п╫я▀п╧ п╦п╫п╢п╣п╨я│ я│п╬п╥п╢п╟я▒я┌я│я▐ п╨п╟п╨ UNIQUE, я┌п╬ + п╨п╬п╩п╬п╫п╨п╟, п╢п╩я▐ п╨п╬я┌п╬я─п╬п╧ п╬п╫ я│п╬п╥п╢п╟я▒я┌я│я▐ п╪п╬п╤п╣я┌ я┘я─п╟п╫п╦я┌я▄ я│п╦п╪п╡п╬п╩я▀ п╦ п╡ п╡п╣я─я┘п╫п╣п╪, + п╦ п╡ п╫п╦п╤п╫п╣п╪ я─п╣пЁп╦я│я┌я─п╣, п╦п╫п╢п╣я│ п╫п╣ п╪п╬п╤п╣я┌ п╦п╪п╣я┌я▄ п╦п╢п╣п╫я┌п╦я┤п╫я▀я┘ п╥п╫п╟я┤п╣п╫п╦п╧, п╨п╬я┌п╬я─я▀п╣ + п╬я┌п╩п╦я┤п╟я▌я┌я│я▐ я┌п╬п╩я▄п╨п╬ я─п╣пЁп╦я│я┌я─п╬п╪. п╖я┌п╬п╠я▀ п╡ п╨п╬п╩п╬п╫п╨п╣ п╪п╬п╤п╫п╬ п╠я▀п╩п╬ я┘я─п╟п╫п╦я┌я▄ я│п╦п╪п╡п╬п╩я▀ + я┌п╬п╩я▄п╨п╬ п╡ п╬п©я─п╣п╢п╣п╩я▒п╫п╫п╬п╪ я─п╣пЁп╦я│я┌я─п╣, п╦я│п©п╬п╩я▄п╥я┐п╧я┌п╣ п╬пЁя─п╟п╫п╦я┤п╣п╫п╦п╣ + CHECK п╦п╩п╦ п©я─п╬п╡п╣я─п╨я┐ я┤п╣я─п╣п╥ я┌я─п╦пЁпЁп╣я─.

-

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

+

4.9) п п╟п╨ п╪п╫п╣ п╬п©я─п╣п╢п╣п╩п╦я┌я▄, я┤я┌п╬ п╥п╫п╟я┤п╣п╫п╦п╣ п©п╬п╩я▐ п╡ п╨п╟п╨п╬п╪-п╩п╦п╠п╬ + п╥п╟п©я─п╬я│п╣ я─п╟п╡п╫п╬ NULL? п п╟п╨ п╪п╫п╣ я│п╬п╣п╢п╦п╫п╦я┌я▄ п╡п╬п╥п╪п╬п╤п╫я▀п╣ + NULL? п°п╬пЁя┐ я▐ я│п╬я─я┌п╦я─п╬п╡п╟я┌я▄ п©п╬п╩я▐ NULL п╦п╩п╦ п╫п╣я┌?

-

Вы просто сравниваете значение с IS NULL и - IS NOT 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" типами (т.е., первые - четыре байта на диске являются длинной, за которой следуют данные). - Таким образом, фактически используемое пространство больше, чем - обозначенный размер. Однако, длинные значения также сжимаются, - так что занимаемое дисковое пространство может также быть и меньше, - чем ожидалось.

+

п÷п╣я─п╡я▀п╣ я┤п╣я┌я▀я─п╣ я┌п╦п©п╟ я▐п╡п╩я▐я▌я┌я│я▐ "varlena" я┌п╦п©п╟п╪п╦ (я┌.п╣., п©п╣я─п╡я▀п╣ + я┤п╣я┌я▀я─п╣ п╠п╟п╧я┌п╟ п╫п╟ п╢п╦я│п╨п╣ я▐п╡п╩я▐я▌я┌я│я▐ п╢п╩п╦п╫п╫п╬п╧, п╥п╟ п╨п╬я┌п╬я─п╬п╧ я│п╩п╣п╢я┐я▌я┌ п╢п╟п╫п╫я▀п╣). + п╒п╟п╨п╦п╪ п╬п╠я─п╟п╥п╬п╪, я└п╟п╨я┌п╦я┤п╣я│п╨п╦ п╦я│п©п╬п╩я▄п╥я┐п╣п╪п╬п╣ п©я─п╬я│я┌я─п╟п╫я│я┌п╡п╬ п╠п╬п╩я▄я┬п╣, я┤п╣п╪ + п╬п╠п╬п╥п╫п╟я┤п╣п╫п╫я▀п╧ я─п╟п╥п╪п╣я─. п·п╢п╫п╟п╨п╬, п╢п╩п╦п╫п╫я▀п╣ п╥п╫п╟я┤п╣п╫п╦я▐ я┌п╟п╨п╤п╣ я│п╤п╦п╪п╟я▌я┌я│я▐, + я┌п╟п╨ я┤я┌п╬ п╥п╟п╫п╦п╪п╟п╣п╪п╬п╣ п╢п╦я│п╨п╬п╡п╬п╣ п©я─п╬я│я┌я─п╟п╫я│я┌п╡п╬ п╪п╬п╤п╣я┌ я┌п╟п╨п╤п╣ п╠я▀я┌я▄ п╦ п╪п╣п╫я▄я┬п╣, + я┤п╣п╪ п╬п╤п╦п╢п╟п╩п╬я│я▄.

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

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

+ VARCHAR(n) - я█я┌п╬ п╩я┐я┤я┬п╣п╣ я─п╣я┬п╣п╫п╦п╣, п╨п╬пЁп╢п╟ п╫я┐п╤п╫п╬ я┘я─п╟п╫п╦я┌я▄ + я│я┌я─п╬п╨п╦ п©п╣я─п╣п╪п╣п╫п╫п╬п╧ п╢п╩п╦п╫я▀, п╫п╣ п©я─п╣п╡я▀я┬п╟я▌я┴п╦п╣ п╬п©я─п╣п╢п╣п╩п╣п╫п╫п╬пЁп╬ я─п╟п╥п╪п╣я─п╟. + TEXT - я█я┌п╬ п╩я┐я┤я┬п╣п╣ я─п╣я┬п╣п╫п╦п╣ п╢п╩я▐ я│я┌я─п╬п╨ п╫п╣п╬пЁя─п╟п╫п╦я┤п╣п╫п╫п╬п╧ п╢п╩п╦п╫я▀, + я│ п╪п╟п╨я│п╦п╪п╟п╩я▄п╫п╬ п╢п╬п©я┐я│я┌п╦п╪п╬п╧ п╢п╩п╦п╫п╬п╧ п╡ 1 пЁп╦пЁп╟п╠п╟п╧я┌. +

CHAR(n) - я█я┌п╬ п╩я┐я┤я┬п╣п╣ я─п╣я┬п╣п╫п╦п╣ п╢п╩я▐ я┘я─п╟п╫п╣п╫п╦я▐ я│я┌я─п╬п╨, п╨п╬я┌п╬я─я▀п╣ + п╬п╠я▀я┤п╫п╬ п╦п╪п╣я▌я┌ п╬п╢п╦п╫п╟п╨п╬п╡я┐я▌ п╢п╩п╦п╫я┐. CHAR(n) п╥п╟п©п╬п╩п╫я▐п╣я┌я│я▐ + п©я┐я│я┌п╬я┌п╬п╧ п╢п╬ п╥п╟п╢п╟п╫п╫п╬п╧ п╢п╩п╦п╫я▀, п╡ я┌п╬ п╡я─п╣п╪я▐ п╨п╟п╨ VARCHAR(n) + я┘я─п╟п╫п╦я┌ я┌п╬п╩я▄п╨п╬ я│п╦п╪п╡п╬п╩я▀, п╦п╥ п╨п╬я┌п╬я─я▀я┘ я│п╬я│я┌п╬п╦я┌ я│я┌я─п╬п╨п╟. + BYTEA п╦я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ п╢п╩я▐ я┘я─п╟п╫п╣п╫п╦я▐ п╠п╦п╫п╟я─п╫я▀я┘ п╢п╟п╫п╫я▀я┘, п╥п╫п╟я┤п╣п╫п╦я▐ + п╨п╬я┌п╬я─я▀я┘ п╪п╬пЁя┐я┌ п╡п╨п╩я▌я┤п╟я┌я▄ NULL п╠п╟п╧я┌я▀. п▓я│п╣ я┌п╦п©я▀ п╬п©п╦я│п╟п╫п╫я▀п╣ + п╥п╢п╣я│я▄, п╦п╪п╣я▌я┌ я│я┘п╬п╢п╫я▀п╣ я┘п╟я─п╟п╨я┌п╣я─п╦я│я┌п╦п╨п╦ п©я─п╬п╦п╥п╡п╬п╢п╦я┌п╣п╩я▄п╫п╬я│я┌п╦.

-

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

+

4.11.1) п п╟п╨ п╪п╫п╣ я│п╬п╥п╢п╟я┌я▄ п©п╬п╩п╣ + serial/я│-п╟п╡я┌п╬-я┐п╡п╣п╩п╦я┤п╣п╫п╦п╣п╪?

-

PostgreSQL поддерживает тип данных 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 для связывания своих внутренних таблиц.

+

п∙я│п╩п╦ я┌п╟п╠п╩п╦я├п╟ я│п╬п╥п╢п╟п╫п╟ я│ WITH OIDS, я┌п╬ п╨п╟п╤п╢п╟я▐ я│я┌я─п╬п╨п╟ + п©п╬п╩я┐я┤п╟п╣я┌ я┐п╫п╦п╨п╟п╩я▄п╫я▀п╧ п╦п╫п╢п╣п╫я┌п╦я└п╦п╨п╟я┌п╬я─ OID. + OID - я█я┌п╬ п╟п╡я┌п╬п╪п╟я┌п╦я┤п╣я│п╨п╦ п╫п╟п╥п╫п╟я┤п╟п╣п╪п╬п╣ я┐п╫п╦п╨п╟п╩я▄п╫п╬п╣ 4-я┘ + п╠п╟п╧я┌п╬п╡п╬п╣ я├п╣п╩п╬п╣ я┤п╦я│п╩п╬, п╨п╬я┌п╬я─п╬п╣ я┐п╫п╦п╨п╟п╩я▄п╫п╬ п╢п╩я▐ п╡я│п╣п╧ я┐я│я┌п╟п╫п╬п╡п╩п╣п╫п╫п╬п╧ п║пёп▒п■. + п·п╢п╫п╟п╨п╬, п©п╬я│п╩п╣ я┌п╬пЁп╬ п╨п╟п╨ п╣пЁп╬ п╥п╫п╟я┤п╣п╫п╦п╣ п©я─п╣п╡я▀я│п╦я┌ 4 п╪п╦п╩п╩п╦п╟я─п╢п╟, п╥п╫п╟я┤п╣п╫п╦я▐ + OID п╫п╟я┤п╦п╫п╟я▌я┌ п╢я┐п╠п╩п╦я─п╬п╡п╟я┌я▄я│я▐. PostgreSQL п╦я│п©п╬п╩я▄п╥я┐п╣я┌ + OID п╢п╩я▐ я│п╡я▐п╥я▀п╡п╟п╫п╦я▐ я│п╡п╬п╦я┘ п╡п╫я┐я┌я─п╣п╫п╫п╦я┘ я┌п╟п╠п╩п╦я├.

-

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

п■п╩я▐ я┐п╫п╦п╨п╟п╩я▄п╫п╬пЁп╬ п╥п╫п╟я┤п╣п╫п╦я▐ п╡ я│я┌я─п╬п╨п╟я┘ я┌п╟п╠п╩п╦я├я▀ п©п╬п╩я▄п╥п╬п╡п╟я┌п╣п╩я▐, п╩я┐я┤я┬п╦п╪ + я│п©п╬я│п╬п╠п╬п╪ я▐п╡п╩я▐п╣я┌я│я▐ п╦я│п©п╬п╩я▄п╥п╬п╡п╟п╫п╦п╣ SERIAL п╡п╪п╣я│я┌п╬ + OID, п©п╬я┌п╬п╪я┐ я┤я┌п╬ п©п╬я│п╩п╣п╢п╬п╡п╟я┌п╣п╩я▄п╫п╬я│я┌п╦ SERIAL + я┐п╫п╦п╨п╟п╩я▄п╫я▀ я┌п╬п╩я▄п╨п╬ п╡п╫я┐я┌я─п╦ я┌п╟п╠п╩п╦я├я▀ п╦ я┌п╟п╨п╦п╪ п╬п╠я─п╟п╥п╬п╪ п╪п╣п╫я▄я┬п╣ п©п╬п╢п╡п╣я─п╤п╣п╫я▀ + п©п╣я─п╣п©п╬п╩п╫п╣п╫п╦я▌. п■п╩я▐ я┘я─п╟п╫п╣п╫п╦я▐ п╥п╫п╟я┤п╣п╫п╦п╧ 8-п╪п╦ п╠п╟п╧я┌п╫п╬п╧ п©п╬я│п╩п╣п╢п╬п╡п╟я┌п╣п╩я▄п╫п╬я│я┌п╦ + п╢п╬я│я┌я┐п©п╣п╫ я┌п╦п© SERIAL8. -

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

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

+

CTID п╦я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ п╢п╩я▐ п╦п╢п╣п╫я┌п╦я└п╦п╨п╟я├п╦п╦ я│п©п╣я├п╦п╟п╩я▄п╫я▀я┘ + я└п╦п╥п╦я┤п╣я│п╨п╦я┘ п╥п╟п©п╦я│п╣п╧ я│ п╠п╩п╬я┤п╫я▀п╪п╦ п╦ offset п╥п╫п╟я┤п╣п╫п╦я▐п╪п╦. CTID + п╦п╥п╪п╣п╫я▐п╣я┌я│я▐ п©п╬я│п╩п╣ я┌п╬пЁп╬ п╨п╟п╨ я│я┌я─п╬п╨п╦ п╡ я┌п╟п╠п╩п╦я├п╣ п╠я▀п╩п╦ п╦п╥п╪п╣п╫п╣п╫я▀ п╦п╩п╦ п©п╣я─п╣пЁя─я┐п╤п╣п╫я▀. +

TID п╦я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ п╦п╫п╢п╣п╨я│п╫я▀п╪п╦ п╥п╟п©п╦я│я▐п╪п╦ п╡ п╨п╟я┤п╣я│я┌п╡п╣ + я┐п╨п╟п╥п╟я┌п╣п╩я▐ п╫п╟ я└п╦п╥п╦я┤п╣я│п╨п╦п╣ п╥п╟п©п╦я│п╦.

-

4.13) Почему я получаю ошибку "ERROR: Memory +

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, PL/PgSQL п╨я█я┬п╦я─я┐п╣я┌ я│я├п╣п╫п╟я─п╦п╦ я└я┐п╫п╨я├п╦п╦ п╦ п╬п╢п╦п╫ п╦п╥ + п╫п╣пЁп╟я┌п╦п╡п╫я▀я┘ я█я└я└п╣п╨я┌п╬п╡ я█я┌п╬пЁп╬ я│п╬я│я┌п╬п╦я┌ п╡ я┌п╬п╪, я┤я┌п╬ п╣я│п╩п╦ я└я┐п╫п╨я├п╦я▐ PL/PgSQL п╬п╠я─п╟я┴п╟п╣я┌я│я▐ + п╨ п╡я─п╣п╪п╣п╫п╫п╬п╧ я┌п╟п╠п╩п╦я├п╣ п╦ я█я┌п╟ я┌п╟п╠п╩п╦я├п╟ п©п╬п╥п╢п╫п╣п╣ я┐п╢п╟п╩я▐п╣я┌я│я▐ п╦ п©п╣я─п╣я│п╬п╥п╢п╟п╣я┌я│я▐, п╟ я└я┐п╫п╨я├п╦я▐ + п╥п╟я┌п╣п╪ п╡я▀п╥я▀п╡п╟п╣я┌я│я▐ я│п╫п╬п╡п╟, я┌п╬ п╣п╣ п╡я▀п╥п╬п╡ п©я─п╦п╡п╣п╢п╣я┌ п╨ п╬я┬п╦п╠п╨п╣, п©п╬я┌п╬п╪я┐ я┤я┌п╬ я│п╨я█я┬п╦я─п╬п╡п╟п╫п╫п╬п╣ + я│п╬п╢п╣я─п╤п╦п╪п╬п╣ я└я┐п╫п╨я├п╦п╦ я│п╬п╢п╣я─п╤п╦я┌ я┐п╨п╟п╥п╟я┌п╣п╩я▄ п╫п╟ я│я┌п╟я─я┐я▌ п╡я─п╣п╪п╣п╫п╫я┐я▌ я┌п╟п╠п╩п╦я├я┐. п╖я┌п╬п╠я▀ я─п╣я┬п╦я┌я▄ + я█я┌я┐ п©я─п╬п╠п╩п╣п╪я┐, п╦я│п©п╬п╩я▄п╥я┐п╧я┌п╣ EXECUTE п╢п╩я▐ п╢п╬я│я┌я┐п©п╟ п╨ п╡я─п╣п╪п╣п╫п╫я▀п╪ + я┌п╟п╠п╩п╦я├п╟п╪ п╡ PL/PgSQL. п≤я│п©п╬п╩я▄п╥п╬п╡п╟п╫п╦п╣ я█я┌п╬пЁп╬ п╬п©п╣я─п╟я┌п╬я─п╟ п╥п╟я│я┌п╟п╡п╦я┌ п╥п╟п©я─п╬я│ + п©п╣я─п╣пЁп╣п╫п╣я─п╦я─п╬п╡п╟я┌я▄я│я▐ п╨п╟п╤п╢я▀п╧ я─п╟п╥.

-

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

+

п▓ 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, п╡п╬ п╡я─п╣п╪я▐ я│п╬п╥п╢п╟п╫п╦я▐ я┌п╟п╠п╩п╦я├я▀ п╢п╬п╠п╟п╡п╩я▐я▌я┌ + п╢п╡п╬п╧п╫я▀п╣ п╨п╟п╡я▀я┤п╨п╦ п╟п╡я┌п╬п╪п╟я┌п╦я┤п╣я│п╨п╦. п╒п╟п╨п╦п╪ п╬п╠я─п╟п╥п╬п╪, я┤я┌п╬п╠я▀ п╦п╢п╣п╫я┌п╦я└п╦п╨п╟я┌п╬я─я▀ + я─п╟я│п©п╬п╥п╫п╟п╡п╟п╩п╦я│я▄ п╡я▀ п╢п╬п╩п╤п╫я▀ я│п╩п╣п╢п╬п╡п╟я┌я▄ п╬п╢п╫п╬п╪я┐ п╦п╥ я│п╩п╣п╢я┐я▌я┴п╦я┘ п©я─п╟п╡п╦п╩:

    -
  • Избегать использования двойных кавычек при создании таблиц
  • -
  • Использовать в идентификаторах только символы нижнего регистра
  • -
  • Использовать двойные кавычки для идентификаторов в запросах
  • +
  • п≤п╥п╠п╣пЁп╟я┌я▄ п╦я│п©п╬п╩я▄п╥п╬п╡п╟п╫п╦я▐ п╢п╡п╬п╧п╫я▀я┘ п╨п╟п╡я▀я┤п╣п╨ п©я─п╦ я│п╬п╥п╢п╟п╫п╦п╦ я┌п╟п╠п╩п╦я├
  • +
  • п≤я│п©п╬п╩я▄п╥п╬п╡п╟я┌я▄ п╡ п╦п╢п╣п╫я┌п╦я└п╦п╨п╟я┌п╬я─п╟я┘ я┌п╬п╩я▄п╨п╬ я│п╦п╪п╡п╬п╩я▀ п╫п╦п╤п╫п╣пЁп╬ я─п╣пЁп╦я│я┌я─п╟
  • +
  • п≤я│п©п╬п╩я▄п╥п╬п╡п╟я┌я▄ п╢п╡п╬п╧п╫я▀п╣ п╨п╟п╡я▀я┤п╨п╦ п╢п╩я▐ п╦п╢п╣п╫я┌п╦я└п╦п╨п╟я┌п╬я─п╬п╡ п╡ п╥п╟п©я─п╬я│п╟я┘