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:
parent
6bc4e3617d
commit
3f540711ef
@ -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
|
||||||
|
@ -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>
|
||||||
@ -651,6 +656,12 @@
|
|||||||
<P>Максимальный размер таблицы и максимальное количество колонок
|
<P>Максимальный размер таблицы и максимальное количество колонок
|
||||||
могут быть увеличены в четыре раза, если размер блока по умолчанию будет
|
могут быть увеличены в четыре раза, если размер блока по умолчанию будет
|
||||||
увеличен до 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>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user