За съжаление, според документацията на MySQL SELECT , "клаузата HAVING се прилага почти последно, точно преди елементите да бъдат изпратени на клиента, без оптимизация."
Разликата е, че първата заявка ще използва индекса на пълен текст за изчисляване на уместността само за редове, които имат 'Bob' в name
. Втората заявка ще изчисли уместността за всички редове, след което изхвърлете повечето от тях (евентуално след сортиране на цялата таблица). Следователно втората заявка е значително по-бавна. Дори ако поставите клаузата ORDER BY в първата заявка, тя пак ще бъде по-бърза от използването на HAVING:
SELECT name, MATCH(name) AGAINST('Bob') AS relevance
FROM users
WHERE MATCH(name) AGAINST('Bob')
ORDER BY relevance DESC
Като цяло, "не използвайте HAVING за елементи, които трябва да са в клаузата WHERE."