Hilfe - Suche - Mitglieder - Kalender
Vollansicht: Fulltext Indizes in der Datenbank
Forum Sefrengo.org > Allgemeine Foren > Entwicklung
Nils Meyer
Moin moin,

Habe mal kurz das Datenbanklayout überflogen, da sind mir einige Fulltext Indizes aufgefallen die so eigentlich keinen Sinn machen, z.B. über kürzere Varchar Felder. Hier macht es meist eher Sinn einen normalen Hash oder BTREE Index einzusetzen. Oder hat das ganze eine spezielle Bewandnis der ich mir nicht bewusst bin?

Gruß
Nils
bjoern
Also die Indizies habe ich mal gemacht, da war mySql3 noch aktuell und bin da bis jetzt nicht mehr dran gegangen. Welche Felder meinst Du? Was würdest Du anders machen?
Nils Meyer
ZITAT(bjoern @ Wed. 12. December 2007, 13:17) *
Also die Indizies habe ich mal gemacht, da war mySql3 noch aktuell und bin da bis jetzt nicht mehr dran gegangen. Welche Felder meinst Du? Was würdest Du anders machen?


Verwendest du irgendwo die MATCH (..) AGAINST Funktion von MySQL? Ansonsten kannst du alle Fulltext Indizes entfernen, diese werden nur für derartige Dinge verwendet. Ansonsten müsste ich mir wohl mal das Query Log anwerfen und dann kann ich mir einen Überblick verschaffen bei welchen Abfragen welche Indizes sinn machen und welche nicht. Ich komme dann auf dich zurück, habe aktuell ein größeres Projekt wo sefrengo verwendet wird und da hab ich die Datenbank gerne hübsch (und als InnoDB wink.gif )
bjoern
Also MATCH (..) AGAINST habe ich mal im Glossarmodul genutzt. Innerhalb vom Sefrengo Core gibt es keine Pregmatches, allerdings viel LIKE %something% Anfragen. Fände ich super, wenn Du Dir die Indizies mal anschauen könntest.
Nils Meyer
Ok. Generell gilt, Fulltext Indizes sind nur hilfreich bei MATCH AGAINST, ansonsten werden entweder normale BTREE Indizes genutzt oder garkeine. LIKE '%something%' lässt sich z.B. nicht mittels eines Index optimieren (anders als LIKE 'something%', da man den Prefix something im Index schnell finden kann), da macht ein Index also garkeinen Sinn.

Generell ist die Volltextsuche von MySQL nicht so das gelbe vom Ei, nach Möglichkeit greift man immer auf Sachen wie Lucene oder Sphynx zurück, ist schneller und geht auch mit InnoDB. Ist natürlich für shared Hosting oder sowas keine Lösung...

Ich schaue es mir mal an und sag dir dann welche Indizes dazumüssen und welche wegkönnen. Bin nur derzeit jobtechnisch etwas eingespannt, kann also etwas dauern.
Dieses ist eine vereinfachte Darstellung unseres Foreninhaltes. Um die detaillierte Vollansicht mit Formatierung und Bildern zu betrachten, bitte hier klicken.
Invision Power Board © 2001-2024 Invision Power Services, Inc.