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: | Raw Message | Whole Thread | 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 |