Sie könnten eine 'materialisierte Ansicht' erstellen.http://en.wikipedia.org/wiki/Materialized_view
im Grunde eine Tabelle, die die Ergebnisse des JOINs enthält, und darauf einen Volltextindex erstellen.
CREATE TABLE materialized (FULLTEXT idx (user_name,department_name))
SELECT u.id,user_name,department_name
FROM users u INNER JOIN departments d ON (d.id = dept_id)
Sie können dann stattdessen Abfragen für diese Tabelle ausführen..
SELECT * FROM materialized WHERE MATCH(user_name,department_name) AGAINST('test' IN BOOLEAN MODE)
aber...
Sie müssen die Tabelle regelmäßig aktualisieren (oder wenn die zugrunde liegenden Tabellen aktualisiert werden) – am einfachsten ist es einfach DROP
und neu erstellen - Oder Sie können TRUNCATE
verwenden dann INSERT INTO ... SELECT ... FROM ...
Format.
(Ausgefeiltere Schemata beinhalten Trigger, um die 'Ansicht' auf dem neuesten Stand zu halten, oder sogar das Binlog zu beobachten und Aktualisierungen für die 'Ansicht' abzuspielen)