From 3f540711efa312428d60f5e29ddf12f67b03f70a Mon Sep 17 00:00:00 2001
From: Bruce Momjian Дата последнего обновления: Понедельник 30 мая 09:11:03 EDT 2005 Дата последнего обновления: Пятница 16 сентября 14:07:22 EDT 2005 Английский вариант сопровождает: Брюс Момьян (Bruce Momjian) (pgman@candle.pha.pa.us) Перевёл на русский: Виктор Вислобоков (corochoone@perm.ru) Самую свежую английскую версию документа можно найти на
@@ -117,6 +117,8 @@
4.19) Почему я получаю ошибку "relation with OID ####
не существует", когда обращаютсь к временным таблицам в функциях PL/PgSQL? PostgreSQL произносится Post-Gres-Q-L (Пост-Грес-Кью-Эл),
- также часто говорят просто Postgres.Ответы на часто задаваемые вопросы по PostgreSQL
-
+ "mailto:admin@linuxshare.ru">admin@linuxshare.ru)
4.20) Какие есть решения для репликации?
+ 4.21) Почему имена таблицы и колонок не
+ распознаются в в моём запросе?
@@ -125,7 +127,10 @@
1.1) Что такое PostgreSQL? Как произносится это название?
PostgreSQL - это объектно-реляционная система управления базами данных (СУБД), которая имеет традиционные возможности коммерческих @@ -240,7 +245,7 @@
Последний выпуск PostgreSQL - это версия 8.0.2
+Последний выпуск PostgreSQL - это версия 8.0.3
Мы планируем выпускать новые старшие версии каждый год, а младшие версии каждые несколько месяцев.
@@ -651,6 +656,12 @@Максимальный размер таблицы и максимальное количество колонок могут быть увеличены в четыре раза, если размер блока по умолчанию будет увеличен до 32k.
+ +Существует ограничение, по которому индексы не могут создаваться для + колонок длиннее чем 2,000 символов. К счастью такие индексы вряд ли + действительно кому-то нужны. Уникальность гарантируется наилучим образом, + с помощью функционального индекса из хэша MD5 длинной колонки, а + полнотекстовое индексирование позволяет искать слова внутри колонки.
- 32 байт: на каждый заголовок строки в таблице (приблизительно) + 28 байт: на каждый заголовок строки в таблице (приблизительно) + 24 байта: одно поле с целочисленным типом и одно текстовое поле + 4 байта: указатель на странице для всей табличной строки ---------------------------------------- - 60 байт на строку в таблице + 56 байт на строку в таблице Размер страницы данных в PostgreSQL составляет 8192 байт (8 KB), так что: 8192 байт на страницу - --------------------- = 136 строк в таблице на страницу БД (округлённо) - 60 байт на строку в таблице + --------------------- = 146 строк в таблице на страницу БД (округлённо) + 56 байт на строку в таблице 100000 строк данных - ----------------------- = 735 страниц в БД (округлённо) - 128 строк в таблице на страницу + ----------------------- = 685 страниц в БД (округлённо) + 146 строк в таблице на страницу - 735 страниц БД * 8192 байт на страницу = 6,021,120 байт (6 MB) + 685 страниц БД * 8192 байт на страницу = 5,611,520 байт (5.6 MB)
Индексы не требуют так много, но поскольку они создаются для @@ -781,6 +792,12 @@
CREATE INDEX tabindex ON tab (lower(col));+
Если вышеуказанный индекс создаётся как UNIQUE, то + колонка, для которой он создаётся может хранить символы и в верхнем, + и в нижнем регистре, индес не может иметь идентичных значений, которые + отличаются только регистром. Чтобы в колонке можно было хранить символы + только в определённом регистре, используйте ограничение + CHECK или проверку через триггер.
Наиболее часто это происходит из-за использования двойных кавычек в + имени таблицы или колонки при создании таблицы. При использовании двойных + кавычек, имя таблицы и колонки (которые называют идентификаторами) + сохраняются в + регистро-зависимом виде; это означает, что вы должны использовать + двойные кавычки, когда указываете эти имена в запросе. Некоторые + интерфейсы, такие как pgAdmin, во время создания таблицы добавляют + двойные кавычки автоматически. Таким образом, чтобы идентификаторы + распознавались вы должны следовать одному из следующих правил: +