From e350d3d988c2fbb13790425e828634df29fc4321 Mon Sep 17 00:00:00 2001
From: Bruce Momjian Дата последнего обновления: Среда 22 Августа 19:20:40 EDT 2002 Дата последнего обновления: Среда 9 Октября 23:14:53 EDT 2002 Английский вариант сопровождает: Брюс Момьян (Bruce Momjian) (pgman@candle.pha.pa.us) Последний выпуск PostgreSQL - это версия 7.2.2. Последний выпуск PostgreSQL - это версия 7.2.3. Мы планируем выпускать новые версии каждые четыре месяца. Существуют следующие ограничения: В настоящий момент, мы связываем позапросы для внешних запросов
через последовательный перебор результата подзапроса для каждой
- записи внешнего запроса. Попробуйте заменить Ответы на часто задаваемые вопросы по PostgreSQL
-
@@ -142,6 +142,7 @@
4.25) Как мне вернуть из функции несколько записей?
4.26) Почему я не могу надежно создавать/удалять
временные таблицы в функциях PL/PgSQL?
+ 4.27) Какие опции репликации существуют?
Расширения PostgreSQL
5.1) Я написал функцию определяемую пользователем.
@@ -324,7 +325,7 @@
1.7) Какая последняя версия?
-
- Максимальный размер базы? неограничен (существуют базы на 60 GB)
+ Максимальный размер базы? неограничен (существуют базы на 1 TB)
Максимальный размер таблицы? 16 TB
Максимальный размер записи? 1.6 TB
Максимальный размер поля? 1 GB
@@ -1317,12 +1318,15 @@ BYTEA bytea
IN
на
+ записи внешнего запроса. Если подзапрос возвращает только несколько
+ записей и внешний запрос возвращает много записей,
+ IN
работает наиболее быстро. Чтобы
+ увеличить скорость в других запросах, замените IN
на
EXISTS
:
@@ -1330,10 +1334,12 @@ BYTEA bytea
SELECT *
FROM tab
- WHERE col1 IN (SELECT col2 FROM TAB2)
+ WHERE col IN (SELECT subcol FROM subtab)
+ Чтобы такая конструкция работала быстро, колонка SELECT *
FROM tab
- WHERE EXISTS (SELECT col2 FROM TAB2 WHERE col1 = col2)
+ WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col)
subcol
+ должна быть проиндексирована.
Мы надеемся убрать это ограничение в будущем выпуске.
4.23) Как мне выполнить внешнее связывание?
@@ -1384,8 +1390,10 @@ BYTEA bytea
Поскольку PostgreSQL загружает системные каталоги специфичные для базы
данных, непонятно даже, как должен себя вести такой межбазовый запрос.
Разумеется, клиент может одновременно устанавливать соедиенения с - различными базами данных и таких образом объединять информацию из них.
+/contrib/dblink позволяет запросы между базами, используя + вызовы функций. Разумеется, клиент может одновременно устанавливать + соедиенения с различными базами данных и таких образом объединять + информацию из них.
PL/PgSQL кэширует содержимое функции и один из негативных эффектов этого состоит в том, что если функция PL/PgSQL обращается к временной таблице и эта таблица позднее удаляется и пересоздается, а функция затем вызывается снова, то ее вызов приведет к ошибке, потому что скэшированное содержимое функции содержит указатель на старую временную таблицу. Чтобы решить эту проблему, используйте EXECUTE для доступа к временным таблицам в PL/PgSQL. Использование этого оператора заставит запрос - перегенерироваться каждый раз. -
Есть несколько решений для репликации типа master/slave. Они допускают + использование только одного сервера для внесения изменений в базу данных, + а slave серверы просто позволяют читать данные из базы.
+ +