1 woordje over dat cachen: is bijna niet te doen, je moet dan namelijk alles toch terug updaten als je een nieuw bericht post.
Er is trouwens een ingebouwde cache-optie voor queries in mysql. Maar deze wordt natuurlijk weer leeggemaakt als je een INSERT of UPDATE of DELETE uitvoert

.
Beste oplossing imho is met hashes werken of die manier van phpBB (of die combineren). Is natuurlijk trager bij aanpassingen van de tables (elk woord moet apart ingevoegd worden. Maar de zoekfunctie zal des te sneller zijn

.
md5 is btw niet een unieke hash voor elke tekst, ik betwijfel ook ten sterkste voor elk woord

.