1
0
mirror of https://github.com/postgres/postgres.git synced 2025-06-07 11:02:12 +03:00

Update Russian FAQ.

Victor Vislobokov
This commit is contained in:
Bruce Momjian 2005-09-28 11:32:49 +00:00
parent 6bc4e3617d
commit 3f540711ef
2 changed files with 89 additions and 22 deletions

View File

@ -1,12 +1,12 @@
Otvety na chasto zadavaemye voprosy po PostgreSQL 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) Anglijskij variant soprovozhdaet: Bryus Mom'yan (Bruce Momjian)
(pgman@candle.pha.pa.us) (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 Samuyu svezhuyu anglijskuyu versiyu dokumenta mozhno najti na
http://www.PostgreSQL.org/files/documentation/faqs/FAQ.html. http://www.PostgreSQL.org/files/documentation/faqs/FAQ.html.
@ -94,6 +94,8 @@
suschestvuet", kogda obraschayuts' k vremennym tablicam v funkciyah suschestvuet", kogda obraschayuts' k vremennym tablicam v funkciyah
PL/PgSQL? PL/PgSQL?
4.20) Kakie est' resheniya dlya replikacii? 4.20) Kakie est' resheniya dlya replikacii?
4.21) Pochemu imena tablicy i kolonok ne raspoznayutsya v v moiom
zaprose?
_________________________________________________________________ _________________________________________________________________
Obschie voprosy Obschie voprosy
@ -101,7 +103,8 @@
1.1) CHto takoe PostgreSQL? Kak proiznositsya `eto nazvanie? 1.1) CHto takoe PostgreSQL? Kak proiznositsya `eto nazvanie?
PostgreSQL proiznositsya Post-Gres-Q-L (Post-Gres-K'yu-`El), takzhe 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 PostgreSQL - `eto ob"ektno-relyacionnaya sistema upravleniya bazami
dannyh (SUBD), kotoraya imeet tradicionnye vozmozhnosti kommercheskih dannyh (SUBD), kotoraya imeet tradicionnye vozmozhnosti kommercheskih
@ -205,7 +208,7 @@
1.7) Kakaya poslednyaya versiya? 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 My planiruem vypuskat' novye starshie versii kazhdyj god, a mladshie
versii kazhdye neskol'ko mesyacev. versii kazhdye neskol'ko mesyacev.
@ -535,6 +538,13 @@
byt' uvelicheny v chetyre raza, esli razmer bloka po umolchaniyu budet byt' uvelicheny v chetyre raza, esli razmer bloka po umolchaniyu budet
uvelichen do 32k. 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 4.5) Kak mnogo diskovogo prostranstva v baze dannyh nuzhno dlya sohraneniya
dannyh iz obychnogo tekstovogo fajla? dannyh iz obychnogo tekstovogo fajla?
@ -546,23 +556,23 @@
srednem, sostavlyaet 20 bajt. Razmer prostogo fajla sostavit 2.8 MB. srednem, sostavlyaet 20 bajt. Razmer prostogo fajla sostavit 2.8 MB.
Razmer bazy PostgreSQL, soderzhaschej `eti zhe dannye sostavit Razmer bazy PostgreSQL, soderzhaschej `eti zhe dannye sostavit
priblizitel'no 6.4 MB iz kotoryh: 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 + 24 bajta: odno pole s celochislennym tipom i odno tekstovoe pole
+ 4 bajta: ukazatel' na stranice dlya vsej tablichnoj stroki + 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: Razmer stranicy dannyh v PostgreSQL sostavlyaet 8192 bajt (8 KB), tak chto:
8192 bajt na stranicu 8192 bajt na stranicu
--------------------- = 136 strok v tablice na stranicu BD (okruglionno) --------------------- = 146 strok v tablice na stranicu BD (okruglionno)
60 bajt na stroku v tablice 56 bajt na stroku v tablice
100000 strok dannyh 100000 strok dannyh
----------------------- = 735 stranic v BD (okruglionno) ----------------------- = 685 stranic v BD (okruglionno)
128 strok v tablice na stranicu 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 Indeksy ne trebuyut tak mnogo, no poskol'ku oni sozdayutsya dlya
bol'shogo kolichestva dannyh, oni takzhe mogut byt' veliki. bol'shogo kolichestva dannyh, oni takzhe mogut byt' veliki.
@ -650,6 +660,13 @@
esli vy sozdadite indeks vyrazheniya, on budet ispol'zovan: esli vy sozdadite indeks vyrazheniya, on budet ispol'zovan:
CREATE INDEX tabindex ON tab (lower(col)); 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 4.9) Kak mne opredelit', chto znachenie polya ravno NULL v kakom-libo
zaprose? Mogu ya otsortirovat' polya NULL ili net? 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. neobhodima sinhronizaciya izmenenij mezhdu neskol'kimi serverami.
Naibolee populyarnym resheniem dlya takoj replikacii v PostgreSQL Naibolee populyarnym resheniem dlya takoj replikacii v PostgreSQL
yavlyaetsya Pgcluster. 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

