Every index is maintained on every insert, update and delete touching its columns, so an index added to fix one report is paid for by every write to that table, forever.
-- before adding, ask what it costs
SHOW INDEX FROM orders;
-- and whether anything is using the ones already there
SELECT * FROM sys.schema_unused_indexes;
sys.schema_unused_indexes in 5.7 is the cheapest audit available and routinely finds three or four that nothing has touched since the server started. On a write-heavy table the arithmetic can favour a slower report — an index used by a nightly query and maintained by ten million daily inserts is a bad trade that nobody revisits, because nothing reports it.