Reprise du message précédent :
Non, ce système sera pire.
Si j'ai bien compris, tu fais des recherche de mots (1 à 4) sur la description du site, c'est bien ça ?
Je vois le mot "match" dans ta requête, mais ça ne semble pas être le mot-clé de MySQL pour la recherche lexicale, mais plutôt le nom d'un champ. Je ne sais pas trop ce que sont ces "REGEXP", mais ça ressemble bien à du LIKE déguisé. Cherche pas plus loin, c'est ça le problème de ton système. Même pourrie, y'a pas de raison qu'avec 5 Mo ça ramme... Sauf avec l'utilisation de LIKE.
Concentre-toi donc en premier sur les fonction d'indexation de texte de MySQL, notamment le mot-clé "MATCH". Tu devrais trouver pas mal de doc sur le sujet, et des gens qui pourront t'aider ici.
En tout cas, ne splite pas tes tables en plusieurs, surtout si c'est pour faire un UNION dessus ensuite, y'a rien de pire.
Par contre, si t'as l'extension du DNS qui entre en jeu dans tes filtres, tu ferais bien de mettre cette info toute seule dans un champ, et l'indexer correctement, tu vas gagner beaucoup de temps.
En parlant d'indexation, vérifie que tes champs sont indexés correctement en fonction de tes filtres. Pour 5 Mo tu vas pas voir grand-chose, mais quand t'aura 5 Go, tu verras que c'est bien de concerver les mêmes perfs que quand elle faisait 5 Mo