| From: | Bernd Helmle <mailings(at)oopsware(dot)de> | 
|---|---|
| To: | apoc9009(at)yahoo(dot)de | 
| Cc: | pgsql-de-allgemein(at)postgresql(dot)org | 
| Subject: | Re: Volltextsuche/ Balancing | 
| Date: | 2005-12-09 12:52:43 | 
| Message-ID: | 2DDEB613A7CBA8CD4A2DFC14@[192.168.100.105] | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-de-allgemein | 
--On Freitag, Dezember 09, 2005 13:12:51 +0100 apoc9009(at)yahoo(dot)de wrote:
>>
>> Ja, das geht ab 8.0 (oder 8.1?)
>>
>>
>
> Ähm, ich fragte danach ob ich Tabellen in einen gesonderten Tabelspace
> auslagern kann und nicht
> danach das ich beim erstellen einer DB einen kompletten Tablespace für
> alle Tabellen einmalig an einer
> bestimmten Position im Dateisystem hinterlegen kann.
>
Hmm genau das hat doch Andreas beantwortet? Kurzum, es geht:
CREATE TABLESPACE tablespace LOCATION '/anywhere';
CREATE TABLE <yourstuff> TABLESPACE tablespace;
> Der Sinn  und Zweck ist es, das nur die eine Tabelle (Nachrichtentabelle)
> dann in einem Tablespace verwaltet
> wird, der auf ein gesondertes Festplattenlaufwerk oder Raid verzweigt.
> Das ist wie gesagt nicht das selbe
> wie die ganze DB dort zu hinterlegen. Bei ORACLE 9i und 10g ist sowas
> recht unproblematisch, da kann
> man dann auch noch alternativ Tabelpartintioning zuschalten (falls Dir
> das was sagt).
>
Du kannst dir unter 8.1 mal Constraint-Exclusion ansehen:
http://www.postgresql.org/docs/8.1/static/ddl-partitioning.html
Generell wäre es interessant zu wissen, mit welchem Datenaufkommen du 
rechnest?
> Ich hoffe das dazu jemand anderes hier (mit mehr Erfahrung) noch etwas
> erklärendes und hilfreiches
> posten kann.
>
Ich denke Andreas hat genügend Erfahrung...
>>> Wie gestalte ich unter Postgres 8.1 eine Volltextsuche die nach
>>> beliebigen  Strings
>>> suchen soll (z.B mit iLike) ?
>>>
>>>
>>
>> Du kannst zwar die Spalte indizieren für schnelleren Zugriff, allerding
>> wird eine Suche nach '*foobar*' einen Seq-Scan bewirken. Indexe greifen
>> nur, wenn der Suchstring linksbündig ist, also links keine Wildcards
>> stehen.
>>
>>
>
> Wie soll man denn das nun wieder verstehen?
>
> Soll der Spalteninhalt einer Tabelle links ohne Blanks u.s.w angeordnent
> sein? Wenn ja würde
> ich sowas schon hinbekommen und eigentlich finde ich, dass das auch die
> normale Ausganglage
> ist (bin jetzt etwas verwirrt / weißt Du was Du da geschrieben hast?)
>
Ganz einfach: SELECT foo_text FROM foo WHERE foo_text LIKE '%text%'; wird 
einen Sequential Scan verwenden, auch wenn ein Index auf foo_text existiert.
>> Abhilfe: tsearch2
Wenn du nach ganzen Worten innerhalb größerer Textspalten suchen willst, 
ist das sicherlich die erste Wahl.
>
> "Gerüchte" Naja ok ich schaue es mir mal an, kann nicht schaden.
>
>> Ansonsten: Um Schwachstellen bzw. Performance-Probleme zu finden, gibt
>> es EXPLAIN, evtl. gepaart mit ANALYSE.
>>
>>
> bringt mir nicht sonderlich viel wenn eine Tabellenspalte komplett
> durchsucht werden muss.
> (es sollen ja alle Treffer zurückgelifert werden).
>
Das versteh ich nun wieder nicht...bedeutet dass, das du alle Tupel 
selektierst, ohne WHERE-clause bzw. ohne Indizierung?
-- 
  Thanks
Bernd
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Friedrich Stockebrand | 2005-12-09 14:10:04 | Re: Grundsatzproblem | 
| Previous Message | Andreas Kretschmer | 2005-12-09 12:38:26 | Re: Volltextsuche/ Balancing |