MySQL 2 Million Rows, longtext and varchar indexes
Each run of this query will scan the whole table for two reasons:


The index on name will not be used as the value starts with a wild char %
You are not using the proper functions that utilize the fulltext index on the other two fields.


Proposed solution:


add a fulltext index on name field
Use the proper functions to search. in this case, it is match : https://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html#function_match


Notice: Depending on your version of MySQL, using OR to combine conditions could be a performance hit. It is not the case in 5.6 +