I have a query that is running very slowly. The table is was querying has about 100k records and no indexes on most of the columns used in the where clause. I just added indexes on those columns but the query hasn’t gotten any faster.
I think this is because when a column is indexed, it’s value is written in the index at the time of insertion. I just added the indexes now after all those records were added. So is there a way to “re-run the indexes” on the table?
Edit
Here is the query and explain result:

Oddly enough when I copy the query and run in directly in my SQL manager tool it runs quite fast so may bye the problem is in my application code and not in the query itself.
Mysql keeps consistent indexes. It does not matter if the data is added first, the index is added first, or the data is changed at any time. The same final index will result (assuming the same final data and index type).
Your slow query is not caused by adding the index later. There will be some other reason.