Count .... Group By... any other way?

It would be helpful if you could provide both EXPLAIN statements and queries without COUNT and with count.

I expect in your case there is large amount of matches (so it is not really 8x21 rows you could see in the stats) so temporary table is needed etc.

I also should ask you why are you trying to implement search engine in SQL ? It is going to be slow as you will have to traverse very many rows for common keywords.