View File

@ -12,13 +12,13 @@
<BODY bgcolor="#ffffff" text="#000000" link="#ff0000" vlink="#a00000" alink="#0000ff"> <BODY bgcolor="#ffffff" text="#000000" link="#ff0000" vlink="#a00000" alink="#0000ff">
<H1>Ответы на часто задаваемые вопросы по PostgreSQL</H1> <H1>Ответы на часто задаваемые вопросы по PostgreSQL</H1>
<P>Дата последнего обновления: Понедельник 30 мая 09:11:03 EDT 2005</P> <P>Дата последнего обновления: Пятница 16 сентября 14:07:22 EDT 2005</P>
<P>Английский вариант сопровождает: Брюс Момьян (Bruce Momjian) (<A href= <P>Английский вариант сопровождает: Брюс Момьян (Bruce Momjian) (<A href=
"mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR> "mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR>
</P> </P>
<P>Перевёл на русский: Виктор Вислобоков (<A href= <P>Перевёл на русский: Виктор Вислобоков (<A href=
"mailto:corochoone@perm.ru">corochoone@perm.ru</A>)<BR> "mailto:admin@linuxshare.ru">admin@linuxshare.ru</A>)<BR>
</P> </P>
<P>Самую свежую английскую версию документа можно найти на <P>Самую свежую английскую версию документа можно найти на
@ -117,6 +117,8 @@
<A href="#4.19">4.19</A>) Почему я получаю ошибку "relation with OID #### <A href="#4.19">4.19</A>) Почему я получаю ошибку "relation with OID ####
не существует", когда обращаютсь к временным таблицам в функциях PL/PgSQL?<BR> не существует", когда обращаютсь к временным таблицам в функциях PL/PgSQL?<BR>
<A href="#4.20">4.20</A>) Какие есть решения для репликации?<BR> <A href="#4.20">4.20</A>) Какие есть решения для репликации?<BR>
<A href="#4.21">4.21</A>) Почему имена таблицы и колонок не
распознаются в в моём запросе?<BR>
<HR> <HR>
@ -125,7 +127,10 @@
<H3><A name="1.1">1.1</A>) Что такое PostgreSQL? Как произносится это название?</H3> <H3><A name="1.1">1.1</A>) Что такое PostgreSQL? Как произносится это название?</H3>
<P>PostgreSQL произносится <I>Post-Gres-Q-L (Пост-Грес-Кью-Эл)</I>, <P>PostgreSQL произносится <I>Post-Gres-Q-L (Пост-Грес-Кью-Эл)</I>,
также часто говорят просто <I>Postgres</I>.</P> также иногда говорят просто <I>Postgres</I>. Вы можете услышать как
это произносится с помощью аудиофайла, который доступен в
<A href="http://www.postgresql.org/files/postgresql.mp3">формате MP3</A>.
</P>
<P>PostgreSQL - это объектно-реляционная система управления базами <P>PostgreSQL - это объектно-реляционная система управления базами
данных (СУБД), которая имеет традиционные возможности коммерческих данных (СУБД), которая имеет традиционные возможности коммерческих
@ -240,7 +245,7 @@
<H3><A name="1.7">1.7</A>) Какая последняя версия?</H3> <H3><A name="1.7">1.7</A>) Какая последняя версия?</H3>
<P>Последний выпуск PostgreSQL - это версия 8.0.2</P> <P>Последний выпуск PostgreSQL - это версия 8.0.3</P>
<P>Мы планируем выпускать новые старшие версии каждый год, <P>Мы планируем выпускать новые старшие версии каждый год,
а младшие версии каждые несколько месяцев.</P> а младшие версии каждые несколько месяцев.</P>
@ -652,6 +657,12 @@
могут быть увеличены в четыре раза, если размер блока по умолчанию будет могут быть увеличены в четыре раза, если размер блока по умолчанию будет
увеличен до 32k.</P> увеличен до 32k.</P>
<P>Существует ограничение, по которому индексы не могут создаваться для
колонок длиннее чем 2,000 символов. К счастью такие индексы вряд ли
действительно кому-то нужны. Уникальность гарантируется наилучим образом,
с помощью функционального индекса из хэша MD5 длинной колонки, а
полнотекстовое индексирование позволяет искать слова внутри колонки.</P>
<H3><A name="4.5">4.5</A>) Как много дискового пространства в базе данных <H3><A name="4.5">4.5</A>) Как много дискового пространства в базе данных
нужно для сохранения данных из обычного текстового файла?</H3> нужно для сохранения данных из обычного текстового файла?</H3>
@ -664,23 +675,23 @@
Размер базы PostgreSQL, содержащей эти же данные составит приблизительно Размер базы PostgreSQL, содержащей эти же данные составит приблизительно
6.4 MB из которых:</P> 6.4 MB из которых:</P>
<PRE> <PRE>
32 байт: на каждый заголовок строки в таблице (приблизительно) 28 байт: на каждый заголовок строки в таблице (приблизительно)
+ 24 байта: одно поле с целочисленным типом и одно текстовое поле + 24 байта: одно поле с целочисленным типом и одно текстовое поле
+ 4 байта: указатель на странице для всей табличной строки + 4 байта: указатель на странице для всей табличной строки
---------------------------------------- ----------------------------------------
60 байт на строку в таблице 56 байт на строку в таблице
Размер страницы данных в PostgreSQL составляет 8192 байт (8 KB), так что: Размер страницы данных в PostgreSQL составляет 8192 байт (8 KB), так что:
8192 байт на страницу 8192 байт на страницу
--------------------- = 136 строк в таблице на страницу БД (округлённо) --------------------- = 146 строк в таблице на страницу БД (округлённо)
60 байт на строку в таблице 56 байт на строку в таблице
100000 строк данных 100000 строк данных
----------------------- = 735 страниц в БД (округлённо) ----------------------- = 685 страниц в БД (округлённо)
128 строк в таблице на страницу 146 строк в таблице на страницу
735 страниц БД * 8192 байт на страницу = 6,021,120 байт (6 MB) 685 страниц БД * 8192 байт на страницу = 5,611,520 байт (5.6 MB)
</PRE> </PRE>
<P>Индексы не требуют так много, но поскольку они создаются для <P>Индексы не требуют так много, но поскольку они создаются для
@ -781,6 +792,12 @@
<PRE> <PRE>
CREATE INDEX tabindex ON tab (lower(col)); CREATE INDEX tabindex ON tab (lower(col));
</PRE> </PRE>
<P>Если вышеуказанный индекс создаётся как <SMALL>UNIQUE</SMALL>, то
колонка, для которой он создаётся может хранить символы и в верхнем,
и в нижнем регистре, индес не может иметь идентичных значений, которые
отличаются только регистром. Чтобы в колонке можно было хранить символы
только в определённом регистре, используйте ограничение
<SMALL>CHECK</SMALL> или проверку через триггер.</P>
<H3><A name="4.9">4.9</A>) Как мне определить, что значение поля равно <H3><A name="4.9">4.9</A>) Как мне определить, что значение поля равно
<SMALL>NULL</SMALL> в каком-либо запросе? Могу я отсортировать поля <SMALL>NULL</SMALL> в каком-либо запросе? Могу я отсортировать поля
@ -1071,5 +1088,23 @@ CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
популярным решением для такой репликации в PostgreSQL является популярным решением для такой репликации в PostgreSQL является
<A href="http://pgfoundry.org/projects/pgcluster/">Pgcluster</A>. <A href="http://pgfoundry.org/projects/pgcluster/">Pgcluster</A>.
<H3><A name="4.21">4.21</A>) Почему имена таблицы и колонок не
распознаются в в моём запросе?</H3>
<P>Наиболее часто это происходит из-за использования двойных кавычек в
имени таблицы или колонки при создании таблицы. При использовании двойных
кавычек, имя таблицы и колонки (которые называют идентификаторами)
сохраняются в <A href="http://www.postgresql.org/docs/8.0/static/sql-syntax.html#SQL-SYNTAX-IDENTIFIERS">
регистро-зависимом виде</A>; это означает, что вы должны использовать
двойные кавычки, когда указываете эти имена в запросе. Некоторые
интерфейсы, такие как pgAdmin, во время создания таблицы добавляют
двойные кавычки автоматически. Таким образом, чтобы идентификаторы
распознавались вы должны следовать одному из следующих правил:
<UL>
<LI>Избегать использования двойных кавычек при создании таблиц</LI>
<LI>Использовать в идентификаторах только символы нижнего регистра</LI>
<LI>Использовать двойные кавычки для идентификаторов в запросах</LI>
</UL>
</BODY> </BODY>
</HTML> </HTML>