From 3f540711efa312428d60f5e29ddf12f67b03f70a Mon Sep 17 00:00:00 2001 From: Bruce Momjian <bruce@momjian.us> Date: Wed, 28 Sep 2005 11:32:49 +0000 Subject: [PATCH] Update Russian FAQ. Victor Vislobokov --- doc/FAQ_russian | 54 +++++++++++++++++++++++++++------- doc/src/FAQ/FAQ_russian.html | 57 +++++++++++++++++++++++++++++------- 2 files changed, 89 insertions(+), 22 deletions(-) diff --git a/doc/FAQ_russian b/doc/FAQ_russian index f2fd1ccd7b6..5637f548c5b 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 a4fd9ffb4c2..e26d33df585 100644 --- a/doc/src/FAQ/FAQ_russian.html +++ b/doc/src/FAQ/FAQ_russian.html @@ -12,13 +12,13 @@ <BODY bgcolor="#ffffff" text="#000000" link="#ff0000" vlink="#a00000" alink="#0000ff"> <H1>Ответы на часто задаваемые вопросы по PostgreSQL</H1> - <P>Дата последнего обновления: Понедельник 30 мая 09:11:03 EDT 2005</P> + <P>Дата последнего обновления: Пятница 16 сентября 14:07:22 EDT 2005</P> <P>Английский вариант сопровождает: Брюс Момьян (Bruce Momjian) (<A href= "mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR> </P> <P>Перевёл на русский: Виктор Вислобоков (<A href= - "mailto:corochoone@perm.ru">corochoone@perm.ru</A>)<BR> + "mailto:admin@linuxshare.ru">admin@linuxshare.ru</A>)<BR> </P> <P>Самую свежую английскую версию документа можно найти на @@ -117,6 +117,8 @@ <A href="#4.19">4.19</A>) Почему я получаю ошибку "relation with OID #### не существует", когда обращаютсь к временным таблицам в функциях PL/PgSQL?<BR> <A href="#4.20">4.20</A>) Какие есть решения для репликации?<BR> + <A href="#4.21">4.21</A>) Почему имена таблицы и колонок не + распознаются в в моём запросе?<BR> <HR> @@ -125,7 +127,10 @@ <H3><A name="1.1">1.1</A>) Что такое PostgreSQL? Как произносится это название?</H3> <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 - это объектно-реляционная система управления базами данных (СУБД), которая имеет традиционные возможности коммерческих @@ -240,7 +245,7 @@ <H3><A name="1.7">1.7</A>) Какая последняя версия?</H3> - <P>Последний выпуск PostgreSQL - это версия 8.0.2</P> + <P>Последний выпуск PostgreSQL - это версия 8.0.3</P> <P>Мы планируем выпускать новые старшие версии каждый год, а младшие версии каждые несколько месяцев.</P> @@ -651,6 +656,12 @@ <P>Максимальный размер таблицы и максимальное количество колонок могут быть увеличены в четыре раза, если размер блока по умолчанию будет увеличен до 32k.</P> + + <P>Существует ограничение, по которому индексы не могут создаваться для + колонок длиннее чем 2,000 символов. К счастью такие индексы вряд ли + действительно кому-то нужны. Уникальность гарантируется наилучим образом, + с помощью функционального индекса из хэша MD5 длинной колонки, а + полнотекстовое индексирование позволяет искать слова внутри колонки.</P> <H3><A name="4.5">4.5</A>) Как много дискового пространства в базе данных нужно для сохранения данных из обычного текстового файла?</H3> @@ -664,23 +675,23 @@ Размер базы PostgreSQL, содержащей эти же данные составит приблизительно 6.4 MB из которых:</P> <PRE> - 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) </PRE> <P>Индексы не требуют так много, но поскольку они создаются для @@ -781,6 +792,12 @@ <PRE> CREATE INDEX tabindex ON tab (lower(col)); </PRE> + <P>Если вышеуказанный индекс создаётся как <SMALL>UNIQUE</SMALL>, то + колонка, для которой он создаётся может хранить символы и в верхнем, + и в нижнем регистре, индес не может иметь идентичных значений, которые + отличаются только регистром. Чтобы в колонке можно было хранить символы + только в определённом регистре, используйте ограничение + <SMALL>CHECK</SMALL> или проверку через триггер.</P> <H3><A name="4.9">4.9</A>) Как мне определить, что значение поля равно <SMALL>NULL</SMALL> в каком-либо запросе? Могу я отсортировать поля @@ -1071,5 +1088,23 @@ CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); популярным решением для такой репликации в PostgreSQL является <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> </HTML> -- GitLab