Willkommen, Gast ( Anmelden | Registrierung )     [ Hilfe | Mitglieder | Suche ]

 
Reply to this topicStart new topic
> Fulltext Indizes in der Datenbank
Nils Meyer
Beitrag Tue. 11. December 2007, 13:57
Beitrag #1


Newbie
*

Gruppe: Members
Beiträge: 4
Mitglied seit: 11.12.2007
Mitglieds-Nr.: 1.282



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
Go to the top of the page
 
+Quote Post
bjoern
Beitrag Wed. 12. December 2007, 13:17
Beitrag #2


Administrator
********

Gruppe: Members
Beiträge: 1.092
Mitglied seit: 16.06.2006
Wohnort: Köln
Mitglieds-Nr.: 1



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?


--------------------
Es wird, es wird...
Go to the top of the page
 
+Quote Post
Nils Meyer
Beitrag Wed. 12. December 2007, 23:19
Beitrag #3


Newbie
*

Gruppe: Members
Beiträge: 4
Mitglied seit: 11.12.2007
Mitglieds-Nr.: 1.282



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 )
Go to the top of the page
 
+Quote Post
bjoern
Beitrag Sun. 16. December 2007, 21:10
Beitrag #4


Administrator
********

Gruppe: Members
Beiträge: 1.092
Mitglied seit: 16.06.2006
Wohnort: Köln
Mitglieds-Nr.: 1



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.


--------------------
Es wird, es wird...
Go to the top of the page
 
+Quote Post
Nils Meyer
Beitrag Tue. 18. December 2007, 23:20
Beitrag #5


Newbie
*

Gruppe: Members
Beiträge: 4
Mitglied seit: 11.12.2007
Mitglieds-Nr.: 1.282



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.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 Besucher lesen dieses Thema (Gäste: 1 | Anonyme Besucher: 0)
0 Mitglieder:

 



RSS Vereinfachte Darstellung Aktuelles Datum: 15.6.24 - 16:06

Sefrengo ist ein eingetragenes Markenzeichen und urheberrechtlich geschützt.
Copyright 2009 Design & Daten, Alle Rechte vorbehalten.