Any kind of optimization you need works. I would use a explain sql statements istead to import without indexes, that will shed more light...
Even if u optimize the report, if you have concurrent access demanding a bunch load of data you will other operations get stuck... for that is a good reason to have a master/write server and slave/read servers... if you make a row level block or table level block at a slave/read server, master/write still can work. And mysql is kinda greedy with the ram once it has it. Tries to keep index information, select cache, etc, as long as possible, which is a good thing... and if the client is willing to trow more hardware to the issue, trow more RAM to those servers...