Присъединете се след филтрите (напр. присъединете се към резултатите), не се опитвайте да се присъедините и след това филтрирайте.
Причината е, че губите употребата на вашия пълен текстов индекс.
Пояснение в отговор на коментара:Тук използвам общо взето думата присъединяване, а не като JOIN
но като синоним на сливане или комбиниране.
По същество казвам, че трябва да използвате първата (по-бърза) заявка или нещо подобно. Причината да е по-бърз е, че всяка от подзаявките е достатъчно незатрупана, за да може db да използва индекса на пълния текст на тази таблица, за да извърши избора много бързо. Обединяване на двата (вероятно много по-малки) набора от резултати (с UNION
) също е бърз. Това означава, че всичко е бързо.
Бавната версия преминава през много данни, като ги тества, за да видите дали това е това, което искате, вместо бързо да извлича данните и да търси само в редове, които вероятно наистина искате.