Oui, ce que vous avez ici est un tueur de base de données
Un index B-tree peut être utilisé pour les comparaisons de colonnes dans les expressions qui utilisent les opérateurs =,>,>=, <, <=ou BETWEEN. L'index peut également être utilisé pour les comparaisons LIKE si l'argument de LIKE est une chaîne constante qui ne commence pas par un caractère générique.
Source :http://dev.mysql.com /doc/refman/5.7/fr/index-btree-hash.html
Cela signifie donc que votre requête LIKE ne peut pas utiliser l'index et que vous avez alors deux likes connectés avec un OR. Si cela ne suffit pas, vous avez également ajouté une comparaison NOT IN.
Mais heureusement, la deuxième expression LIKE n'est pas si mauvaise, elle ne commence pas par un joker. Votre meilleur espoir est donc de créer un index composite sur usage_guidance, name
Si vous pouviez publier votre SHOW CREATE TABLE et quelques lignes d'exemples de données + la sortie attendue, nous pourrions avoir une idée s'il existe un moyen de réécrire cette requête.