Wenn du "Tags" und "Titel" verwendest willst du vermutlich die Beschreibung ohnehin ignorieren... oder auch nicht, ist für die Antwort nicht soo relevant.
Lege einfach einen Suchindex an, das heißt wann immer ein Video eingestellt oder editiert wird legst du in einer weiteren Tabelle für jedes vorkommende Wort einen Datensatz an, welcher auf die ID des Videos zeigt.
Also
keyword_id | keyword | video_id
Dann kann SQL nach einem genauen Wert suchen anstatt nach "LIKE" (Volltext), das sollte die Performance verbessern. Wie in der anderen Antwort erwähnt kann diese Aufgabe auch ein anderer Server übernehmen wenn du das möchtest.
Vorsichtshalber solltest du alle Schlüssel-Worte (sowohl in der Suche als auch beim Anlegen)
caseinsensitive machen (lowern)
Sonderzeichen 'rauswerfen oder ersetzen (um Zeichensatz-Konflikte zu umschiffen)
Whitespaces entfernen (trimmen)
ggf. den erhaltenen Wert (also das bereinigte Wort) hashen (um immer gleich lange Suchwörter zu erhalten und die Tabellenspalte darauf optimieren zu können).
Gruß
sh:( fo:| ch:? rl:( br:& n4:& ie:{ mo:} va:) de:µ_de:] zu:) fl:( ss:| ls:[ js:(