Foreign Key Usage and Error Information
You can obtain general information about foreign keys and their usage from querying the INFORMATION_SCHEMA.KEY_COLUMN_USAGE table, and more information more specific to InnoDB tables can be found in the INNODB_SYS_FOREIGN and INNODB_SYS_FOREIGN_COLS tables, also in the INFORMATION_SCHEMA database. See also Section 13.1.17.3, “Using FOREIGN KEY Constraints”.
In addition to SHOW ERRORS, in the event of a foreign key error involving InnoDB tables (usually Error 150 in the MySQL Server), you can obtain a detailed explanation of the most recent InnoDB foreign key error by checking the output of SHOW ENGINE INNODB STATUS.
Использовать локальный кэш тоже не очень хороший вариант, т.к. в БД могут писать их других мест, а данные нужны актуальные.
SELECT `id` FROM `object` obj
JOIN `category` cat ON obj.`id` = obj2.`obj`
JOIN `obj2cat` obj2 ON obj2.`cat` = cat.`tid`
WHERE (
MATCH(cat.`title`) AGAINST (?)
OR
MATCH(obj.`title`) AGAINST (?)
)
SELECT `id` FROM `object` obj WHERE MATCH(obj.`title`) AGAINST (?) or tid in (SELECT `tid` FROM `category` cat
JOIN `obj2cat` obj2 ON obj2.`cat` = cat.`tid` -- мог неверно понять вашу структуру
WHERE MATCH(cat.`title`) AGAINST (?) )