Michael Schröpl: Große Datenbank organisieren

Beitrag lesen

Hi RFZ,

Titel und Text sollen durchsucht werden können, Datum auch.

definiere "durchsuchen".

Hätte ich durch ein Datenfeld gewisse Vorteile was die Performance betrifft?

Definiere "durchsuchen".

Ich hab das Problem dass Suchvorgänge für ein und das selbe Wort manchmal weniger als 50ms brauchen, und manchmal über 60Sekunden, kann sich das jemand erklären?

EXPLAIN auf Deine Query.

Was wäre bei den Verhältnissen normal?

Für eine Antwort auf diese Frage liegen nicht genügend Informationen vor.

Würde es deshalb Sinn machen Text und Titel von den anderen Spalten in eine eigene Tabelle abzutrennen?

Nein. Ich glaube die beschriebene Abhängigkeit nicht, und sie wäre es auch nicht wert, Dein Datenmodell dafür zu ruinieren.

Naja, alles in Allem suche ich hier nach wertvollen Tipps wie ich eine so große DB möglichst schnell durchsuchen lassen kann.

Ich finde Deine Datenbank winzig klein. Meine ist um gut eine Zehnerpotenz größer, aber ich habe Such-Zeiten meistens unterhalb einer Sekunde, selten im kleinen einstelligen Sekundenbereich.
(Und ich verwende auch mySQL-Fulltext, meine Text-Felder sind im Schnitt etwa 5 KB groß.)

Was für Indizes brauch ich?

Diejenigen, die Deine Statements beschleunigen.

Worüber sollte ich die Indizes legen?

Typischerweise solche über Spalten Deiner WHERE- und ORDER-BY-Klauseln.
EXPLAIN sagt Dir, was genau die engine generiert hat.

Die Artikel sind auch in Rubriken unterteilt (davon gibt es ca. 100) welche als Integer gespeichert sind. Wie soll ich diese 'verwalten', wenn ich mal die Suche nur auf ein paar Rubriken beschränken will?

integer ist nicht verkehrt.

Ein Index darüber wird übrigens nicht viel bringen, dafür sind 100 Rubriken einfach zu wenig; FULLTEXT projeziert deutlich besser, und mehr als einen Zugriffspfad gleichzeitig kannst Du eh nicht nutzen.
Hättest Du die Anforderung, alle Einträge einer Rubrik zu lesen, ohne diese weiter zu filtern, dann wäre ein Index allerdings sinnvoll.

Ganz nebenbei, wie schafft Google das?? ;)

Indem sie ihre gesamte Architektur auf die Aufgabenstellung optimiert haben.

Viele Grüße
      Michael

--
T'Pol: I apologize if I acted inappropriately.
V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
(sh:| fo:} ch:] rl:( br:^ n4:( ie:% mo:) va:| de:/ zu:| fl:( ss:) ls:~ js:|)
Auch diese Signatur wird an korrekt konfigurierte Browser gzip-komprimiert übertragen.