Disclaimer :questo è uno dei miei commenti su questa domanda che potrebbe essere la risposta:
Penso che match ... against
è appropriato qui. Si tratta della cosiddetta "ricerca fulltext". Per ricerche più complesse, userei Sphinx
- indicizza il tuo database da solo (ha un proprio meccanismo per esso) ed esegue ricerche molto più velocemente di MySQL