|
1 | 1 |
|
2 | 2 | Otvety na chasto zadavaemye voprosy po PostgreSQL
|
3 | 3 |
|
4 |
| - Data poslednego obnovleniya:Ponedel'nik 30 maya 09:11:03 EDT 2005 |
| 4 | + Data poslednego obnovleniya:Pyatnica 16 sentyabrya 14:07:22 EDT 2005 |
5 | 5 |
|
6 | 6 | Anglijskij variant soprovozhdaet: Bryus Mom'yan (Bruce Momjian)
|
7 | 7 | (pgman@candle.pha.pa.us)
|
8 | 8 |
|
9 |
| - Pereviol na russkij: Viktor Vislobokov (corochoone@perm.ru) |
| 9 | + Pereviol na russkij: Viktor Vislobokov (admin@linuxshare.ru) |
10 | 10 |
|
11 | 11 | Samuyu svezhuyu anglijskuyu versiyu dokumenta mozhno najti na
|
12 | 12 | http://www.PostgreSQL.org/files/documentation/faqs/FAQ.html.
|
|
94 | 94 | suschestvuet", kogda obraschayuts' k vremennym tablicam v funkciyah
|
95 | 95 | PL/PgSQL?
|
96 | 96 | 4.20) Kakie est' resheniya dlya replikacii?
|
| 97 | + 4.21) Pochemu imena tablicy i kolonok ne raspoznayutsya v v moiom |
| 98 | + zaprose? |
97 | 99 | _________________________________________________________________
|
98 | 100 |
|
99 | 101 | Obschie voprosy
|
100 | 102 |
|
101 | 103 | 1.1) CHto takoe PostgreSQL? Kak proiznositsya `eto nazvanie?
|
102 | 104 |
|
103 | 105 | PostgreSQL proiznositsya Post-Gres-Q-L (Post-Gres-K'yu-`El), takzhe
|
104 |
| - chasto govoryat prosto Postgres. |
| 106 | + inogda govoryat prosto Postgres. Vy mozhete uslyshat' kak `eto |
| 107 | + proiznositsya s pomosch'yu audiofajla, kotoryj dostupen v formate MP3. |
105 | 108 |
|
106 | 109 | PostgreSQL - `eto ob"ektno-relyacionnaya sistema upravleniya bazami
|
107 | 110 | dannyh (SUBD), kotoraya imeet tradicionnye vozmozhnosti kommercheskih
|
|
205 | 208 |
|
206 | 209 | 1.7) Kakaya poslednyaya versiya?
|
207 | 210 |
|
208 |
| - Poslednij vypusk PostgreSQL - `eto versiya 8.0.2 |
| 211 | + Poslednij vypusk PostgreSQL - `eto versiya 8.0.3 |
209 | 212 |
|
210 | 213 | My planiruem vypuskat' novye starshie versii kazhdyj god, a mladshie
|
211 | 214 | versii kazhdye neskol'ko mesyacev.
|
|
535 | 538 | byt' uvelicheny v chetyre raza, esli razmer bloka po umolchaniyu budet
|
536 | 539 | uvelichen do 32k.
|
537 | 540 |
|
| 541 | + Suschestvuet ogranichenie, po kotoromu indeksy ne mogut sozdavat'sya |
| 542 | + dlya kolonok dlinnee chem 2,000 simvolov. K schast'yu takie indeksy |
| 543 | + vryad li dejstvitel'no komu-to nuzhny. Unikal'nost' garantiruetsya |
| 544 | + nailuchim obrazom, s pomosch'yu funkcional'nogo indeksa iz h`esha MD5 |
| 545 | + dlinnoj kolonki, a polnotekstovoe indeksirovanie pozvolyaet iskat' |
| 546 | + slova vnutri kolonki. |
| 547 | + |
538 | 548 | 4.5) Kak mnogo diskovogo prostranstva v baze dannyh nuzhno dlya sohraneniya
|
539 | 549 | dannyh iz obychnogo tekstovogo fajla?
|
540 | 550 |
|
|
546 | 556 | srednem, sostavlyaet 20 bajt. Razmer prostogo fajla sostavit 2.8 MB.
|
547 | 557 | Razmer bazy PostgreSQL, soderzhaschej `eti zhe dannye sostavit
|
548 | 558 | priblizitel'no 6.4 MB iz kotoryh:
|
549 |
| -32 bajt: na kazhdyj zagolovok stroki v tablice (priblizitel'no) |
| 559 | +28 bajt: na kazhdyj zagolovok stroki v tablice (priblizitel'no) |
550 | 560 | + 24 bajta: odno pole s celochislennym tipom i odno tekstovoe pole
|
551 | 561 | + 4 bajta: ukazatel' na stranice dlya vsej tablichnoj stroki
|
552 | 562 | ----------------------------------------
|
553 |
| -60 bajt na stroku v tablice |
| 563 | +56 bajt na stroku v tablice |
554 | 564 |
|
555 | 565 | Razmer stranicy dannyh v PostgreSQL sostavlyaet 8192 bajt (8 KB), tak chto:
|
556 | 566 |
|
557 | 567 | 8192 bajt na stranicu
|
558 |
| - --------------------- =136 strok v tablice na stranicu BD (okruglionno) |
559 |
| -60 bajt na stroku v tablice |
| 568 | + --------------------- =146 strok v tablice na stranicu BD (okruglionno) |
| 569 | +56 bajt na stroku v tablice |
560 | 570 |
|
561 | 571 | 100000 strok dannyh
|
562 |
| - ----------------------- =735 stranic v BD (okruglionno) |
563 |
| -128 strok v tablice na stranicu |
| 572 | + ----------------------- =685 stranic v BD (okruglionno) |
| 573 | +146 strok v tablice na stranicu |
564 | 574 |
|
565 |
| -735 stranic BD * 8192 bajt na stranicu =6,021,120 bajt (6 MB) |
| 575 | +685 stranic BD * 8192 bajt na stranicu =5,611,520 bajt (5.6 MB) |
566 | 576 |
|
567 | 577 | Indeksy ne trebuyut tak mnogo, no poskol'ku oni sozdayutsya dlya
|
568 | 578 | bol'shogo kolichestva dannyh, oni takzhe mogut byt' veliki.
|
|
650 | 660 | esli vy sozdadite indeks vyrazheniya, on budet ispol'zovan:
|
651 | 661 | CREATE INDEX tabindex ON tab (lower(col));
|
652 | 662 |
|
| 663 | + Esli vysheukazannyj indeks sozdaiotsya kak UNIQUE, to kolonka, dlya |
| 664 | + kotoroj on sozdaiotsya mozhet hranit' simvoly i v verhnem, i v nizhnem |
| 665 | + registre, indes ne mozhet imet' identichnyh znachenij, kotorye |
| 666 | + otlichayutsya tol'ko registrom. CHtoby v kolonke mozhno bylo hranit' |
| 667 | + simvoly tol'ko v opredelionnom registre, ispol'zujte ogranichenie |
| 668 | + CHECK ili proverku cherez trigger. |
| 669 | + |
653 | 670 | 4.9) Kak mne opredelit', chto znachenie polya ravno NULL v kakom-libo
|
654 | 671 | zaprose? Mogu ya otsortirovat' polya NULL ili net?
|
655 | 672 |
|
@@ -869,3 +886,18 @@ CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
|
869 | 886 | neobhodima sinhronizaciya izmenenij mezhdu neskol'kimi serverami.
|
870 | 887 | Naibolee populyarnym resheniem dlya takoj replikacii v PostgreSQL
|
871 | 888 | yavlyaetsya Pgcluster.
|
| 889 | + |
| 890 | + 4.21) Pochemu imena tablicy i kolonok ne raspoznayutsya v v moiom zaprose? |
| 891 | + |
| 892 | + Naibolee chasto `eto proishodit iz-za ispol'zovaniya dvojnyh kavychek |
| 893 | + v imeni tablicy ili kolonki pri sozdanii tablicy. Pri ispol'zovanii |
| 894 | + dvojnyh kavychek, imya tablicy i kolonki (kotorye nazyvayut |
| 895 | + identifikatorami) sohranyayutsya v registro-zavisimom vide; `eto |
| 896 | + oznachaet, chto vy dolzhny ispol'zovat' dvojnye kavychki, kogda |
| 897 | + ukazyvaete `eti imena v zaprose. Nekotorye interfejsy, takie kak |
| 898 | + pgAdmin, vo vremya sozdaniya tablicy dobavlyayut dvojnye kavychki |
| 899 | + avtomaticheski. Takim obrazom, chtoby identifikatory raspoznavalis' vy |
| 900 | + dolzhny sledovat' odnomu iz sleduyuschih pravil: |
| 901 | + * Izbegat' ispol'zovaniya dvojnyh kavychek pri sozdanii tablic |
| 902 | + * Ispol'zovat' v identifikatorah tol'ko simvoly nizhnego registra |
| 903 | + * Ispol'zovat' dvojnye kavychki dlya identifikatorov v zaprosah |