Nils Meyer
Tue. 11. December 2007, 13:57
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
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?
Nils Meyer
Wed. 12. December 2007, 23:19
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
)
bjoern
Sun. 16. December 2007, 21:10
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
Tue. 18. December 2007, 23:20
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.