Re: Volltextsuche/ Balancing
--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
Home |
Main Index |
Thread Index