diff --git a/doc/FAQ_AIX b/doc/FAQ_AIX
index 64ccccb221..430ab0d750 100644
--- a/doc/FAQ_AIX
+++ b/doc/FAQ_AIX
@@ -1,5 +1,5 @@
From: Zeugswetter Andreas
-$Date: 2005/09/22 22:14:10 $
+$Date: 2005/09/28 11:33:41 $
On AIX 4.3.2 PostgreSQL compiled with the native IBM compiler xlc
(vac.C 5.0.1) passes all regression tests. Other versions of OS and
diff --git a/doc/FAQ_russian b/doc/FAQ_russian
index f2fd1ccd7b..5637f548c5 100644
--- a/doc/FAQ_russian
+++ b/doc/FAQ_russian
@@ -1,12 +1,12 @@
Otvety na chasto zadavaemye voprosy po PostgreSQL
- Data poslednego obnovleniya: Ponedel'nik 30 maya 09:11:03 EDT 2005
+ Data poslednego obnovleniya: Pyatnica 16 sentyabrya 14:07:22 EDT 2005
Anglijskij variant soprovozhdaet: Bryus Mom'yan (Bruce Momjian)
(pgman@candle.pha.pa.us)
- Pereviol na russkij: Viktor Vislobokov (corochoone@perm.ru)
+ Pereviol na russkij: Viktor Vislobokov (admin@linuxshare.ru)
Samuyu svezhuyu anglijskuyu versiyu dokumenta mozhno najti na
http://www.PostgreSQL.org/files/documentation/faqs/FAQ.html.
@@ -94,6 +94,8 @@
suschestvuet", kogda obraschayuts' k vremennym tablicam v funkciyah
PL/PgSQL?
4.20) Kakie est' resheniya dlya replikacii?
+ 4.21) Pochemu imena tablicy i kolonok ne raspoznayutsya v v moiom
+ zaprose?
_________________________________________________________________
Obschie voprosy
@@ -101,7 +103,8 @@
1.1) CHto takoe PostgreSQL? Kak proiznositsya `eto nazvanie?
PostgreSQL proiznositsya Post-Gres-Q-L (Post-Gres-K'yu-`El), takzhe
- chasto govoryat prosto Postgres.
+ inogda govoryat prosto Postgres. Vy mozhete uslyshat' kak `eto
+ proiznositsya s pomosch'yu audiofajla, kotoryj dostupen v formate MP3.
PostgreSQL - `eto ob"ektno-relyacionnaya sistema upravleniya bazami
dannyh (SUBD), kotoraya imeet tradicionnye vozmozhnosti kommercheskih
@@ -205,7 +208,7 @@
1.7) Kakaya poslednyaya versiya?
- Poslednij vypusk PostgreSQL - `eto versiya 8.0.2
+ Poslednij vypusk PostgreSQL - `eto versiya 8.0.3
My planiruem vypuskat' novye starshie versii kazhdyj god, a mladshie
versii kazhdye neskol'ko mesyacev.
@@ -535,6 +538,13 @@
byt' uvelicheny v chetyre raza, esli razmer bloka po umolchaniyu budet
uvelichen do 32k.
+ Suschestvuet ogranichenie, po kotoromu indeksy ne mogut sozdavat'sya
+ dlya kolonok dlinnee chem 2,000 simvolov. K schast'yu takie indeksy
+ vryad li dejstvitel'no komu-to nuzhny. Unikal'nost' garantiruetsya
+ nailuchim obrazom, s pomosch'yu funkcional'nogo indeksa iz h`esha MD5
+ dlinnoj kolonki, a polnotekstovoe indeksirovanie pozvolyaet iskat'
+ slova vnutri kolonki.
+
4.5) Kak mnogo diskovogo prostranstva v baze dannyh nuzhno dlya sohraneniya
dannyh iz obychnogo tekstovogo fajla?
@@ -546,23 +556,23 @@
srednem, sostavlyaet 20 bajt. Razmer prostogo fajla sostavit 2.8 MB.
Razmer bazy PostgreSQL, soderzhaschej `eti zhe dannye sostavit
priblizitel'no 6.4 MB iz kotoryh:
- 32 bajt: na kazhdyj zagolovok stroki v tablice (priblizitel'no)
+ 28 bajt: na kazhdyj zagolovok stroki v tablice (priblizitel'no)
+ 24 bajta: odno pole s celochislennym tipom i odno tekstovoe pole
+ 4 bajta: ukazatel' na stranice dlya vsej tablichnoj stroki
----------------------------------------
- 60 bajt na stroku v tablice
+ 56 bajt na stroku v tablice
Razmer stranicy dannyh v PostgreSQL sostavlyaet 8192 bajt (8 KB), tak chto:
8192 bajt na stranicu
- --------------------- = 136 strok v tablice na stranicu BD (okruglionno)
- 60 bajt na stroku v tablice
+ --------------------- = 146 strok v tablice na stranicu BD (okruglionno)
+ 56 bajt na stroku v tablice
100000 strok dannyh
- ----------------------- = 735 stranic v BD (okruglionno)
- 128 strok v tablice na stranicu
+ ----------------------- = 685 stranic v BD (okruglionno)
+ 146 strok v tablice na stranicu
- 735 stranic BD * 8192 bajt na stranicu = 6,021,120 bajt (6 MB)
+ 685 stranic BD * 8192 bajt na stranicu = 5,611,520 bajt (5.6 MB)
Indeksy ne trebuyut tak mnogo, no poskol'ku oni sozdayutsya dlya
bol'shogo kolichestva dannyh, oni takzhe mogut byt' veliki.
@@ -650,6 +660,13 @@
esli vy sozdadite indeks vyrazheniya, on budet ispol'zovan:
CREATE INDEX tabindex ON tab (lower(col));
+ Esli vysheukazannyj indeks sozdaiotsya kak UNIQUE, to kolonka, dlya
+ kotoroj on sozdaiotsya mozhet hranit' simvoly i v verhnem, i v nizhnem
+ registre, indes ne mozhet imet' identichnyh znachenij, kotorye
+ otlichayutsya tol'ko registrom. CHtoby v kolonke mozhno bylo hranit'
+ simvoly tol'ko v opredelionnom registre, ispol'zujte ogranichenie
+ CHECK ili proverku cherez trigger.
+
4.9) Kak mne opredelit', chto znachenie polya ravno NULL v kakom-libo
zaprose? Mogu ya otsortirovat' polya NULL ili net?
@@ -869,3 +886,18 @@ CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
neobhodima sinhronizaciya izmenenij mezhdu neskol'kimi serverami.
Naibolee populyarnym resheniem dlya takoj replikacii v PostgreSQL
yavlyaetsya Pgcluster.
+
+ 4.21) Pochemu imena tablicy i kolonok ne raspoznayutsya v v moiom zaprose?
+
+ Naibolee chasto `eto proishodit iz-za ispol'zovaniya dvojnyh kavychek
+ v imeni tablicy ili kolonki pri sozdanii tablicy. Pri ispol'zovanii
+ dvojnyh kavychek, imya tablicy i kolonki (kotorye nazyvayut
+ identifikatorami) sohranyayutsya v registro-zavisimom vide; `eto
+ oznachaet, chto vy dolzhny ispol'zovat' dvojnye kavychki, kogda
+ ukazyvaete `eti imena v zaprose. Nekotorye interfejsy, takie kak
+ pgAdmin, vo vremya sozdaniya tablicy dobavlyayut dvojnye kavychki
+ avtomaticheski. Takim obrazom, chtoby identifikatory raspoznavalis' vy
+ dolzhny sledovat' odnomu iz sleduyuschih pravil:
+ * Izbegat' ispol'zovaniya dvojnyh kavychek pri sozdanii tablic
+ * Ispol'zovat' v identifikatorah tol'ko simvoly nizhnego registra
+ * Ispol'zovat' dvojnye kavychki dlya identifikatorov v zaprosah
diff --git a/doc/src/FAQ/FAQ_russian.html b/doc/src/FAQ/FAQ_russian.html
index a4fd9ffb4c..e26d33df58 100644
--- a/doc/src/FAQ/FAQ_russian.html
+++ b/doc/src/FAQ/FAQ_russian.html
@@ -12,13 +12,13 @@
Ответы на часто задаваемые вопросы по PostgreSQL
- Дата последнего обновления: Понедельник 30 мая 09:11:03 EDT 2005
+ Дата последнего обновления: Пятница 16 сентября 14:07:22 EDT 2005
Английский вариант сопровождает: Брюс Момьян (Bruce Momjian) (pgman@candle.pha.pa.us)
Перевёл на русский: Виктор Вислобоков (corochoone@perm.ru)
+ "mailto:admin@linuxshare.ru">admin@linuxshare.ru)
Самую свежую английскую версию документа можно найти на
@@ -117,6 +117,8 @@
4.19) Почему я получаю ошибку "relation with OID ####
не существует", когда обращаютсь к временным таблицам в функциях PL/PgSQL?
4.20) Какие есть решения для репликации?
+ 4.21) Почему имена таблицы и колонок не
+ распознаются в в моём запросе?
@@ -125,7 +127,10 @@
1.1) Что такое PostgreSQL? Как произносится это название?
PostgreSQL произносится Post-Gres-Q-L (Пост-Грес-Кью-Эл),
- также часто говорят просто Postgres.
+ также иногда говорят просто Postgres. Вы можете услышать как
+ это произносится с помощью аудиофайла, который доступен в
+ формате MP3.
+
PostgreSQL - это объектно-реляционная система управления базами
данных (СУБД), которая имеет традиционные возможности коммерческих
@@ -240,7 +245,7 @@
1.7) Какая последняя версия?
- Последний выпуск PostgreSQL - это версия 8.0.2
+ Последний выпуск PostgreSQL - это версия 8.0.3
Мы планируем выпускать новые старшие версии каждый год,
а младшие версии каждые несколько месяцев.
@@ -651,6 +656,12 @@
Максимальный размер таблицы и максимальное количество колонок
могут быть увеличены в четыре раза, если размер блока по умолчанию будет
увеличен до 32k.
+
+ Существует ограничение, по которому индексы не могут создаваться для
+ колонок длиннее чем 2,000 символов. К счастью такие индексы вряд ли
+ действительно кому-то нужны. Уникальность гарантируется наилучим образом,
+ с помощью функционального индекса из хэша MD5 длинной колонки, а
+ полнотекстовое индексирование позволяет искать слова внутри колонки.
4.5) Как много дискового пространства в базе данных
нужно для сохранения данных из обычного текстового файла?
@@ -664,23 +675,23 @@
Размер базы PostgreSQL, содержащей эти же данные составит приблизительно
6.4 MB из которых:
- 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 или проверку через триггер.
4.9) Как мне определить, что значение поля равно
NULL в каком-либо запросе? Могу я отсортировать поля
@@ -1071,5 +1088,23 @@ CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
популярным решением для такой репликации в PostgreSQL является
Pgcluster.
+ 4.21) Почему имена таблицы и колонок не
+ распознаются в в моём запросе?
+
+
Наиболее часто это происходит из-за использования двойных кавычек в
+ имени таблицы или колонки при создании таблицы. При использовании двойных
+ кавычек, имя таблицы и колонки (которые называют идентификаторами)
+ сохраняются в
+ регистро-зависимом виде; это означает, что вы должны использовать
+ двойные кавычки, когда указываете эти имена в запросе. Некоторые
+ интерфейсы, такие как pgAdmin, во время создания таблицы добавляют
+ двойные кавычки автоматически. Таким образом, чтобы идентификаторы
+ распознавались вы должны следовать одному из следующих правил:
+
+ - Избегать использования двойных кавычек при создании таблиц
+ - Использовать в идентификаторах только символы нижнего регистра
+ - Использовать двойные кавычки для идентификаторов в запросах
+
+